:root{--bg:#f4f7fb;--panel:#fff;--text:#0f172a;--muted:#64748b;--line:#dbe4ef;--blue:#1677ff;--blue2:#0b5fe6;--danger:#dc2626;--success:#16803c;--warning:#9a6700;--shadow:0 16px 40px rgba(15,23,42,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Noto Sans CJK SC","Microsoft YaHei",Arial,sans-serif;font-size:14px}.valuation-shell{width:min(1440px,calc(100% - 40px));margin:0 auto}.valuation-topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.valuation-topbar-inner{height:76px;display:flex;align-items:center;gap:28px}.valuation-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-width:300px}.valuation-brand img{width:50px;height:50px;border-radius:50%;object-fit:cover}.valuation-brand strong{display:block;font-size:20px}.valuation-brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.valuation-nav{display:flex;align-items:stretch;height:100%;gap:4px;flex:1}.valuation-nav a{display:flex;align-items:center;padding:0 15px;text-decoration:none;color:#475569;border-bottom:3px solid transparent;font-size:15px}.valuation-nav a:hover,.valuation-nav a.active{color:var(--blue);border-bottom-color:var(--blue);background:#f7fbff}.valuation-account{display:flex;align-items:center;gap:9px;white-space:nowrap}.valuation-account a{color:#475569;text-decoration:none}.account-name{max-width:180px;overflow:hidden;text-overflow:ellipsis}.account-type{padding:5px 9px;border-radius:999px;background:#eaf3ff;color:#0b5fe6;font-size:12px}.valuation-main{min-height:calc(100vh - 132px);padding:28px 0 40px}.valuation-footer{background:#fff;border-top:1px solid var(--line);color:var(--muted);padding:18px 0;font-size:12px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.page-heading h1{font-size:28px;margin:0 0 6px}.page-heading p{margin:0;color:var(--muted)}.quota-box{background:#eaf3ff;color:#174ea6;border:1px solid #cfe2ff;padding:11px 15px;border-radius:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 7px 22px rgba(15,23,42,.045);padding:20px;margin-bottom:16px}.panel h2{font-size:18px;margin:0 0 14px}.lookup-row{display:grid;grid-template-columns:minmax(300px,1fr) auto auto;align-items:end;gap:12px}.lookup-row label{display:grid;gap:6px}.field,.filter-row label{display:grid;gap:6px}.field label,.filter-row label,.lookup-row label span{font-weight:700;color:#334155}.field.full{grid-column:1/-1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-panel{display:grid;gap:14px}input,select,textarea{width:100%;border:1px solid #cfd9e6;border-radius:10px;background:#fff;padding:10px 12px;color:var(--text);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#75aefb;box-shadow:0 0 0 3px rgba(22,119,255,.11)}textarea{resize:vertical;line-height:1.65}.button{border:1px solid #c8d5e5;background:#fff;color:#334155;border-radius:10px;padding:10px 16px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.button:hover{border-color:#8db8f4;color:#0b5fe6}.button.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-color:transparent}.button.ghost{background:#f8fafc}.button.danger{background:#fff1f2;color:var(--danger);border-color:#fecdd3}.button.small{padding:6px 10px;font-size:12px}.button.full{width:100%}.button:disabled{opacity:.5;cursor:not-allowed}.action-row{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;margin-top:4px}.inline-field{display:flex;align-items:center;gap:8px}.inline-field select{width:auto;min-width:140px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.notice{padding:12px 14px;border-radius:10px;margin-bottom:14px;border:1px solid}.notice.error{background:#fff1f2;color:#9f1239;border-color:#fecdd3}.notice.warning{background:#fff8e1;color:#8a5a00;border-color:#f6d97a}.notice.success{background:#ecfdf3;color:#166534;border-color:#bbf7d0}.disclaimer{margin-top:16px;padding:14px 16px;background:#f8fafc;border-left:4px solid #94a3b8;color:#5b6778;line-height:1.75;font-size:12.5px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:820px}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid #e7edf4;text-align:left;vertical-align:top}.data-table th{background:#f8fafc;color:#475569;font-size:12px;white-space:nowrap}.data-table tr:hover td{background:#fbfdff}.data-table a{color:#0b63ce;text-decoration:none}.muted{color:var(--muted);font-size:12px;margin-top:3px}.wrap{white-space:normal;max-width:500px;word-break:break-all}.mono{font-family:Consolas,monospace}.filter-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filter-row label{min-width:150px}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.price-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.price-card span{display:block;color:var(--muted)}.price-card b{display:block;font-size:24px;color:#0b5fe6;margin:9px 0}.price-card small{color:#64748b}.status{padding:6px 10px;border-radius:999px;background:#eef2f7;color:#475569}.status-completed,.status-published{background:#e8f8ee;color:#166534}.status-running,.status-queued,.status-draft,.status-editing{background:#fff7df;color:#8a5a00}.status-failed,.status-void{background:#fff1f2;color:#9f1239}.progress-line{height:12px;background:#e8eef6;border-radius:999px;overflow:hidden}.progress-line div{height:100%;background:linear-gradient(90deg,#1d9bf0,#246bfd)}.report-paper{max-width:980px;margin-left:auto;margin-right:auto;padding:38px}.report-paper pre{white-space:pre-wrap;word-break:break-word;font:15px/1.9 "Noto Sans CJK SC","Microsoft YaHei",sans-serif;margin:0}.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px}.admin-sidebar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;align-self:start;position:sticky;top:94px}.admin-sidebar h3{margin:4px 8px 12px}.admin-sidebar a{display:block;padding:10px 11px;margin:3px 0;border-radius:9px;text-decoration:none;color:#475569}.admin-sidebar a:hover,.admin-sidebar a.active{background:#eaf3ff;color:#0b5fe6;font-weight:700}.admin-content{min-width:0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.metric b{display:block;font-size:30px;color:#0b5fe6}.metric span{display:block;color:var(--muted);margin-top:7px}.inline-form{display:inline}.link-danger{border:0;background:transparent;color:var(--danger);cursor:pointer;padding:0;margin-left:8px}.method-row{display:flex;gap:10px;align-items:center}.method-row input{max-width:280px}.valuation-login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 10%,#dff3ff 0,transparent 35%),radial-gradient(circle at 90% 90%,#e9ecff 0,transparent 35%),#f6f8fc;padding:24px}.valuation-login-card{width:min(460px,100%);background:#fff;border:1px solid #dbe5f0;border-radius:22px;padding:30px;box-shadow:0 28px 70px rgba(15,23,42,.14)}.valuation-login-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.valuation-login-brand img{width:62px;height:62px;border-radius:50%}.valuation-login-brand h1{font-size:23px;margin:0}.valuation-login-brand p{margin:5px 0 0;color:var(--muted)}.valuation-login-card form{display:grid;gap:15px}.valuation-login-card label{display:grid;gap:7px;font-weight:700}.login-links{display:flex;justify-content:space-between;gap:12px;margin-top:18px;color:var(--muted);font-size:12px}.login-links a{color:#0b63ce;text-decoration:none}
@media(max-width:1100px){.valuation-topbar-inner{height:auto;min-height:76px;flex-wrap:wrap;padding:10px 0}.valuation-nav{order:3;width:100%;height:46px;overflow:auto}.valuation-nav a{padding:0 11px}.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static;display:flex;gap:5px;overflow:auto}.admin-sidebar h3{display:none}.admin-sidebar a{white-space:nowrap}.metric-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.valuation-shell{width:min(100% - 24px,1440px)}.valuation-brand{min-width:0}.valuation-brand strong{font-size:17px}.valuation-account .account-name{display:none}.page-heading{align-items:flex-start;flex-direction:column}.lookup-row{grid-template-columns:1fr}.form-grid,.price-grid,.metric-grid{grid-template-columns:1fr}.action-row{justify-content:flex-start}.report-paper{padding:20px}.valuation-nav{gap:0}.valuation-nav a{font-size:13px}.login-links{flex-direction:column}}

.two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-grid>div{border:1px solid var(--line);border-radius:12px;padding:13px;background:#f8fafc}.detail-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.detail-grid strong{display:block;color:var(--text);font-size:15px}.account-name{font-weight:700}.account-name:hover{color:var(--blue)}
@media(max-width:900px){.two-column,.detail-grid{grid-template-columns:1fr}}

/* V2.3 compact single-evaluation workflow and long-running task feedback */
.valuation-intro-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 34px;margin-bottom:26px;border:1px solid #d8e2ec;border-radius:20px;background:linear-gradient(135deg,#eef8ff 0%,#fff 52%,#effaf2 100%);box-shadow:0 10px 28px rgba(15,23,42,.05)}
.valuation-intro-panel h1{margin:0 0 14px;text-align:center;font-size:25px}.valuation-intro-panel p{margin:0;line-height:1.9;font-size:15px;color:#253449}.valuation-intro-panel>div:first-child{flex:1}.valuation-intro-panel .quota-box{flex:0 0 auto}
.legacy-evaluation-panel{background:#fbfaff;border:1px solid #ddd9e8;border-radius:15px;padding:16px;margin-bottom:10px}.legacy-lookup-row{display:grid;grid-template-columns:auto minmax(280px,1fr) auto auto;gap:12px;align-items:center}.legacy-lookup-row label,.legacy-field label{font-weight:700;color:#172033}.matched-tip{margin:10px 4px 14px;color:#566477}
.legacy-evaluation-form{display:grid;gap:13px}.legacy-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.legacy-field{display:grid;gap:6px}.legacy-field.full{grid-column:1/-1}.legacy-evaluation-form input,.legacy-evaluation-form select,.legacy-evaluation-form textarea,.legacy-lookup-row input{border-radius:4px;padding:7px 9px}.legacy-evaluation-form textarea{min-height:110px}.legacy-action-bar{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:12px 14px;border:1px solid #ddd9e8;border-radius:14px;background:#fbfaff}.legacy-method{display:flex;align-items:center;gap:10px;font-weight:700}.legacy-method select{min-width:180px}.legacy-evaluate-button{min-width:190px}
.valuation-busy-overlay[hidden]{display:none}.valuation-busy-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(15,23,42,.48);backdrop-filter:blur(3px)}.valuation-busy-card{width:min(520px,100%);padding:34px 30px;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.3);text-align:center}.valuation-busy-card h2{margin:18px 0 10px;font-size:24px}.busy-important{font-weight:700;color:#b42318}.busy-step{margin:18px 0 7px;color:#285ea8}.busy-time{color:var(--muted)}body.valuation-busy{overflow:hidden}
.valuation-spinner{width:48px;height:48px;margin:0 auto;border:5px solid #dbeafe;border-top-color:#1677ff;border-radius:50%;animation:valuation-spin .85s linear infinite}.valuation-spinner.small{width:34px;height:34px;margin:0;flex:0 0 auto;border-width:4px}@keyframes valuation-spin{to{transform:rotate(360deg)}}
.running-reminder{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding:16px 18px;border:1px solid #b8d8ff;border-radius:14px;background:#edf6ff;color:#174b88}.running-reminder strong{display:block;font-size:16px}.running-reminder p{margin:5px 0 0;color:#55708e}
.report-status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}.disabled-button{opacity:.55;cursor:not-allowed;pointer-events:none}.result-summary-panel p{line-height:1.75}
.process-details{margin-top:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.process-details>summary{cursor:pointer;list-style:none;padding:17px 20px;font-size:17px;font-weight:700;background:#f8fbff}.process-details>summary::-webkit-details-marker{display:none}.process-details>summary:before{content:'▶';display:inline-block;margin-right:9px;color:#1677ff;transition:transform .2s}.process-details[open]>summary:before{transform:rotate(90deg)}.process-body{padding:20px}.process-body h3{margin:22px 0 10px}.process-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:process}.process-steps li{counter-increment:process;display:grid;grid-template-columns:34px minmax(150px,230px) 1fr;align-items:start;gap:10px;padding:12px;border:1px solid #e4ebf3;border-radius:12px;background:#fbfdff}.process-steps li:before{content:counter(process);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e7f2ff;color:#0b5fe6;font-weight:700}.process-steps span{color:#526274;line-height:1.65}.process-json{max-height:300px;overflow:auto;margin:0;padding:14px;border-radius:10px;background:#101827;color:#d6e3f2;font:12px/1.6 Consolas,monospace;white-space:pre-wrap;word-break:break-all}
@media(max-width:760px){.valuation-intro-panel{padding:22px;flex-direction:column}.valuation-intro-panel h1{text-align:left}.legacy-lookup-row{grid-template-columns:1fr}.legacy-grid{grid-template-columns:1fr}.legacy-action-bar{align-items:stretch;flex-direction:column}.legacy-method{display:grid}.legacy-method select,.legacy-evaluate-button{width:100%}.process-steps li{grid-template-columns:34px 1fr}.process-steps span{grid-column:2}}


/* V2.4 layout refinement and administrator record deletion */
.valuation-intro-panel{display:block;text-align:center}
.valuation-intro-panel h1{text-align:center}
.valuation-intro-panel p{max-width:1180px;margin:0 auto;text-align:center}
.legacy-text-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.legacy-text-grid .legacy-field{min-width:0}
.legacy-text-grid textarea{height:260px;min-height:260px}
.legacy-action-bar{flex-wrap:nowrap}
.compact-quota{padding:8px 12px;border-radius:10px;margin-right:auto;white-space:nowrap}
.legacy-method{display:flex;align-items:center;gap:8px;white-space:nowrap;flex:0 0 auto}
.legacy-method span{white-space:nowrap}
.legacy-method select{width:180px;min-width:180px}
.heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.heading-actions form{margin:0}
.report-only-panel{padding-top:14px;padding-bottom:14px}
.history-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
.history-actions form{display:inline;margin:0}
.history-actions .link-danger{margin:0}
@media(max-width:900px){.legacy-text-grid{grid-template-columns:1fr}.legacy-text-grid textarea{height:auto;min-height:180px}.legacy-action-bar{flex-wrap:wrap}.compact-quota{width:100%;margin-right:0}.legacy-method{width:100%}.legacy-method select{width:100%;min-width:0}}

/* V2.6：批量任务暂停、继续、终止及结果统一开放 */
.batch-method-select{min-width:120px;max-width:180px;width:100%;}
.batch-method-select:disabled{opacity:.55;background:#f3f4f6;cursor:not-allowed;}
.history-bulk-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:12px 16px;margin-bottom:12px;}
.button.danger{background:#dc2626;color:#fff;border-color:#dc2626;}
.button.danger:hover{background:#b91c1c;border-color:#b91c1c;}
.button.danger:disabled{opacity:.45;cursor:not-allowed;}
@media(max-width:900px){.history-bulk-toolbar{justify-content:flex-start;flex-wrap:wrap}.batch-method-select{min-width:105px;}}

.status-paused,.status-pause_requested{background:#fff7df;color:#8a5a00}.status-cancel_requested{background:#fff1f2;color:#9f1239}.status-cancelled{background:#eef2f7;color:#475569}.task-control-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:16px}.task-control-actions{display:flex;align-items:center;gap:10px}.task-control-actions form{margin:0}@media(max-width:760px){.task-control-bar{align-items:stretch;flex-direction:column}.task-control-actions{width:100%}.task-control-actions form,.task-control-actions .button{flex:1;width:100%}}

.candidate-kept td { background: rgba(34, 197, 94, 0.055); }
.readonly-value { min-height: 42px; padding: 10px 12px; border: 1px solid #dbe3ef; border-radius: 10px; background: #f8fafc; }
.prewrap { white-space: pre-wrap; line-height: 1.75; }

/* V3.0 login captcha */
.captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 170px auto;gap:10px;align-items:center;margin:6px 0 14px}.captcha-row img{width:170px;height:54px;border:1px solid #d7e0ec;border-radius:10px;background:#fff;cursor:pointer}.captcha-row .button{white-space:nowrap}@media(max-width:640px){.captcha-row{grid-template-columns:1fr 170px}.captcha-row .button{grid-column:1/-1}}
