:root{color:#17201b;background:#f5f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--surface: #ffffff;--surface-soft: #f9faf7;--border: #dde4dc;--border-strong: #c5d1c8;--text: #17201b;--muted: #637269;--faint: #8a968f;--green: #167c52;--green-soft: #e6f4ed;--amber: #a76309;--amber-soft: #fff2d9;--red: #b42318;--red-soft: #fde7e3;--blue: #2662a4;--blue-soft: #e7f0fb;--teal: #0f766e;--teal-soft: #dff7f3;--shadow: 0 18px 44px rgba(31, 42, 35, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.shell{width:min(1440px,100%);margin:0 auto;padding:28px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow,.subtitle,.panelHeader p,.metricCard p,.metricCard span,.metaLine,.emptyText,.logRow p,.logMeta em,.pipelineStep em{color:var(--muted)}.eyebrow{margin:0 0 7px;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.1;letter-spacing:0}h2{font-size:17px;line-height:1.25;letter-spacing:0}h3{font-size:18px;line-height:1.35;letter-spacing:0}.subtitle{margin-top:8px;font-size:14px}.topbarActions{display:flex;align-items:center;gap:10px}.systemPill,.iconButton,.metricIcon,.rankBadge{display:inline-flex;align-items:center;justify-content:center}.systemPill{min-height:38px;gap:8px;padding:0 13px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:13px;font-weight:750;white-space:nowrap}.systemPill.good{color:var(--green);background:var(--green-soft);border-color:#b7dfcb}.systemPill.warning{color:var(--amber);background:var(--amber-soft);border-color:#f0d091}.iconButton{width:38px;height:38px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface);cursor:pointer}.iconButton:disabled{cursor:wait;opacity:.68}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alertBanner,.noticeBanner{display:flex;align-items:center;gap:10px;min-height:44px;margin-bottom:18px;padding:11px 14px;border:1px solid #f0beb7;border-radius:8px;color:var(--red);background:var(--red-soft);font-size:14px}.noticeBanner.success{color:var(--green);background:var(--green-soft);border-color:#b7dfcb}.noticeBanner.error{color:var(--red);background:var(--red-soft);border-color:#f0beb7}.summaryGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.metricCard{display:flex;gap:13px;min-height:126px;padding:17px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.metricIcon{flex:0 0 auto;width:38px;height:38px;border-radius:8px;background:var(--surface-soft)}.metricCard.good .metricIcon{color:var(--green);background:var(--green-soft)}.metricCard.warning .metricIcon{color:var(--amber);background:var(--amber-soft)}.metricCard.accent .metricIcon{color:var(--teal);background:var(--teal-soft)}.metricCard.info .metricIcon{color:var(--blue);background:var(--blue-soft)}.metricCard p{font-size:12px;font-weight:760;text-transform:uppercase}.metricCard strong{display:block;margin:7px 0 5px;font-size:26px;line-height:1.1}.metricCard span{display:block;max-width:240px;font-size:13px;line-height:1.35}.panel{border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.panelHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px 18px 0}.panelHeader p{margin-top:5px;font-size:13px}.pipelinePanel{margin-bottom:16px}.pipeline{display:grid;grid-template-columns:repeat(8,minmax(112px,1fr));gap:0;overflow-x:auto;padding:16px 18px 18px}.pipelineStep{position:relative;min-width:112px;min-height:82px;padding:12px 12px 11px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-soft)}.pipelineStep:first-child{border-left:1px solid var(--border);border-radius:8px 0 0 8px}.pipelineStep:last-child{border-right:1px solid var(--border);border-radius:0 8px 8px 0}.pipelineStep+.pipelineStep{border-left:1px solid var(--border)}.pipelineStep span{display:block;color:var(--muted);font-size:12px;font-weight:760}.pipelineStep strong{display:block;margin-top:7px;font-size:26px;line-height:1}.pipelineStep em{display:block;margin-top:7px;font-size:12px;font-style:normal}.pipelineStep.writing,.pipelineStep.drafted,.pipelineStep.review{background:#fbf8ec}.pipelineStep.published{background:var(--green-soft)}.mainGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}.operatorGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}.contentGrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:16px}.topicBlock,.articlePreview{display:flex;gap:14px;padding:18px}.rankBadge{width:44px;height:44px;border-radius:8px;color:var(--blue);background:var(--blue-soft);font-weight:850}.topicContent{min-width:0}.topicContent a,.articlePreview a{display:inline-flex;align-items:center;gap:5px;color:var(--text);font-weight:820;line-height:1.38}.topicContent a:hover,.articlePreview a:hover,.articleRow:hover span{color:var(--blue)}.topicContent p,.articlePreview p{margin-top:9px;color:#39463f;font-size:14px;line-height:1.55}.articlePreview{display:block}.articlePreview h3{margin-top:9px}.articlePreview a{margin-top:12px;color:var(--blue)}.metaLine{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:12px}.metaLine span{min-height:24px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft)}.quickLinkList,.controlList,.languageList{display:grid;gap:0;padding:12px 18px 18px}.controlStack{display:grid;gap:0}.controlStack .controlList{padding-bottom:10px}.quickLink,.controlItem,.languageItem{display:grid;align-items:center;gap:12px;min-height:58px;padding:11px 0;border-top:1px solid #edf1eb}.quickLink,.controlItem,.languageItem{grid-template-columns:34px minmax(0,1fr) auto}.quickLink:hover strong{color:var(--blue)}.quickLinkIcon,.controlIcon,.languageItem>span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;color:var(--teal);background:var(--teal-soft)}.controlIcon{color:var(--amber);background:var(--amber-soft)}.languageItem>span{color:var(--blue);background:var(--blue-soft)}.quickLink strong,.controlItem strong,.languageItem strong{display:block;font-size:13px;line-height:1.35}.quickLink em,.controlItem p,.languageItem p{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-style:normal;line-height:1.4}.controlItem>em,.languageItem>em{min-width:64px;padding:5px 8px;border-radius:999px;color:var(--text);background:var(--surface-soft);font-size:12px;font-style:normal;font-weight:780;text-align:center;white-space:nowrap}.controlActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 18px 18px}.actionButton{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 11px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface);font-size:12px;font-weight:780;line-height:1.2;cursor:pointer}.actionButton:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-soft)}.actionButton.primary{color:var(--green);border-color:#b7dfcb;background:var(--green-soft)}.actionButton.danger{color:var(--red);border-color:#f0beb7;background:var(--red-soft)}.actionButton:disabled{cursor:not-allowed;opacity:.55}.statusColumns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:16px 18px 18px}.statusColumn{min-width:0;padding:12px 12px 14px;border-top:1px solid var(--border);border-left:1px solid var(--border)}.statusColumn:nth-child(3n){border-right:1px solid var(--border)}.statusColumn:nth-last-child(-n+3){border-bottom:1px solid var(--border)}.statusColumnHeader{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px;color:var(--muted);font-size:12px;font-weight:780;text-transform:uppercase}.statusList{display:grid;gap:8px}.articleRow{display:block;min-height:52px;padding:9px 0;border-top:1px solid #edf1eb}.articleRow span{display:block;color:var(--text);font-size:13px;font-weight:720;line-height:1.4}.articleRow em{display:block;margin-top:5px;color:var(--faint);font-size:12px;font-style:normal}.emptyText{display:inline-block;padding-top:8px;font-size:13px}.logList{display:grid;gap:0;padding:12px 18px 18px}.logRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:12px 0;border-top:1px solid #edf1eb}.logRow strong{display:block;font-size:13px;line-height:1.35}.logRow p{margin-top:4px;font-size:12px;line-height:1.4}.logMeta{display:grid;justify-items:end;align-content:start;gap:5px}.logMeta span{min-width:72px;padding:4px 7px;border-radius:999px;color:var(--green);background:var(--green-soft);font-size:12px;font-weight:780;text-align:center}.logRow.failed .logMeta span,.logRow.error .logMeta span{color:var(--red);background:var(--red-soft)}.logRow.skipped .logMeta span,.logRow.partial_success .logMeta span{color:var(--amber);background:var(--amber-soft)}.emptyState{display:flex;align-items:center;justify-content:center;gap:10px;min-height:144px;padding:24px;color:var(--muted);font-size:14px}@media (max-width: 1180px){.summaryGrid,.mainGrid,.operatorGrid,.contentGrid{grid-template-columns:1fr 1fr}.contentGrid{align-items:start}.statusColumns{grid-template-columns:repeat(2,minmax(0,1fr))}.statusColumn:nth-child(3n){border-right:0}.statusColumn:nth-child(2n){border-right:1px solid var(--border)}.statusColumn:nth-last-child(-n+3){border-bottom:0}.statusColumn:nth-last-child(-n+2){border-bottom:1px solid var(--border)}}@media (max-width: 820px){.shell{padding:18px}.topbar,.mainGrid,.operatorGrid,.contentGrid,.summaryGrid{grid-template-columns:1fr}.topbar{display:grid}.topbarActions{justify-content:space-between}h1{font-size:27px}.statusColumns{grid-template-columns:1fr}.statusColumn,.statusColumn:nth-child(2n),.statusColumn:nth-child(3n){border-right:1px solid var(--border)}.statusColumn:nth-last-child(-n+2){border-bottom:0}.statusColumn:last-child{border-bottom:1px solid var(--border)}.logRow{grid-template-columns:1fr}.logMeta{justify-items:start}.controlActions{grid-template-columns:1fr}}
