:root{--bg: #eef3f7;--panel: #ffffff;--ink: #132033;--muted: #627085;--line: #d9e1ea;--blue: #116bd8;--green: #1f9f6b;--orange: #e88028;--red: #d94a4a;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-width:1100px;min-height:100vh;background:var(--bg)}button{font:inherit}.app-shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.loading-screen{display:grid;min-height:100vh;place-items:center;padding:28px}.loading-screen{color:var(--muted);font-weight:800}.login-shell{position:relative;display:flex;align-items:center;min-height:100vh;overflow:hidden;padding:48px clamp(40px,10vw,140px);background:linear-gradient(135deg,#007afff5,#34c759f5),linear-gradient(24deg,#ffffff14,#fff0)}.login-bg-art{position:absolute;inset:0;color:#ffffff3d;pointer-events:none}.login-bg-art svg{position:absolute;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:8}.login-ecg{top:12%;left:46%;width:min(62vw,860px);opacity:.38}.login-ecg-secondary{left:-8%;bottom:8%;width:min(58vw,820px);opacity:.18;transform:rotate(-5deg)}.login-dna{right:14%;bottom:6%;width:min(24vw,290px);opacity:.18}.login-dna-left{top:5%;left:4%;width:min(18vw,240px);opacity:.13;transform:rotate(-18deg)}.login-molecule{right:2%;bottom:24%;width:min(30vw,360px);opacity:.24}.login-molecule-left{left:-4%;top:43%;width:min(30vw,360px);opacity:.14;transform:rotate(14deg)}.login-vial{left:38%;bottom:-4%;width:min(23vw,320px);opacity:.16;transform:rotate(-7deg)}.login-shield{left:54%;top:32%;width:min(20vw,290px);opacity:.13;transform:rotate(7deg)}.login-cross{position:absolute;width:62px;height:62px;opacity:.22}.login-cross:before,.login-cross:after{position:absolute;content:"";border-radius:999px;background:#ffffffc7}.login-cross:before{top:26px;left:0;width:62px;height:10px}.login-cross:after{top:0;left:26px;width:10px;height:62px}.login-cross-one{top:18%;left:44%;transform:rotate(16deg)}.login-cross-two{right:20%;top:58%;transform:scale(.72) rotate(-18deg)}.login-cross-three{right:6%;top:17%;transform:scale(.58) rotate(10deg)}.login-cross-four{left:9%;bottom:17%;transform:scale(.62) rotate(-12deg)}.login-cross-five{left:34%;top:14%;transform:scale(.52) rotate(18deg)}.login-panel{position:relative;z-index:1;display:grid;width:min(500px,100%);min-height:570px;padding:70px 48px 44px;border:1px solid rgba(255,255,255,.46);border-radius:32px;background:#ffffffad;box-shadow:0 30px 82px #0b5fc63d,inset 0 1px #ffffff8f;backdrop-filter:blur(30px) saturate(1.25);-webkit-backdrop-filter:blur(30px) saturate(1.25)}.login-corner-logo{position:absolute;top:20px;left:28px;display:block;width:132px;height:auto;padding:0;border:0;background:transparent;box-shadow:none;opacity:.96}.login-logo-tile{position:relative;display:grid;width:82px;height:82px;place-items:center;justify-self:center;margin-bottom:22px;border-radius:22px;color:#007aff;background:#fffffff5;box-shadow:0 16px 32px #007aff29}.login-logo-heart{position:absolute;right:10px;bottom:10px;color:#34c759;filter:drop-shadow(0 4px 8px rgba(52,199,89,.18))}.login-heading{margin-bottom:28px;text-align:center}.login-heading h1{margin:0;color:#111827;font-size:26px;line-height:1.28;letter-spacing:0}.login-heading p{margin:10px 0 0;color:#5f6877;font-size:15px}.login-form{display:grid;gap:16px}.login-field{display:grid;gap:8px}.login-field span{color:#566273;font-size:13px;font-weight:800}.login-input-wrap{position:relative;display:flex;align-items:center;height:56px;border:1px solid rgba(255,255,255,.48);border-radius:16px;background:#ffffff94;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.login-input-wrap:focus-within{border-color:#007aff6b;background:#ffffffd1;box-shadow:0 0 0 4px #007aff24}.login-input-wrap svg{position:absolute;left:16px;color:#7a8492}.login-input-wrap input{width:100%;height:100%;padding:0 16px 0 48px;border:0;outline:0;color:#111827;background:transparent;font:inherit}.login-input-wrap input::placeholder{color:#9aa4b2}.login-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:56px;margin-top:2px;border:0;border-radius:16px;color:#fff;background:#007aff;box-shadow:0 16px 26px #007aff3d;font-weight:900;cursor:pointer;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.login-button:hover{background:#006ee6;box-shadow:0 18px 30px #007aff47}.login-button:active{transform:translateY(1px)}.login-button:disabled{cursor:not-allowed;opacity:.72;box-shadow:none}.login-error{padding:12px 14px;border:1px solid rgba(217,74,74,.22);border-radius:12px;color:#b42318;background:#ffeceac7;font-size:13px;font-weight:800}.login-help{margin:18px 0 0;color:#657285;font-size:12px;text-align:center}.login-copyright{position:absolute;left:clamp(40px,10vw,140px);bottom:26px;z-index:1;width:min(500px,100%);margin:0;color:#ffffffc2;font-size:12px;text-align:center}@media(max-width:900px){.login-shell{justify-content:center;padding:42px 28px 70px}.login-panel{min-height:auto;padding:70px 34px 34px}.login-corner-logo{top:20px;left:26px;width:118px}.login-heading h1{font-size:23px}.login-copyright{left:50%;transform:translate(-50%)}}.sidebar{border-right:1px solid var(--line);background:#f8fafc;padding:24px 18px}.brand-block{display:grid;grid-template-columns:58px 1fr;gap:14px;align-items:center;margin-bottom:28px}.brand-mark{display:grid;width:58px;height:58px;place-items:center;border-radius:8px;color:#fff;background:#0b5fc6;font-weight:900}.brand-block h1{margin:0;font-size:18px;line-height:1.25}.brand-block p{margin:6px 0 0;color:var(--muted);font-size:13px}.nav-list{display:grid;gap:8px}.nav-list button{display:flex;align-items:center;gap:10px;width:100%;height:42px;padding:0 12px;border:0;border-radius:6px;color:#3b4758;background:transparent;text-decoration:none;font-weight:700;cursor:pointer}.nav-list button:hover{background:#eef4fb}.nav-list button.active{color:#fff;background:var(--blue)}.content{padding:28px;overflow:auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.topbar h2{margin:0;font-size:30px}.topbar p{margin:8px 0 0;color:var(--muted)}.icon-button{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--line);border-radius:6px;color:var(--blue);background:#fff;cursor:pointer}.topbar-actions{display:flex;align-items:center;gap:12px}.user-chip{display:grid;gap:3px;min-width:128px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff}.user-chip b{font-size:14px}.user-chip span{color:var(--muted);font-size:12px;font-weight:800}.select-control{display:grid;gap:6px;min-width:320px}.role-select{min-width:160px}.select-control span{color:var(--muted);font-size:13px;font-weight:800}.select-control select{height:42px;padding:0 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fff;font:inherit;font-weight:700}.error-banner{margin-bottom:18px;padding:14px 16px;border:1px solid #f0b9b9;border-radius:6px;color:#9d2d2d;background:#fff4f4;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-card,.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 10px 28px #1f364e0d}.metric-card{padding:18px}.metric-card span{display:flex;gap:8px;align-items:center;color:var(--muted);font-weight:700}.metric-card strong{display:block;margin-top:16px;font-size:30px}.metric-card p{margin:8px 0 0;color:var(--muted);line-height:1.45}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel{padding:18px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-heading h3{margin:0;font-size:20px}.muted,.panel-note{color:var(--muted)}.file-list{display:grid;gap:10px}.file-row{display:grid;grid-template-columns:28px 1fr 90px;align-items:center;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:#fbfdff}.file-row b{color:var(--muted);text-align:right}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-grid-wide{grid-template-columns:repeat(4,minmax(0,1fr))}.action-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.action-grid button{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border:1px solid #b9cbe0;border-radius:6px;color:#0b4b98;background:#f7fbff;cursor:pointer;font-weight:800}.action-grid button:hover,.icon-button:hover{border-color:var(--blue)}.hidden-file-input{display:none}.import-message{margin:12px 0 0;color:#0b5fc6;font-weight:800}.document-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.document-chip-list span{max-width:360px;overflow:hidden;padding:7px 10px;border:1px solid #c7d8ea;border-radius:6px;color:#245076;background:#f7fbff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:138px;height:42px;padding:0 14px;border:1px solid #0b5fc6;border-radius:6px;color:#fff;background:var(--blue);cursor:pointer;font-weight:800}.primary-action:hover{background:#0b5fc6}.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:128px;height:42px;padding:0 14px;border:1px solid #b9cbe0;border-radius:6px;color:#0b4b98;background:#f7fbff;cursor:pointer;font-weight:800}.secondary-action:hover{border-color:var(--blue)}.danger-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:82px;height:42px;padding:0 12px;border:1px solid #e1b4b4;border-radius:6px;color:#a12828;background:#fff4f4;cursor:pointer;font-weight:800}.danger-action:hover{border-color:var(--red)}.job-table,.ocr-log-table{display:grid;border:1px solid var(--line);border-radius:6px;overflow:hidden}.ocr-log-header,.ocr-log-row summary{display:grid;grid-template-columns:1.35fr 1.15fr 1fr 88px 80px 100px;align-items:center;gap:12px;min-height:48px;padding:0 14px}.ocr-log-header{color:var(--muted);background:#f4f7fa;font-weight:800}.ocr-log-row{border-top:1px solid var(--line)}.ocr-log-row summary{cursor:pointer;list-style:none}.ocr-log-row summary::-webkit-details-marker{display:none}.ocr-log-row summary:hover{background:#fbfdff}.json-preview{border-top:1px solid var(--line);background:#0f172a}.json-preview-meta{display:flex;justify-content:space-between;gap:16px;padding:12px 14px 0;color:#dbeafe}.json-preview-meta span{color:#9fb4d0}.json-preview pre{max-height:360px;margin:0;overflow:auto;padding:12px 14px 16px;color:#e5edf7;font:13px/1.55 Consolas,Courier New,monospace;white-space:pre-wrap}.log-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:12px;color:var(--muted);font-size:13px;font-weight:800}.log-pagination .icon-button{width:34px;height:34px;min-width:34px}.preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.preview-grid>div{min-width:0;padding:14px;border:1px solid var(--line);border-radius:6px;background:#fbfdff}.preview-grid b{color:var(--muted);font-size:13px}.preview-grid p{margin:8px 0 0;overflow-wrap:anywhere;font-weight:800}.preview-result{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding:12px 14px;border:1px solid #cfe7dc;border-radius:6px;color:#145f43;background:#f3fbf7;font-weight:800}.preview-warning{border-color:#ead39f;color:#80530f;background:#fff8e8}.preview-result a{display:inline-flex;align-items:center;gap:6px;color:#0b5fc6;text-decoration:none}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-form-grid label{display:grid;gap:7px}.admin-form-grid span{color:var(--muted);font-size:13px;font-weight:800}.admin-form-grid input,.admin-form-grid select{height:42px;min-width:0;padding:0 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fff;font:inherit}.account-create-grid{grid-template-columns:1fr 1fr 1fr 1fr 180px}.account-message{margin:14px 0 0}.account-table{display:grid;border:1px solid var(--line);border-radius:6px;overflow:hidden}.account-header,.account-row{display:grid;grid-template-columns:1.1fr 1.1fr 160px 100px 130px 220px;align-items:center;gap:12px;min-height:52px;padding:0 14px}.account-header{color:var(--muted);background:#f4f7fa;font-weight:800}.account-row{border-top:1px solid var(--line)}.account-row input,.account-row select{height:38px;min-width:0;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fff;font:inherit}.account-self{display:inline-flex;width:fit-content;margin-top:5px;padding:3px 7px;border-radius:999px;color:#0b5fc6;background:#e8f2ff;font-size:12px;font-weight:800}.account-active-toggle{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-weight:800}.account-active-toggle input{width:16px;height:16px;padding:0}.account-row-actions{display:flex;gap:8px;align-items:center}.admin-action-row{display:flex;align-items:center;gap:14px;margin-top:16px}.admin-result{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border-radius:6px;background:#f4f7fa;color:var(--muted);font-weight:800}.result-succeeded{color:#0f754f;background:#e7f7ef}.result-missing_credential,.result-failed{color:#a12828;background:#ffecec}.credential-list{display:grid;border:1px solid var(--line);border-radius:6px;overflow:hidden}.credential-row{display:grid;grid-template-columns:160px 1fr 260px;align-items:center;gap:12px;min-height:48px;padding:0 14px;border-top:1px solid var(--line)}.credential-row:first-child{border-top:0}.credential-row code{color:#0b4b98;font:13px/1.4 Consolas,Courier New,monospace}.config-table{display:grid;border:1px solid var(--line);border-radius:6px;overflow:hidden}.config-header,.config-row{display:grid;grid-template-columns:1.25fr .8fr 1fr 1.8fr 110px;align-items:center;gap:12px;min-height:48px;padding:0 14px}.config-header{color:var(--muted);background:#f4f7fa;font-weight:800}.config-row{border-top:1px solid var(--line)}.config-row code,.template-field-row code{color:#0b4b98;font:13px/1.4 Consolas,Courier New,monospace;overflow-wrap:anywhere}.config-row span{min-width:0;overflow-wrap:anywhere}.config-status{display:inline-flex;width:fit-content;min-width:82px;justify-content:center;padding:5px 10px;border-radius:999px;font-size:13px;font-weight:800}.status-mapped{color:#0f754f;background:#e7f7ef}.status-ai_pending{color:#8a570f;background:#fff4dd}.status-ai_connected{color:#0b5fc6;background:#e8f2ff}.template-field-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.template-field-row{display:grid;grid-template-columns:1.2fr .75fr 1fr;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#fbfdff}.template-field-row span{min-width:0;color:var(--muted);overflow-wrap:anywhere}.job-header,.job-row{display:grid;grid-template-columns:1fr 120px 2fr 220px 168px;align-items:center;gap:14px;min-height:48px;padding:0 14px}.job-header{color:var(--muted);background:#f4f7fa;font-weight:800}.job-row{border-top:1px solid var(--line)}.empty-row{padding:20px;color:var(--muted)}.progress-track{height:12px;overflow:hidden;border-radius:20px;background:#e7edf3}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1475df,#28a875)}.status-pill{display:inline-flex;width:fit-content;min-width:72px;justify-content:center;padding:5px 10px;border-radius:999px;font-size:13px;font-weight:800}.status-healthy,.status-succeeded{color:#0f754f;background:#e7f7ef}.status-running{color:#0b5fc6;background:#e8f2ff}.status-exported,.status-reviewed{color:#0f754f;background:#e7f7ef}.status-edited{color:#0b5fc6;background:#e8f2ff}.status-queued,.status-paused,.status-pending_review{color:#8a570f;background:#fff4dd}.status-failed,.status-cancelled{color:#a12828;background:#ffecec}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.check-grid span{padding:12px 14px;border:1px solid #cfe7dc;border-radius:6px;color:#145f43;background:#f3fbf7;font-weight:700}.success-icon{color:var(--green)}.placeholder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.placeholder-card{min-height:170px}.placeholder-card h3{margin:0 0 12px;font-size:22px}.placeholder-card p{margin:0;color:var(--muted);font-size:16px;line-height:1.7}.review-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}.review-list-panel{position:sticky;top:0;max-height:calc(100vh - 56px);overflow:auto}.review-report-list{display:grid;gap:10px}.review-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-list-summary{display:grid;gap:4px}.review-list-summary h3{margin:0}.review-select-all,.review-report-check{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.review-select-all input,.review-report-check input{width:16px;height:16px;accent-color:var(--blue)}.review-batch-actions{display:grid;gap:10px;margin-bottom:12px}.review-selected-count{color:var(--muted);font-size:13px}.review-batch-buttons{display:grid;grid-template-columns:1fr;gap:10px}.review-batch-button{width:100%;justify-content:center;white-space:nowrap;padding-inline:10px}@media(max-width:900px){.review-batch-buttons{grid-template-columns:1fr}}.review-report-row{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px}.review-report-check{min-height:0;justify-content:center}.review-report-card{display:grid;gap:10px;width:100%;min-height:0;padding:15px 16px;border:1px solid var(--line);border-radius:18px;color:var(--ink);background:#fbfdff;text-align:left;cursor:pointer}.review-report-card:hover{border-color:#8ebce8;background:#f6fbff}.review-report-card.active{border-color:var(--blue);box-shadow:0 0 0 3px #116bd81f}.review-report-card.locked{background:#f6fbf8}.review-report-card span{min-width:0;color:var(--muted);overflow-wrap:anywhere;font-size:13px}.review-report-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.review-report-card-copy{display:grid;gap:4px;min-width:0}.review-report-card .report-card-title{color:var(--ink);font-size:18px;font-weight:900}.review-report-no{letter-spacing:.02em}.review-report-file{line-height:1.45}.review-workspace{min-width:0}.review-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.review-toolbar-main{min-width:0}.review-toolbar-main h3{margin:0;font-size:22px}.review-toolbar-main p{margin:8px 0 0;color:var(--muted);overflow-wrap:anywhere}.review-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.secondary-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:42px;padding:0 12px;border:1px solid #b9cbe0;border-radius:6px;color:#0b4b98;background:#f7fbff;text-decoration:none;font-weight:800}.review-version-grid{margin-bottom:14px}.compact-metric{padding:13px 14px}.compact-metric span{color:var(--muted);font-size:13px}.compact-metric strong{margin-top:9px;font-size:15px;line-height:1.35;overflow-wrap:anywhere}.review-message{margin-bottom:14px;padding:12px 14px;border:1px solid #cfe7dc;border-radius:6px;color:#145f43;background:#f3fbf7;font-weight:800}.review-lock-banner{margin-bottom:14px;padding:12px 14px;border:1px solid #ead39f;border-radius:6px;color:#80530f;background:#fff8e8;font-weight:800}.review-editor-panel{padding:0;overflow:hidden}.review-page-tabs{display:flex;gap:6px;padding:12px;border-bottom:1px solid var(--line);background:#f7fafc;overflow-x:auto}.review-page-tabs button{flex:0 0 auto;width:42px;height:34px;border:1px solid var(--line);border-radius:6px;color:#354255;background:#fff;cursor:pointer;font-weight:900}.review-page-tabs button.active{border-color:var(--blue);color:#fff;background:var(--blue)}.review-frame{display:block;width:100%;height:78vh;min-height:760px;border:0;background:#eef3f7}button:disabled{cursor:not-allowed;opacity:.62}:root{--bg: #f4f7fb;--panel: rgba(255, 255, 255, .86);--ink: #151f32;--muted: #758199;--line: rgba(214, 224, 240, .86);--blue: #1664ff;--green: #20c18c;--teal: #12a6b4;--purple: #6f5cff;--orange: #f2a329;--red: #e05252;--soft-blue: #eef5ff;--soft-green: #ecfbf5;--soft-orange: #fff7e8;--soft-red: #fff0f0;--shadow-custom: 0 16px 38px rgba(24, 46, 82, .08)}body{background:linear-gradient(150deg,#eff6fff5,#f6fbf8f0 48%,#f4f7fbfa),var(--bg)}.app-shell{grid-template-columns:286px minmax(0,1fr);min-height:100vh;background:linear-gradient(110deg,#1664ff0f,#20c18c0a 46%,#12a6b40f),var(--bg)}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;border-right:1px solid rgba(214,224,240,.75);background:#ffffffc7;box-shadow:12px 0 36px #182e520d;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.brand-block{grid-template-columns:62px minmax(0,1fr);gap:12px;min-height:76px;margin-bottom:22px;padding:12px;border:1px solid rgba(214,224,240,.72);border-radius:16px;background:#ffffffb8;box-shadow:var(--shadow-custom)}.brand-mark{width:58px;height:58px;border-radius:14px;background:linear-gradient(135deg,#1664ff,#20c18c);box-shadow:0 12px 24px #1664ff29}.brand-logo-mark{padding:8px;background:#fff}.brand-logo-mark img{display:block;width:100%;height:auto}.brand-block h1{color:#162238;font-size:17px;line-height:1.28}.brand-block p{color:#7b879b;font-size:12px;font-weight:700}.nav-list{gap:10px}.nav-list button{height:46px;padding:0 14px;border:1px solid transparent;border-radius:14px;color:#536176;font-size:14px;font-weight:800;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.nav-list button svg{color:#7a8aa4;transition:color .16s ease}.nav-list button:hover{border-color:#1664ff24;background:#1664ff12;color:#1f4fa8}.nav-list button:hover svg{color:var(--blue)}.nav-list button.active{border-color:#1664ff2e;color:#fff;background:linear-gradient(135deg,#1664ff,#1a7dff);box-shadow:0 12px 24px #1664ff3d}.nav-list button.active svg{color:#fff}.content{padding:26px 28px 36px;overflow:auto}.topbar{position:sticky;top:0;z-index:5;margin:-10px -10px 22px;padding:10px;border-radius:18px;background:#f4f7fbc7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.topbar h2{color:#111827;font-size:28px;line-height:1.2}.topbar p{margin-top:7px;color:#78849a;font-size:14px}.topbar-actions{gap:10px}.user-chip,.select-control select,.icon-button{border-color:#d6e0f0db;border-radius:14px;background:#ffffffe0;box-shadow:0 10px 24px #182e520d}.user-chip{min-height:46px;padding:8px 12px}.user-chip b{color:#162238}.user-chip span,.select-control span{color:#7c879b}.select-control select{height:46px;color:#26354f}.icon-button{width:46px;height:46px;color:var(--blue);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.icon-button:hover{border-color:#1664ff47;background:#fff;box-shadow:0 14px 28px #1664ff1f}.metric-grid{gap:16px;margin-bottom:18px}.metric-card,.panel{border:1px solid rgba(214,224,240,.82);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-custom);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.metric-card{position:relative;min-height:142px;overflow:hidden;padding:18px}.metric-card:before{position:absolute;inset:0 0 auto;height:3px;content:"";background:linear-gradient(90deg,var(--blue),var(--green),var(--teal))}.metric-card span{color:#738098;font-size:13px;font-weight:800}.metric-card span svg{width:32px;height:32px;padding:7px;border-radius:10px;color:var(--blue);background:var(--soft-blue)}.metric-card:nth-child(2) span svg{color:var(--green);background:var(--soft-green)}.metric-card:nth-child(3) span svg{color:var(--teal);background:#12a6b41a}.metric-card:nth-child(4) span svg{color:var(--purple);background:#6f5cff1a}.metric-card strong{margin-top:16px;color:#111827;font-size:28px;letter-spacing:0}.metric-card p{color:#7c879b;font-size:13px}.panel{padding:20px}.wide-panel{margin-bottom:18px}.panel-heading{margin-bottom:16px}.panel-heading h3{color:#172237;font-size:18px;line-height:1.25}.muted,.panel-note{color:#7c879b;font-size:13px}.panel-note{margin-top:14px}.primary-action,.secondary-action,.danger-action,.secondary-link,.action-grid button{min-height:44px;border-radius:12px;font-size:14px;font-weight:900;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}.primary-action{border-color:transparent;background:linear-gradient(135deg,#1664ff,#1a7dff);box-shadow:0 14px 24px #1664ff38}.primary-action:hover{background:linear-gradient(135deg,#0f58ea,#1664ff);box-shadow:0 16px 28px #1664ff42}.secondary-action,.secondary-link,.action-grid button{border-color:#b8cae2db;color:#1f55a6;background:#f5f9ffe0}.secondary-action:hover,.secondary-link:hover,.action-grid button:hover{border-color:#1664ff4d;color:var(--blue);background:#fff;box-shadow:0 12px 24px #1664ff1a}.danger-action{border-color:#e0525233;color:#b42318;background:#fff0f0e6}.danger-action:hover{border-color:#e052526b;box-shadow:0 12px 24px #e052521f}.action-grid{gap:12px}.action-grid button{height:50px}.document-chip-list span,.account-self,.config-status,.status-pill{border-radius:999px}.document-chip-list span{border-color:#1664ff29;color:#265caa;background:#eef5ffeb}.import-message,.review-message,.preview-result{border-color:#20c18c38;border-radius:14px;color:#157454;background:#ecfbf5eb}.error-banner,.review-lock-banner,.preview-warning{border-radius:14px}.error-banner{border-color:#e0525238;color:#b42318;background:#fff0f0eb}.review-lock-banner,.preview-warning{border-color:#f2a32947;color:#8a570f;background:#fff7e8f0}.job-table,.ocr-log-table,.config-table,.account-table,.credential-list{border-color:#d6e0f0d1;border-radius:14px;background:#ffffff94}.job-header,.ocr-log-header,.config-header,.account-header{min-height:50px;color:#77849a;background:#f6f9fde6;font-size:13px}.job-row,.ocr-log-row,.config-row,.account-row,.credential-row{background:#ffffff7a}.job-row,.ocr-log-row,.config-row,.account-row{border-top-color:#d6e0f0bf}.job-row:hover,.ocr-log-row summary:hover,.config-row:hover,.account-row:hover,.credential-row:hover{background:#fafdffe6}.progress-track{height:10px;background:#e2e9f3f5}.progress-track i{background:linear-gradient(90deg,#1664ff,#20c18c);box-shadow:0 0 0 1px #ffffff5c inset}.status-pill,.config-status{min-width:72px;padding:6px 10px;font-size:12px;letter-spacing:0}.status-healthy,.status-succeeded,.status-exported,.status-reviewed,.status-mapped{color:#157454;background:var(--soft-green)}.status-running,.status-edited,.status-ai_connected{color:#195cc2;background:var(--soft-blue)}.status-queued,.status-paused,.status-pending_review,.status-ai_pending{color:#9a640f;background:var(--soft-orange)}.status-failed,.status-cancelled,.status-missing_credential{color:#b42318;background:var(--soft-red)}.json-preview{border-top-color:#d6e0f059;background:#111827}.json-preview-meta{color:#dce8ff}.json-preview-meta span{color:#94a3b8}.preview-grid{gap:14px}.preview-grid>div,.template-field-row,.file-row,.review-report-card{border-color:#d6e0f0d1;border-radius:14px;background:#ffffff9e}.preview-grid>div{padding:16px}.preview-grid b,.template-field-row span,.file-row b{color:#7c879b}.admin-form-grid input,.admin-form-grid select,.account-row input,.account-row select{height:44px;border-color:#d6e0f0e6;border-radius:12px;background:#ffffffd1;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.admin-form-grid input:focus,.admin-form-grid select:focus,.account-row input:focus,.account-row select:focus,.select-control select:focus{border-color:#1664ff66;outline:0;background:#fff;box-shadow:0 0 0 4px #1664ff1a}.account-active-toggle input{accent-color:var(--blue)}.credential-row code,.config-row code,.template-field-row code{color:#1f55a6}.review-layout{grid-template-columns:340px minmax(0,1fr);gap:18px}.review-list-panel{top:16px;max-height:calc(100vh - 32px)}.review-report-card{min-height:0;padding:16px 17px;box-shadow:none;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.review-report-check{min-height:0}.review-report-card:hover{border-color:#1664ff47;background:#ffffffeb}.review-report-card.active{border-color:#1664ff80;background:#fff;box-shadow:0 0 0 4px #1664ff1a}.review-report-card.locked{background:#ecfbf5a8}.review-toolbar{padding:18px 20px}.review-toolbar-main h3{color:#172237;font-size:20px}.review-toolbar-main p{color:#7c879b}.review-page-tabs{gap:8px;padding:12px;border-bottom-color:#d6e0f0d1;background:#f6f9fdd1}.review-page-tabs button{height:36px;border-color:#d6e0f0e6;border-radius:10px;color:#4b5d78;background:#ffffffdb}.review-page-tabs button.active{border-color:transparent;background:linear-gradient(135deg,#1664ff,#1a7dff);box-shadow:0 10px 18px #1664ff2e}.review-frame{background:#f1f5f9}.empty-row{color:#7c879b}.app-shell{grid-template-columns:238px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;padding:18px 10px;background:#ffffffe6}.brand-block{grid-template-columns:54px minmax(0,1fr);min-height:66px;margin-bottom:18px;padding:10px;border-radius:0;border-width:0 0 1px;box-shadow:none;background:transparent}.brand-mark{width:46px;height:46px;border-radius:14px}.brand-logo-mark{padding:7px}.brand-block h1{font-size:16px}.nav-list{flex:1;gap:6px}.nav-list button{height:42px;border-radius:10px}.sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid rgba(214,224,240,.86)}.sidebar-user-card{display:grid;grid-template-columns:38px minmax(0,1fr) 34px;gap:9px;align-items:center;min-height:54px;padding:8px;border-radius:14px;background:#ffffffad}.sidebar-user-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,#1664ff,#1a7dff);font-size:14px;font-weight:900}.sidebar-user-card b,.sidebar-user-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-card b{color:#162238;font-size:13px}.sidebar-user-card span{margin-top:3px;color:#7c879b;font-size:12px}.sidebar-logout-button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:10px;color:#7c879b;background:transparent;cursor:pointer}.sidebar-logout-button:hover{color:var(--blue);background:var(--soft-blue)}.content{padding:0 22px 32px}.topbar{margin:0 -22px 22px;padding:15px 22px;border-bottom:1px solid rgba(214,224,240,.86);border-radius:0;background:#ffffffc7}.topbar-title-group{display:flex;align-items:center;gap:14px;min-width:300px}.topbar-menu-button{display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:10px;color:#64748b;background:transparent;cursor:pointer}.topbar-menu-button:hover{color:var(--blue);background:var(--soft-blue)}.topbar h2{font-size:22px}.topbar p{margin-top:3px;font-size:13px}.topbar-actions{min-width:0}.topbar-search{position:relative;display:flex;align-items:center;width:260px;height:42px;border-radius:14px;background:#f4f8ffe6}.topbar-search svg{position:absolute;left:13px;color:#64748b}.topbar-search input{width:100%;height:100%;padding:0 14px 0 38px;border:0;outline:0;color:#1e293b;background:transparent;font:inherit;font-size:13px}.topbar-search input::placeholder{color:#7c879b}.topbar .select-control{min-width:318px}.topbar .select-control span{display:none}.dashboard-overview{display:grid;gap:22px}.dashboard-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dashboard-stat-card,.dashboard-card{border:1px solid rgba(214,224,240,.86);border-radius:14px;background:#ffffffe6;box-shadow:0 16px 34px #182e520f}.dashboard-stat-card{display:flex;justify-content:space-between;gap:14px;min-height:120px;padding:22px 18px}.dashboard-stat-card span,.dashboard-card-heading p{color:#66758f;font-size:13px}.dashboard-stat-card strong{display:block;margin-top:18px;color:#071226;font-size:26px;line-height:1}.dashboard-stat-card p{margin:8px 0 0;color:#20a06f;font-size:12px;font-weight:800}.dashboard-stat-icon{display:grid;width:36px;height:36px;place-items:center;flex:0 0 auto;border-radius:14px;color:#fff}.dashboard-stat-blue{background:linear-gradient(135deg,#2f76ff,#1664ff)}.dashboard-stat-green{background:linear-gradient(135deg,#20c18c,#17a783)}.dashboard-stat-purple{background:linear-gradient(135deg,#8b5cf6,#6f5cff)}.dashboard-chart-row{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:16px}.dashboard-card{min-width:0;padding:18px}.dashboard-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.dashboard-card-heading h3{margin:0;color:#071226;font-size:16px}.dashboard-card-heading p{margin:4px 0 0}.dashboard-soft-badge{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;color:#1664ff;background:var(--soft-blue);font-size:12px;font-weight:900}.dashboard-line-chart{display:block;width:100%;height:210px}.dashboard-grid-line{stroke:#d6e0f0c7;stroke-dasharray:4 4;stroke-width:1}.dashboard-grid-vertical{opacity:.72}.dashboard-chart-label{fill:#66758f;font-size:12px}.dashboard-chart-area{fill:url(#dashboardReportArea)}.dashboard-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.dashboard-line-report{stroke:#1664ff}.dashboard-line-reviewed{stroke:#20c18c}.dashboard-task-card{min-height:248px}.dashboard-bar-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;align-items:end;height:176px;padding:10px 0 0}.dashboard-bar-item{display:grid;gap:8px;justify-items:center;height:100%}.dashboard-bar-track{display:flex;align-items:flex-end;width:18px;height:142px;border-radius:999px;background:#eef5ffe6;overflow:hidden}.dashboard-bar-track i{display:block;width:100%;min-height:0;border-radius:inherit;background:linear-gradient(180deg,#4f8cff,#1664ff)}.dashboard-bar-item span{color:#66758f;font-size:12px}.dashboard-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.dashboard-latest-card{min-height:322px}.dashboard-link-button{display:inline-flex;align-items:center;gap:5px;border:0;color:#1664ff;background:transparent;font-size:12px;font-weight:900;cursor:pointer}.dashboard-link-button:hover{color:#0f58ea}.dashboard-report-list{display:grid;gap:8px}.dashboard-report-row{display:grid;grid-template-columns:34px minmax(0,1fr) 82px 92px;gap:12px;align-items:center;width:100%;min-height:52px;padding:6px 8px;border:0;border-radius:12px;color:inherit;background:transparent;text-align:left;cursor:pointer}.dashboard-report-row:hover{background:#eef5ffb8}.dashboard-report-avatar{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:#fff;background:#2f76ff;font-size:13px;font-weight:900}.dashboard-report-main{min-width:0}.dashboard-report-main b,.dashboard-report-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-report-main b{color:#101828;font-size:13px}.dashboard-report-main small,.dashboard-report-date{color:#66758f;font-size:12px}.dashboard-side-stack{display:grid;gap:16px}.dashboard-overview-list,.dashboard-notice-list{display:grid;gap:12px}.dashboard-overview-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center}.dashboard-overview-item span{color:#66758f;font-size:13px}.dashboard-overview-item b{color:#071226;font-size:13px}.dashboard-mini-icon{display:grid;width:28px;height:28px;place-items:center;border-radius:50%}.dashboard-mini-orange{color:#f59e0b;background:var(--soft-orange)}.dashboard-mini-green{color:#20a06f;background:var(--soft-green)}.dashboard-mini-blue{color:#1664ff;background:var(--soft-blue)}.dashboard-mini-teal{color:#12a6b4;background:#12a6b41a}.dashboard-notice-item{display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;align-items:start}.dashboard-notice-item b,.dashboard-notice-item span{display:block}.dashboard-notice-item b{color:#101828;font-size:13px}.dashboard-notice-item span{margin-top:3px;color:#66758f;font-size:12px}.notice-dot{width:7px;height:7px;margin-top:6px;border-radius:50%}.notice-green{background:#20c18c}.notice-blue{background:#1664ff}.notice-orange{background:#f2a329}.dashboard-link-block{margin-top:14px;padding:0}
