:root{--canvas:#f7f4ee;--paper:#fffdf8;--ink:#17283f;--muted:#738197;--line:#e4ded3;--accent:#d26a2e;--accent-deep:#9e4318;--mint:#197c64;--mint-soft:#e5f4ee;--risk:#b5443d;--risk-soft:#f9e7e4;--blue:#3975b9;--blue-soft:#eaf2fd;--shadow:0 18px 46px #56331914}*{box-sizing:border-box}html,body{height:100%;overflow:hidden}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"MiSans","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px}.app-shell{width:min(1240px,calc(100% - 48px));height:100%;display:flex;flex-direction:column;margin:auto;padding:20px 0 42px}.text-button{border:0;background:transparent;color:#56667c;cursor:pointer;font:inherit;font-weight:700}.text-button:hover{color:var(--accent)}.eyebrow{margin:0 0 8px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.16em}.table-head h2,.dialog-head h2{margin:0;font-family:"Noto Serif CJK SC","Songti SC",serif;font-weight:700}.command-bar{display:flex;align-items:center;gap:16px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:var(--shadow);flex-wrap:nowrap;overflow-x:auto}.collection-tools{display:flex;align-items:center;gap:14px;min-width:0;flex:0 0 auto;flex-wrap:nowrap}.settings-button{margin-left:auto;padding:8px 6px;white-space:nowrap;flex:0 0 auto}.date-tools,.actions,.chips{display:flex;align-items:center;gap:9px;flex-wrap:nowrap}.date-tools{padding:5px 8px;border:1px solid #e2dbd0;border-radius:10px;background:#fffaf3}.date-label{color:#68768a;font-size:14px;font-weight:800;white-space:nowrap}.date-separator{color:#a0a8b4;font-size:14px}.chips{margin-right:6px}.chips button{padding:7px 10px;border:1px solid #dcd5ca;border-radius:8px;background:#fffaf2;color:#5d6877;cursor:pointer;font:inherit;font-size:14px}.chips button:hover{border-color:#e3ad86;color:var(--accent)}.date-tools label{display:grid;gap:5px;color:#617086;font-size:14px;font-weight:700}.date-tools input{height:31px;border:1px solid #dcd5ca;border-radius:8px;background:#fffefb;color:var(--ink);padding:0 8px;font:inherit;font-size:14px}.button{min-height:37px;padding:0 14px;border:1px solid transparent;border-radius:9px;cursor:pointer;font:inherit;font-weight:800;transition:transform .16s,box-shadow .16s,background .16s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:wait;opacity:.62}.button.primary{background:var(--accent);color:#fff;box-shadow:0 7px 15px #c65c2530}.button.primary:hover:not(:disabled){background:var(--accent-deep)}.button.secondary{border-color:#d6cec1;background:#fffaf1;color:#596678}.button.secondary:hover:not(:disabled){border-color:#d39469;color:var(--accent)}.task-status{display:flex;align-items:center;gap:12px;margin:12px 0 16px;padding:10px 12px;border:1px solid #e5ded4;border-radius:12px;background:#fbf9f5;color:#526176}.task-status>div{display:grid;gap:3px}.task-status strong{color:var(--ink);font-size:14px}.task-status span:not(.status-dot){font-size:14px}.status-dot{width:8px;height:8px;border-radius:50%;background:#a6b0bb;box-shadow:0 0 0 4px #edf0f1}.task-counts{margin-left:auto;color:#8a96a4;font-variant-numeric:tabular-nums}.task-status[data-status="queued"] .status-dot,.task-status[data-status="running"] .status-dot{background:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}.task-status[data-status="completed"] .status-dot{background:var(--mint);box-shadow:0 0 0 4px var(--mint-soft)}.task-status[data-status="failed"] .status-dot{background:var(--risk);box-shadow:0 0 0 4px var(--risk-soft)}.table-panel{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden;background:transparent}.table-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.table-head h2{font-size:20px}.result-count{color:var(--muted);font-size:14px}.table-wrap{flex:1;min-height:0;max-height:none;overflow:auto}table{width:100%;border-collapse:collapse;min-width:950px;table-layout:fixed}.column-time{width:142px}.column-code{width:86px}.column-name{width:112px}.column-title{width:300px}.column-result{width:310px}th,td{text-align:left;border-bottom:1px solid #eee9e1}th{padding:13px 16px;text-align:center;background:#fbf8f2;color:#718094;font-size:14px;font-weight:800;letter-spacing:.06em;white-space:nowrap}thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 #eee9e1}td{padding:15px 16px;vertical-align:top;color:#425169}.result-column label{display:flex;align-items:center;gap:9px}.result-column select{height:28px;border:1px solid #d8d2c9;border-radius:7px;background:#fffdf9;color:#526176;padding:0 6px;font:inherit;font-size:14px}.time-cell,.code-cell,.name-cell{text-align:center}.time-cell,.code-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.code-cell{color:#7c8899;font-family:ui-monospace,monospace;font-size:14px}.name-cell{white-space:nowrap;color:#23354c;font-weight:400}.title-cell{min-width:0}.title-cell strong,.title-cell .title-link{display:block;color:#263850;font-weight:400;line-height:1.55}.title-cell .title-link{text-decoration:none}.title-cell .title-link:hover{color:var(--accent);text-decoration:underline}.analysis-cell{min-width:0}.pill,.category{display:inline-flex;align-items:center;margin:0 5px 5px 0;padding:4px 7px;border-radius:999px;font-size:11px;line-height:1}.pill.opportunity{background:var(--mint-soft);color:var(--mint);font-weight:800}.pill.risk{background:var(--risk-soft);color:var(--risk);font-weight:800}.pill.pending{background:#f0eee9;color:#7c8896}.pill.processing{background:var(--blue-soft);color:var(--blue)}.category{background:#f3f0ea;color:#677485}.result-note{display:block;margin-top:2px;color:#718094;line-height:1.55}.empty-row{padding:54px 16px;color:#9ba5b1;text-align:center}.toast{position:fixed;right:24px;bottom:24px;z-index:3;max-width:min(370px,calc(100vw - 48px));padding:12px 15px;border-radius:10px;background:var(--ink);color:#fff;box-shadow:0 18px 45px #18223455;font-size:14px;line-height:1.5;opacity:0;transform:translateY(10px);transition:opacity .18s,transform .18s}.toast.visible{opacity:1;transform:translateY(0)}.toast[data-tone="success"]{background:var(--mint)}.toast[data-tone="error"]{background:var(--risk)}dialog{width:min(480px,calc(100vw - 32px));border:0;border-radius:18px;padding:0;background:var(--paper);box-shadow:0 24px 90px #1a263755}dialog::backdrop{background:#1d2c3a55}dialog form{display:grid;gap:15px;padding:25px}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head h2{font-size:22px}.dialog-head .eyebrow{margin-bottom:5px}dialog label{display:grid;gap:6px;color:#657287;font-size:14px;font-weight:700}dialog input{height:38px;border:1px solid #d8d2c9;border-radius:8px;padding:0 10px;background:#fffefb;color:var(--ink);font:inherit}.danger{color:var(--risk)}@media(max-width:760px){.app-shell{width:min(100% - 28px,1240px);padding-top:14px}.command-bar{align-items:center;flex-direction:row;flex-wrap:nowrap;overflow-x:auto}.date-tools{align-items:end}.chips{width:100%;margin-right:0}.chips button{flex:1}.date-tools label{flex:1;min-width:130px}.actions .button{flex:1}.table-head{padding:12px 14px}.task-counts{display:none}.toast{right:14px;bottom:14px;max-width:calc(100vw - 28px)}}

.task-statuses{display:grid;gap:8px;margin:12px 0 16px}.task-statuses .task-status{margin:0}

.result-column label,.table-wrap thead th:first-child label{display:flex;align-items:center;justify-content:center;gap:7px}.table-wrap thead th:first-child select{height:28px;max-width:100px;border:1px solid #d8d2c9;border-radius:7px;background:#fffdf9;color:#526176;padding:0 4px;font:inherit;font-size:14px}
