:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#12213d;background:#fff;font-synthesis:none;--navy: #10203f;--blue: #1458e8;--blue-weak: #eaf1ff;--muted: #65718a;--line: #dfe4ec;--surface: #f7f9fc;--success: #159b61;--danger: #c23b44}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#fff}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}.app-shell{min-height:100vh;display:grid;grid-template-columns:224px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#f8faff;z-index:5}.brand{height:72px;display:flex;align-items:center;gap:10px;padding:0 24px;font-size:21px;font-weight:750;letter-spacing:-.02em;color:var(--navy);border-bottom:1px solid var(--line)}.brand svg{color:#173569}.sidebar nav{display:grid;gap:6px;padding:32px 12px}.nav-item,.collapse{border:0;background:transparent;display:flex;align-items:center;gap:12px;color:#35435c;border-radius:7px;padding:12px 13px;text-align:left}.nav-item:hover{background:#f0f4fa}.nav-item.active{color:var(--blue);background:var(--blue-weak);font-weight:650}.sidebar-bottom{margin-top:auto}.collapse{width:calc(100% - 24px);margin:0 12px 18px;font-size:13px}.version{border-top:1px solid var(--line);padding:18px 22px;color:#536078;font-size:12px;line-height:1.65}.version span{color:#7a8497}.workspace{grid-column:2;min-width:0}.topbar{position:relative;height:72px;display:flex;justify-content:flex-end;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);gap:8px}.admin-menu{display:flex;align-items:center;gap:9px;border:0;background:transparent;color:var(--navy);padding:6px}.admin-menu span:not(.avatar){display:grid;text-align:left}.admin-menu small{font-size:11px;color:var(--muted);margin-top:2px}.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--blue-weak);color:var(--blue);font-weight:700}.mobile-brand,.mobile-menu-button,.mobile-nav{display:none}.icon-button{border:0;background:transparent;color:#344158;width:36px;height:36px;border-radius:7px;display:inline-grid;place-items:center}.icon-button:hover{background:#f1f4f8}.logout{margin-left:3px}.content{width:min(1080px,calc(100% - 72px));margin:0 auto;padding:42px 0 64px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:28px}.page-heading h1{font-size:clamp(26px,2.5vw,34px);line-height:1.1;letter-spacing:-.035em;margin:0 0 10px;color:#0e1f3d}.page-heading p,.section-heading p{margin:0;color:var(--muted);line-height:1.55;font-size:14px}.primary,.secondary{min-height:42px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;padding:0 18px}.primary{border:1px solid var(--blue);color:#fff;background:var(--blue);box-shadow:0 4px 12px #1458e829}.primary:hover{background:#0d4ed7}.secondary{border:1px solid #cbd4e3;color:#18345f;background:#fff}.secondary:hover{border-color:#94a5bf;background:#f9fbfe}.settings-shortcut{flex:none}.dropzone{min-height:288px;border:1.5px dashed #2f6ef0;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px;background:#fff;transition:.18s ease}.dropzone:hover,.dropzone.dragging{background:#f8fbff;border-color:#0a4bda;box-shadow:inset 0 0 0 1px #1458e814}.dropzone.dragging{transform:scale(.998)}.upload-icon{color:#334159;margin-bottom:15px}.dropzone h2{margin:0;font-size:18px;letter-spacing:-.012em}.dropzone .or{color:#818ba0;margin:9px 0 12px;font-size:13px}.dropzone p{color:#68748a;margin:14px 0 0;font-size:12px}.privacy-note{display:flex;align-items:center;gap:13px;padding:20px 4px;color:#647087;font-size:12.5px;line-height:1.5;border-bottom:1px solid var(--line)}.privacy-note svg{flex:none;color:#33435e}.privacy-note strong{color:#3b485e}.summary-strip{display:flex;align-items:center;gap:0;padding:21px 0;border-bottom:1px solid var(--line)}.summary-strip{scrollbar-width:none}.summary-strip::-webkit-scrollbar{display:none}.summary-strip>div{display:flex;align-items:center;gap:8px;padding:0 20px;border-right:1px solid var(--line);font-size:12.5px;color:var(--muted)}.summary-strip>div:first-child{padding-left:0}.summary-strip svg{width:17px;color:#52617a}.summary-strip strong{color:var(--navy)}.summary-strip p{margin:0 0 0 auto;max-width:315px;color:#758096;font-size:11.5px;text-align:right}.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--blue-weak)}.jobs-section{margin-top:30px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px}.section-heading h2{font-size:17px;margin:0 0 4px}.section-heading>span{color:var(--muted);font-size:12px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12.5px}th{color:#637087;font-weight:600;text-align:left;border-bottom:1px solid #cfd7e3;padding:11px 12px}td{color:#4b5870;border-bottom:1px solid #e7ebf1;padding:14px 12px;vertical-align:middle}td:first-child,th:first-child{padding-left:0}td strong{color:#263650;font-weight:560;display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td.actions,th.actions{text-align:right;width:100px}.source,.job-status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.job-status.completed{color:#167e52}.job-status.failed{color:var(--danger)}.job-status.processing{color:#1458e8}.job-status.processing svg{animation:spin 1s linear infinite}.error-text{display:block;margin-top:4px;color:var(--danger);max-width:370px}.ocr-warning{display:block;margin-top:4px;color:#976316;max-width:390px}.empty{text-align:center;padding:40px;color:var(--muted)}.action-placeholder{color:#a6afbd}.job-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px}.danger-button{color:var(--danger)}.danger-button:hover{color:#9d232d;background:#fff0f1}.danger-button:disabled{color:#a6afbd;background:transparent}.drawer-backdrop{position:fixed;inset:0;background:#08132840;z-index:20;display:flex;justify-content:flex-end}.settings-drawer{width:min(515px,100vw);height:100vh;display:flex;flex-direction:column;background:#fff;box-shadow:-10px 0 40px #0d1e3b26;animation:drawer .24s ease-out}.settings-drawer>header{min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--line)}.settings-drawer header h2{margin:0;font-size:18px}.settings-drawer header p{margin:4px 0 0;font-size:11.5px;color:var(--muted)}.settings-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line)}.settings-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:15px 11px 13px;color:#35425a;font-weight:600}.settings-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.settings-content{flex:1;overflow-y:auto;padding:24px}.settings-content section{display:grid;gap:16px}.form-section-title{display:flex;gap:11px;color:var(--blue);padding-bottom:5px}.form-section-title h3{margin:0 0 4px;color:var(--navy);font-size:15px}.form-section-title p{margin:0;color:var(--muted);font-size:11.5px;line-height:1.45}label{display:grid;gap:7px;font-size:12px;font-weight:600;color:#344057}input,select,textarea{width:100%;border:1px solid #ccd5e2;background:#fff;border-radius:5px;padding:0 11px;color:#23334d;outline:none}input,select{height:40px}textarea{min-height:190px;padding:11px;line-height:1.5;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1458e81a}.prompt-help{display:flex;justify-content:space-between;gap:12px;margin-top:-9px;color:var(--muted);font-size:10.5px;line-height:1.45}.prompt-help span:last-child{flex:none}.input-action{display:flex;position:relative}.input-action input{padding-right:42px}.input-action button{position:absolute;right:2px;top:2px;bottom:2px;width:38px;border:0;background:#fff;color:#56657d}.test-button{width:max-content;font-size:12.5px}.secure-info{display:flex;gap:12px;padding:14px;background:#f6f9fe;border:1px solid #dde7f7;border-radius:6px;color:var(--blue)}.secure-info strong{display:block;color:#263752;font-size:12px}.secure-info p{color:#68758a;font-size:11px;line-height:1.5;margin:4px 0 0}.field-grid{display:grid;grid-template-columns:1fr 110px;gap:12px}.subheading{font-size:13px;margin:8px 0 -4px;padding-top:16px;border-top:1px solid var(--line)}.switch-row{display:flex;justify-content:space-between;align-items:center;background:#f7f9fc;padding:14px;border-radius:6px}.switch-row strong,.switch-row span{display:block}.switch-row strong{font-size:12.5px}.switch-row span{font-size:11px;color:var(--muted);margin-top:3px}.switch{position:relative;width:38px;height:22px;border:0;border-radius:20px;background:#b7c0cd;padding:2px}.switch span{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;left:2px;top:2px;transition:.18s ease}.switch.on{background:var(--blue)}.switch.on span{transform:translate(16px)}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:9px;font-weight:500}.check input{width:16px;height:16px;accent-color:var(--blue)}.security-list{border:1px solid var(--line);border-radius:6px;padding:5px 14px}.security-list p{display:flex;align-items:center;gap:9px;font-size:12px;color:#526079;padding:7px 0;margin:0}.security-list svg{width:16px;color:var(--success)}.ocr-protocol-section{align-content:start}.protocol-empty{min-height:130px;display:flex;align-items:center;justify-content:center;gap:9px;border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:12px}.protocol-list{display:grid;gap:11px}.protocol-card{border:1px solid var(--line);border-left:3px solid var(--success);border-radius:6px;padding:13px 14px}.protocol-card.warning,.protocol-card.failed{border-left-color:#d18b24}.protocol-card>header{display:flex;justify-content:space-between;align-items:center;gap:12px}.protocol-card time{color:var(--muted);font-size:10.5px}.protocol-result{display:inline-flex;align-items:center;gap:7px;color:#176f4c;font-size:12px;font-weight:650}.protocol-card.warning .protocol-result,.protocol-card.failed .protocol-result{color:#976316}.protocol-metrics{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:10.5px;color:var(--muted)}.protocol-metrics strong{color:#344057}.protocol-config,.protocol-warning{margin:9px 0 0;font-size:10.5px;color:var(--muted)}.protocol-warning{color:#976316;line-height:1.45}.protocol-card details{margin-top:9px;color:#526079;font-size:10.5px}.protocol-card summary{cursor:pointer;font-weight:600}.protocol-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin-top:8px;padding:9px;background:var(--surface);border-radius:4px}.settings-drawer footer{border-top:1px solid var(--line);padding:18px 24px}.save-button{width:100%}.admin-page{min-width:0}.role-explainer{display:flex;align-items:flex-start;gap:13px;padding:16px 18px;border:1px solid #dce5f2;background:#f7faff;border-radius:7px;margin-bottom:24px;color:var(--blue)}.role-explainer strong{color:#243650;font-size:13px}.role-explainer p{margin:4px 0 0;color:#637087;font-size:12px;line-height:1.5}.users-table-wrap{max-width:100%;overflow-x:auto;border-top:1px solid var(--line)}.user-cell{display:flex;align-items:center;gap:9px}.user-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:#31517e;background:#edf3fb;flex:none}.role-label,.account-state{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.role-label.admin{color:#174b9b}.account-state.active{color:#167e52}.account-state.inactive{color:#b03b45;max-width:360px;white-space:normal}code{font-family:SFMono-Regular,Consolas,monospace;font-size:11.5px;color:#24446f;background:#f1f5fa;padding:3px 6px;border-radius:4px}.user-drawer{width:min(470px,100vw);height:100vh;background:#fff;box-shadow:-10px 0 40px #0d1e3b26;animation:drawer .24s ease-out;display:flex;flex-direction:column}.user-drawer>header{min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--line)}.user-drawer header h2{margin:0;font-size:18px}.user-drawer header p{margin:4px 0 0;font-size:11.5px;color:var(--muted)}.user-drawer form{display:grid;gap:17px;padding:24px;overflow-y:auto}.field-grid.equal{grid-template-columns:1fr 1fr}.subject-rule{padding:14px;border:1px solid #dce5f2;background:#f7faff;border-radius:6px}.subject-rule strong{font-size:12px}.subject-rule p{font-size:11.5px;color:#637087;line-height:1.5;margin:6px 0 0}.toast{position:fixed;z-index:50;right:24px;bottom:24px;width:min(430px,calc(100vw - 48px));min-height:54px;display:flex;align-items:center;gap:11px;padding:13px 14px;border-radius:7px;color:#fff;box-shadow:0 12px 32px #11213d38;animation:toast .2s ease-out;font-size:13px}.toast.success{background:#13784f}.toast.error{background:#a8323a}.toast>svg{width:20px;flex:none}.toast span{flex:1}.toast button{border:0;color:inherit;background:transparent;display:grid;place-items:center;padding:3px}.toast button svg{width:17px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(115deg,#f4f7fc 0 48%,#fff 48%)}.login-panel{width:min(430px,100%);background:#fff;border:1px solid var(--line);box-shadow:0 20px 60px #10203f1f;border-radius:9px;padding:38px}.login-brand{display:flex;align-items:center;gap:10px;color:var(--navy);font-size:19px;font-weight:750}.login-panel h1{margin:34px 0 10px;letter-spacing:-.03em;font-size:25px}.login-panel>p{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 24px}.login-panel label+label{margin-top:14px}.login-button{width:100%;justify-content:space-between;margin-top:18px}.login-security{margin-top:20px;display:flex;align-items:center;gap:7px;color:#788398;font-size:10.5px;line-height:1.4}.form-error{color:var(--danger);font-size:12px;margin-top:10px}.app-loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:13px;color:var(--navy);font-weight:650}.app-loading svg{color:var(--blue)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drawer{0%{transform:translate(40px);opacity:.4}}@keyframes toast{0%{transform:translateY(12px);opacity:0}}@media(max-width:900px){.app-shell{grid-template-columns:72px 1fr}.sidebar{width:72px}.brand{padding:0;justify-content:center}.brand span,.nav-item span,.collapse,.version{display:none}.sidebar nav{padding:26px 10px}.nav-item{justify-content:center;padding:13px}.workspace{grid-column:2}.content{width:calc(100% - 42px)}.summary-strip p{display:none}}@media(max-width:650px){.app-shell{display:block}.sidebar{display:none}.workspace{min-height:100vh}.topbar{height:62px;padding:0 16px;justify-content:space-between}.mobile-brand{display:flex;align-items:center;gap:7px;font-weight:750}.mobile-menu-button{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:6px;background:#f3f6fa;color:#263752}.mobile-nav{position:absolute;z-index:15;display:grid;top:56px;left:12px;right:12px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:0 14px 34px #10203f29}.mobile-nav button{border:0;background:transparent;color:#263752;text-align:left;padding:11px 12px;border-radius:5px}.mobile-nav button:hover{background:var(--blue-weak);color:var(--blue)}.admin-menu span:not(.avatar),.admin-menu>svg{display:none}.content{width:calc(100% - 28px);padding:28px 0 50px}.page-heading{display:block}.settings-shortcut{margin-top:18px}.dropzone{min-height:260px;padding:25px 15px;text-align:center}.dropzone h2{font-size:16px}.summary-strip{overflow-x:auto}.summary-strip>div{flex:none}.section-heading p{display:none}th:nth-child(2),td:nth-child(2),th:nth-child(4),td:nth-child(4){display:none}.jobs-section table{table-layout:fixed}.jobs-section th:first-child,.jobs-section td:first-child{width:52%;padding-right:7px}.jobs-section th:nth-child(3),.jobs-section td:nth-child(3){width:29%;padding-left:7px;padding-right:7px}.jobs-section th.actions,.jobs-section td.actions{width:19%;padding-left:4px;padding-right:0}.jobs-section td strong{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.jobs-section .error-text,.jobs-section .ocr-warning{max-width:100%;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.jobs-section .job-status{white-space:normal;line-height:1.25}.job-actions .icon-button{width:31px;height:34px}.settings-drawer{width:100%}.settings-tabs{overflow-x:auto;padding:0 12px}.settings-tabs button{flex:none}.field-grid{grid-template-columns:1fr 95px}.prompt-help{display:grid}.protocol-pages,.field-grid.equal{grid-template-columns:1fr}.admin-page .page-heading{display:block}.admin-page .page-heading h1{font-size:24px}.admin-page .page-heading .primary{margin-top:16px}.login-panel{padding:28px 22px}}
