:root{--bg:#f4f6f8;--panel:#fff;--line:#d8e0ea;--text:#102033;--muted:#62748a;--blue:#124a7c;--blue-soft:#e9f2fb;--green:#07885f;--red:#c93a3a;--amber:#9b6500;--shadow:0 8px 24px rgba(14,38,64,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text)}a{color:inherit;text-decoration:none}
.shell{min-height:100vh;padding:22px;display:flex;flex-direction:column;gap:16px}.top,.panel,.doc-hero,.doc-section{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.app-layout{min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr);background:var(--bg)}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;background:#102033;color:white;padding:18px;display:flex;flex-direction:column;gap:18px}.brand{display:flex;justify-content:space-between;align-items:center;gap:10px}.brand strong{font-size:18px}.side-nav{display:grid;gap:6px}.side-nav a,.side-nav button{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:transparent;color:white;font-weight:700;justify-content:space-between;padding:0 10px;text-align:left}.side-nav a{display:flex;align-items:center}.side-nav button{display:flex;align-items:center;cursor:pointer}.side-nav span{background:rgba(255,255,255,.14);border-radius:999px;padding:2px 7px;font-size:11px}.side-nav a.active,.side-nav button.active,.side-nav a:hover,.side-nav button:hover{background:rgba(255,255,255,.1)}.side-note{margin-top:auto;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px;background:rgba(255,255,255,.06)}.side-note strong,.side-note span{display:block}.side-note span{margin-top:6px;color:#c6d3e1;font-size:12px;line-height:1.5}.workspace{min-width:0;max-width:1020px;width:100%;padding:22px;display:grid;gap:16px}.workspace-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.workspace-head h1{font-size:24px;margin:0}.workspace-head p{margin:6px 0 0;color:var(--muted);font-size:13px}.tab-panel{display:none}.tab-panel.active{display:block}.hero-panel{padding:22px}.hero-panel .panel-head h2{font-size:22px}.list-panel{min-height:520px}.run-row{grid-column:1 / -1;display:flex;gap:8px;align-items:center;justify-content:flex-start}.run-row button{min-width:180px}
.logout-form{margin:0;width:100%}.logout-form>button{width:100%}
.top{padding:18px 20px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.top h1,.doc-hero h1{font-size:24px;line-height:1.15;margin:0}.top p,.doc-hero p,.muted{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.pill{background:#e8f8f3;color:var(--green);font-weight:700;border-radius:999px;padding:6px 10px;font-size:12px;white-space:nowrap}
.panel{padding:14px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.panel-head h2{font-size:16px;margin:0}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.form{display:grid;grid-template-columns:minmax(180px,1.2fr) 160px 210px minmax(180px,1.2fr) auto;gap:12px;align-items:end}.form label{min-width:0;display:grid;grid-template-columns:auto min-content;gap:6px;font-size:12px;color:var(--muted);font-weight:700}.form label input,.form label select,.form label textarea{grid-column:1 / -1}.wide{grid-column:1 / 5}
.dashboard-form{display:grid;gap:18px}.form-section{display:grid;gap:10px}.form-section h3{font-size:13px;text-transform:uppercase;color:var(--muted);margin:0}.form-row{grid-template-columns:minmax(260px,1.4fr) 160px 190px}.source-row{grid-template-columns:190px minmax(260px,1fr)}.dashboard-form .wide{grid-column:1 / -1}
.wizard-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:2px}.wizard-progress span{border:1px solid var(--line);border-radius:999px;background:#f7f9fb;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:7px 10px;font-size:12px;font-weight:900;text-align:center}.wizard-progress strong{width:22px;height:22px;border-radius:50%;background:#e4ebf3;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font-size:12px}.wizard-progress span.done{border-color:#b8dece;background:#eefbf6;color:#0f6c50}.wizard-progress span.done strong{background:#0f6c50;color:white}.wizard-progress span.active{border-color:#88afd3;background:var(--blue-soft);color:var(--blue)}.wizard-progress span.active strong{background:var(--blue);color:white}.wizard-page{display:none;min-height:330px;align-content:start;gap:16px}.wizard-page.active{display:grid}.wizard-page-head{display:grid;gap:5px}.wizard-page-head span{color:var(--green);font-size:11px;font-weight:900;text-transform:uppercase}.wizard-page-head h3{font-size:20px;margin:0;color:var(--text)}.wizard-page-head p{max-width:760px}.wizard-actions{display:flex;gap:8px;align-items:center;justify-content:flex-start;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}.wizard-actions button{min-width:140px}.wizard-actions .muted{margin:0}.insight-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;border:1px solid #b8dece;border-radius:8px;background:#eefbf6;padding:12px;color:var(--text);font-weight:700}.insight-toggle input{width:18px;height:18px;margin:2px 0 0}.insight-toggle strong,.insight-toggle small{display:block}.insight-toggle strong{font-size:14px;color:#0f6c50}.insight-toggle small{margin-top:4px;color:#215f4f;font-size:12px;line-height:1.5}.insight-settings{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:12px}.insight-settings.disabled{opacity:.6;filter:saturate(.8)}.signal-options.compact{margin-top:0}
.input-preflight-card{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:12px;display:grid;gap:10px}.input-preflight-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.input-preflight-head strong{display:block;color:var(--blue);font-size:14px}.input-preflight-head span{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.5}.input-preflight-head button{height:34px}.input-preflight-summary{border:1px solid #c9d8e7;border-radius:8px;background:white;padding:10px 12px;color:var(--text);font-size:13px;line-height:1.55;font-weight:700}.input-preflight-summary strong,.input-preflight-summary span{display:block}.input-preflight-summary span{margin-top:4px;color:var(--muted);font-weight:600}.input-preflight-details{display:grid;gap:8px}.input-preflight-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.input-preflight-check{border:1px solid var(--line);border-radius:8px;background:white;padding:9px 10px;display:grid;gap:4px;min-width:0}.input-preflight-check strong{font-size:12px;color:var(--blue)}.input-preflight-check span{font-size:12px;color:var(--text);line-height:1.45;overflow-wrap:anywhere}.input-preflight-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;width:max-content}.input-preflight-status.ok{background:#e8f8f3;color:var(--green)}.input-preflight-status.warn{background:#fff4df;color:var(--amber)}.input-preflight-status.fail{background:#fff0f0;color:var(--red)}.input-preflight-suggestions{display:grid;gap:6px;margin:0;padding-left:18px}.input-preflight-suggestions li{font-size:12px;line-height:1.5;color:var(--muted)}.input-preflight-empty{border:1px dashed var(--line);border-radius:8px;background:white;padding:10px 12px;color:var(--muted);font-size:12px;line-height:1.5}
.mode-cards,.research-mode-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.research-mode-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);border-radius:8px;background:#f8fbff;padding:12px;cursor:pointer}.mode-card:has(input:checked){border-color:#88afd3;background:var(--blue-soft)}.mode-card input{width:18px;height:18px;margin:2px 0 0}.mode-card strong,.mode-card small{display:block}.mode-card strong{font-size:14px;color:var(--blue)}.mode-card small{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.5}.workflow-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0 0 16px}.workflow-strip span{border:1px solid var(--line);border-radius:999px;background:#f7f9fb;color:var(--muted);font-size:11px;font-weight:900;text-align:center;padding:6px 7px}.workflow-strip span.done{border-color:#b8dece;background:#eefbf6;color:#0f6c50}
input,select,button,textarea,.button{font:inherit;border:1px solid var(--line);border-radius:7px;padding:0 11px}input,select,button,.button{height:40px}textarea{min-height:150px;padding:10px 11px;resize:vertical}button,.button{cursor:pointer;background:var(--blue);border-color:var(--blue);color:white;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.secondary{background:#eef3f8;color:var(--blue);border-color:var(--line)}.hidden{display:none!important}
.full-label,.dashboard-form>label{display:grid;gap:6px;font-size:12px;color:var(--muted);font-weight:700}.full-label textarea,.dashboard-form>label textarea{width:100%;grid-column:auto}.toolbar-panel{display:grid;gap:12px}
.action-field{display:flex;gap:6px;align-items:center}.action-field button{flex:1}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.section-head h2{margin-bottom:0}.report-editor textarea,.brief-editor{width:100%;min-height:520px;margin:10px 0 12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.55}.feedback-form{display:grid;gap:12px;margin-bottom:18px}.feedback-form label{display:grid;gap:6px;font-size:12px;color:var(--muted);font-weight:700}.feedback-form textarea{min-height:130px}.feedback-list{display:grid;gap:10px}.feedback-item{border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden}.feedback-item summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px}.feedback-item summary::-webkit-details-marker{display:none}.feedback-item summary:before{content:">";grid-row:1;align-self:center;color:var(--blue);font-weight:900;transition:transform .15s ease}.feedback-item[open] summary:before{transform:rotate(90deg)}.feedback-summary-main{display:grid;gap:4px;min-width:0}.feedback-summary-main strong{color:var(--blue);font-size:13px}.feedback-summary-main span{color:var(--text);font-size:13px;overflow-wrap:anywhere}.feedback-summary-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;color:var(--muted);font-size:12px}.feedback-status{border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900}.feedback-status.open{background:#fff4df;color:var(--amber)}.feedback-status.fixed{background:#e8f8f3;color:var(--green)}.feedback-item.fixed{background:#fbfffd;border-color:#b8dece}.feedback-body{border-top:1px solid var(--line);padding:12px}.feedback-body p{white-space:pre-wrap;line-height:1.55;margin:0 0 10px}.feedback-body small{display:block;margin-top:8px;color:var(--muted);font-size:12px}.feedback-actions{display:flex;gap:8px;align-items:center;justify-content:flex-start;margin-top:10px}.feedback-actions button{height:34px;font-size:12px}.feedback-shots{display:flex;gap:8px;flex-wrap:wrap}.feedback-shots img{width:120px;height:78px;object-fit:cover;border:1px solid var(--line);border-radius:7px;background:#f7f9fb}.signal-search{display:grid;gap:12px;margin-bottom:16px}.signal-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.signal-options fieldset{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px 12px;display:flex;gap:10px;flex-wrap:wrap}.signal-options legend{color:var(--muted);font-size:12px;font-weight:800;padding:0 4px}.signal-options label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text);font-weight:700}.signal-summary{margin:8px 0 12px}.signal-counts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.signal-counts strong,.signal-counts span{border:1px solid var(--line);border-radius:999px;background:#eef3f8;color:var(--blue);padding:5px 9px;font-size:12px}.signal-results{display:grid;gap:10px}.signal-item{border:1px solid var(--line);border-radius:8px;background:white;padding:12px;display:grid;gap:8px}.signal-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.signal-meta strong{color:var(--blue);overflow-wrap:anywhere}.signal-meta time,.signal-item small{color:var(--muted);font-size:12px}.signal-item p{margin:0;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.signal-footer{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.signal-footer a{color:var(--blue);font-weight:700;overflow-wrap:anywhere}.signal-metrics{display:flex;gap:6px;flex-wrap:wrap}.signal-metrics span{background:#f2f6fa;border-radius:999px;padding:3px 7px;color:var(--muted);font-size:11px}
body[data-page="brief"] .doc-workspace{max-width:1280px;align-content:start}body[data-page="brief"] .panel{padding:18px}body[data-page="brief"] .section-head{position:sticky;top:0;z-index:5;background:linear-gradient(180deg,#fff 80%,rgba(255,255,255,.92));border-bottom:1px solid var(--line);margin:-18px -18px 14px;padding:16px 18px 14px}body[data-page="brief"] .brief-editor{min-height:calc(100vh - 265px);max-height:none;padding:18px 20px;font-size:15px;line-height:1.7;color:#0f1f33;background:#fbfdff;border-color:#c9d8e7;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);tab-size:2}body[data-page="brief"] .brief-editor-actions{position:sticky;bottom:0;background:linear-gradient(0deg,#fff 80%,rgba(255,255,255,.92));border-top:1px solid var(--line);margin:0 -18px -18px;padding:14px 18px}
.brief-source-info,.brief-angle-tools{margin:0 0 12px}.brief-source-card{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:9px 11px}.brief-source-card strong{font-size:13px;color:var(--blue)}.brief-source-card span{font-size:12px;color:var(--muted);font-weight:800}.brief-angle-panel{border:1px solid var(--line);border-radius:8px;background:white;padding:12px}.brief-angle-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.brief-angle-head h3{font-size:15px;margin:0;color:var(--blue)}.brief-angle-head p{margin:4px 0 0}.brief-angle-head button{height:34px;white-space:nowrap}.brief-angle-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px}.brief-angle-card{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px;display:grid;gap:8px}.brief-angle-card label{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;cursor:pointer}.brief-angle-card input{width:16px;height:16px;margin-top:2px}.brief-angle-card strong{display:block;color:var(--blue);font-size:13px;line-height:1.35}.brief-angle-card em{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45;font-style:normal;font-weight:600}.brief-angle-card small{display:inline-flex;width:max-content;max-width:100%;margin-top:6px;border:1px solid #9bb8d4;border-radius:999px;background:#eef6ff;color:#0f4d80;padding:3px 8px;font-size:11px;font-weight:900}.brief-angle-foot{display:flex;gap:6px;align-items:center;justify-content:space-between;flex-wrap:wrap}.brief-angle-foot>a{font-size:11px;font-weight:900;color:var(--blue);border:1px solid #c8d8e8;border-radius:999px;background:white;padding:2px 7px}.brief-angle-foot button{height:30px;font-size:12px}.brief-evidence{border-top:1px solid var(--line);padding-top:6px}.brief-evidence summary{cursor:pointer;color:var(--blue);font-size:12px;font-weight:900}.brief-evidence p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.brief-evidence b{color:var(--blue)}.brief-angle-empty{border:1px solid var(--line);border-radius:8px;background:#fbfdff;color:var(--muted);padding:10px;font-size:12px;font-weight:700}
.product-db-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;margin-bottom:10px}.product-db-card{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px;display:grid;gap:7px}.product-db-card label{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;cursor:pointer}.product-db-card input{width:16px;height:16px;margin-top:2px}.product-db-card strong{display:block;color:var(--blue);font-size:13px}.product-db-card span,.product-db-card em{display:block;color:var(--muted);font-size:12px;font-style:normal;line-height:1.45}.product-db-card small{display:inline-flex;width:max-content;border:1px solid #c8d8e8;border-radius:999px;background:white;color:var(--blue);padding:2px 7px;font-size:11px;font-weight:900}.product-db-actions{margin-bottom:10px}.product-db-create{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px}.product-db-create summary{cursor:pointer;color:var(--blue);font-size:13px;font-weight:900}.product-db-form{display:grid;grid-template-columns:minmax(180px,1fr) 160px minmax(220px,1fr);gap:10px;margin-top:10px}.product-db-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.product-db-form textarea{min-height:140px}.product-db-form .wide{grid-column:1 / -1}
.product-library-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr);gap:12px}.product-library-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.product-library-form .wide{grid-column:1 / -1}.product-library-form textarea{min-height:220px;resize:vertical;line-height:1.55}.product-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.product-library-card{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:14px;display:grid;gap:12px;min-height:170px}.product-library-card strong{display:block;color:var(--blue);font-size:15px}.product-library-card p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.product-library-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.product-library-meta span{border:1px solid #c8d8e8;border-radius:999px;background:white;color:var(--blue);padding:3px 8px;font-size:11px;font-weight:900}.product-library-card .actions{align-self:end}.danger{color:#8f2c2c;border-color:#efcaca;background:#fff7f7}
.ai-audit-panel{border:1px solid var(--line);border-radius:8px;background:white;margin-top:12px;padding:10px}.ai-audit-panel summary{cursor:pointer;display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}.ai-audit-panel summary strong{color:var(--blue);font-size:14px}.ai-audit-panel summary span{color:var(--muted);font-size:12px;font-weight:800}.ai-audit-list{display:grid;gap:7px;margin-top:10px}.ai-audit-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:7px;background:#fbfdff;padding:8px}.ai-audit-row span{border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900}.ai-audit-row.ok span{background:#e8f8f3;color:var(--green)}.ai-audit-row.failed span{background:#fff0f0;color:var(--red)}.ai-audit-row strong{color:var(--blue);font-size:12px;overflow-wrap:anywhere}.ai-audit-row em,.ai-audit-row small{color:var(--muted);font-size:12px;font-style:normal}.ai-audit-row p{grid-column:1/-1;margin:0;color:var(--red);font-size:12px;overflow-wrap:anywhere}
.translation-warning{border:1px solid #f0c36d;border-radius:8px;background:#fff8eb;color:#674400;padding:10px 12px;margin:0 0 14px;display:grid;gap:4px}.translation-warning strong{font-size:13px}.translation-warning span{font-size:12px;line-height:1.5}
.badge.draft_failed{background:#fff0f0;color:var(--red)}
.jobs{overflow:visible;display:grid;grid-template-columns:repeat(auto-fill,280px);gap:10px;justify-content:start;align-items:start}.jobs.compact{max-height:none}.job-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:stretch}.job{width:100%;min-width:0;background:white;color:var(--text);border:1px solid var(--line);border-radius:8px;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:4px 8px;padding:11px}.job:hover{border-color:#9bb8d4;background:#fbfdff}.job strong,.job span,.job small{min-width:0;overflow-wrap:anywhere}.job strong{font-size:14px}.job span,.job small{color:var(--muted);font-size:12px}.list-card{position:relative;width:280px;min-height:126px;border:1px solid var(--line);border-radius:8px;background:white;padding:12px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px}.list-card:hover{border-color:#9bb8d4;background:#fbfdff;box-shadow:0 8px 20px rgba(14,38,64,.08)}.list-card-main{display:grid;gap:8px;min-width:0;color:var(--text)}.list-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.list-card h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;color:var(--blue);font-size:15px;line-height:1.25}.list-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-card-foot{display:flex;gap:8px;align-items:center;justify-content:space-between;border-top:1px solid #edf1f5;padding-top:8px;min-width:0}.list-card-foot span{min-width:0;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-card-foot strong{flex:0 0 auto;color:var(--blue);font-size:12px}.list-card-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.list-card-actions button{height:30px;font-size:12px;padding:0 9px}.icon-action{height:auto;min-width:58px;padding:0 10px}.danger{background:#fff0f0;color:var(--red);border-color:#ffd0d0}.danger:hover{background:#ffe6e6}.badge{align-self:start;padding:2px 7px;border-radius:999px;text-transform:uppercase;font-size:10px;font-weight:800}.badge.succeeded,.badge.draft_ready,.badge.brief_ready{background:#e8f8f3;color:var(--green)}.badge.running,.badge.queued{background:#fff4df;color:var(--amber)}.badge.failed,.badge.draft_failed{background:#fff0f0;color:var(--red)}.badge.canceled{background:#eef3f8;color:var(--muted)}.project-list{display:grid;grid-template-columns:repeat(auto-fill,280px);gap:10px;justify-content:start;align-items:start}.project-card{position:relative;width:280px;min-height:126px;border:1px solid var(--line);border-radius:8px;background:white;padding:12px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;cursor:pointer}.project-card:hover,.project-card:focus-visible{border-color:#9bb8d4;background:#fbfdff;box-shadow:0 8px 20px rgba(14,38,64,.08);outline:0}.project-head{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:start;padding-right:54px}.project-head .badge{justify-self:start}.project-head h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:1.25;margin:0;color:var(--blue);overflow-wrap:anywhere}.project-head p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-foot{display:flex;gap:8px;align-items:center;justify-content:space-between;border-top:1px solid #edf1f5;padding-top:8px;min-width:0}.project-card-foot span{min-width:0;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-foot strong{flex:0 0 auto;color:var(--blue);font-size:12px}.project-delete{position:absolute;top:10px;right:10px;width:auto;height:30px;min-width:0;padding:0 9px;border-radius:6px;background:#fff7f7;color:var(--red);border-color:#ffd0d0;font-size:12px}.project-delete:hover{background:#ffecec}.project-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.project-steps span{border:1px solid var(--line);border-radius:999px;background:#f7f9fb;color:var(--muted);font-size:10px;font-weight:900;text-align:center;padding:5px 6px}.project-steps span.done{border-color:#b8dece;background:#eefbf6;color:#0f6c50}.project-steps span.running{border-color:#e8c36d;background:#fff7e6;color:#8a5a00}.project-steps span.failed{border-color:#ffd0d0;background:#fff0f0;color:var(--red)}.project-meta,.project-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.project-meta span{color:var(--muted);font-size:12px;background:#f2f6fa;border-radius:999px;padding:3px 7px}.project-actions .button{height:32px;font-size:12px}
.info-dot{width:18px;height:18px;padding:0;border-radius:50%;background:#eef3f8;color:var(--blue);border:1px solid #c4d3e3;font-size:12px;font-weight:800;line-height:1;position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.info-pop{display:none;position:absolute;z-index:20;top:24px;right:0;width:min(290px,80vw);background:#102033;color:white;border-radius:8px;padding:10px 12px;font-size:12px;font-weight:500;line-height:1.45;text-align:left;box-shadow:0 12px 28px rgba(0,0,0,.18)}.info-pop strong{display:block;margin-bottom:4px;color:white}.info-dot.open .info-pop{display:block}
.signal-help{display:grid;gap:6px;background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:10px 12px}.signal-help p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.signal-help strong{color:var(--text)}.signal-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}.signal-filter-card{height:auto;min-height:64px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--text);display:grid;gap:3px;justify-items:start;padding:10px;text-align:left;cursor:pointer}.signal-filter-card strong{font-size:18px;color:var(--blue)}.signal-filter-card span{font-size:12px;color:var(--muted);font-weight:800}.signal-filter-card.active,.signal-filter-card:hover{border-color:#9bb8d4;background:#eef3f8}.signal-type{border:1px solid var(--line);border-radius:999px;background:#f7f9fb;color:var(--muted);padding:2px 7px;font-size:10px;font-weight:800;text-transform:uppercase}.signal-ai-panel{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:14px;margin:0 0 14px}.signal-ai-panel h3{margin:0 0 10px;color:var(--blue);font-size:16px}.signal-ai-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.signal-ai-grid div{border:1px solid var(--line);border-radius:8px;background:white;padding:10px;min-width:0}.signal-ai-grid h4{margin:0 0 7px;font-size:13px;color:var(--text)}.signal-ai-grid ul{margin:0;padding-left:18px}.signal-ai-grid li{margin:5px 0;font-size:12px;line-height:1.45}.signal-ai-grid li span,.signal-ai-grid li em{display:block;color:var(--muted);font-style:normal;margin-top:2px}.signal-ai-grid a{color:var(--blue);font-weight:800}
.signal-suggestions,.signal-history,.signal-query-info,.signal-action-bar,.selected-signals-report{margin:10px 0}.signal-chip-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.signal-chip-row>span{font-size:12px;color:var(--muted);font-weight:800}.signal-chip{height:30px;background:#eef3f8;color:var(--blue);border-color:var(--line);font-size:12px}.signal-history{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px;display:grid;gap:8px}.signal-history-head{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}.signal-history-head strong{color:var(--blue);font-size:13px}.signal-history-head span{color:var(--muted);font-size:12px}.signal-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.signal-history-item{height:auto;min-height:54px;background:white;color:var(--text);border-color:var(--line);display:grid;gap:3px;text-align:left;justify-items:start;padding:8px}.signal-history-item strong{font-size:12px;color:var(--blue);overflow-wrap:anywhere}.signal-history-item span{font-size:11px;color:var(--muted);font-weight:600}.signal-query-panel{border:1px solid var(--line);border-radius:8px;background:white;padding:10px}.signal-query-panel summary{cursor:pointer;font-weight:800;color:var(--blue);font-size:13px}.signal-query-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.signal-query-grid div{background:#f7f9fb;border:1px solid var(--line);border-radius:7px;padding:8px}.signal-query-grid strong,.signal-query-list h4{display:block;font-size:12px;color:var(--text);margin:0 0 4px}.signal-query-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.signal-query-list ul{margin:4px 0 10px;padding-left:18px}.signal-query-list li{font-size:12px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}.signal-query-list li span{display:inline-flex;margin-right:6px;color:var(--blue);font-weight:800}.signal-action-bar{position:sticky;top:0;z-index:3;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.96);padding:8px;box-shadow:0 6px 18px rgba(14,38,64,.06)}.signal-action-inner{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.signal-action-inner strong{font-size:13px;color:var(--blue);margin-right:4px}.signal-action-inner button{height:34px;font-size:12px}.signal-select-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.signal-select{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:800}.signal-select input{width:16px;height:16px;margin:0}.signal-citation{background:#eef3f8;color:var(--blue);border-radius:999px;padding:3px 7px;font-size:11px;font-weight:900}.signal-item.selected{border-color:#88afd3;background:#fbfdff}.signal-relevance{border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900;text-transform:uppercase}.signal-relevance.high{background:#e8f8f3;color:var(--green)}.signal-relevance.medium{background:#fff4df;color:var(--amber)}.signal-relevance.low{background:#eef3f8;color:var(--muted)}.signal-citations{display:block;color:var(--blue)!important;font-weight:800}.signal-low-group{display:grid;gap:8px}.signal-low-group>button{justify-self:start;height:34px}.selected-signals-report{border:1px solid #b8dece;background:#eefbf6;border-radius:8px;padding:10px;grid-column:1 / -1}.selected-signals-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.selected-signals-head strong{color:#0f6c50;font-size:13px}.selected-signals-head button{height:30px}.selected-signals-report ul{margin:8px 0 0;padding-left:18px}.selected-signals-report li{font-size:12px;color:#215f4f;line-height:1.45}.selected-signals-report li span{display:inline-flex;margin-right:6px;color:#0f6c50;font-weight:900}
.signal-library-layout{display:grid;gap:14px;align-items:start}.signal-library-toolbar{display:grid;gap:8px}.signal-library-detail{min-width:0;display:grid;gap:10px}.signal-library-detail .signal-action-bar{top:0}.signal-library-layout .signal-history{max-height:none;overflow:visible}.signal-library-layout .signal-history-list{grid-template-columns:repeat(auto-fill,280px);justify-content:start;align-items:start}
.doc-page,.doc-shell{background:var(--bg)}.doc-shell{max-width:980px;margin:0 auto;padding:20px;display:grid;gap:14px}.doc-nav{display:flex;gap:8px;flex-wrap:wrap}.doc-nav a,.doc-nav button{height:34px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--blue);font-weight:700;font-size:13px;padding:0 10px;display:flex;align-items:center}.doc-hero{padding:22px}.eyebrow{text-transform:uppercase;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.08em}.meta-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.meta-row span{background:#eef3f8;border-radius:999px;padding:5px 9px;color:var(--muted);font-size:12px}
.report-layout{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.toc{position:sticky;top:14px;background:white;border:1px solid var(--line);border-radius:8px;padding:8px;display:grid;gap:3px}.toc a{font-size:13px;color:var(--blue);padding:8px;border-radius:6px}.toc a:hover{background:var(--blue-soft)}
.doc-section{padding:18px;margin-bottom:14px;min-width:0}.doc-section h2{font-size:18px;margin:0 0 10px;color:var(--blue)}.doc-section p,.doc-section li{font-size:14px;line-height:1.65}.doc-section ul,.doc-section ol{padding-left:22px}.doc-section table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;white-space:normal}.doc-section th,.doc-section td{border-bottom:1px solid #edf1f5;padding:9px;text-align:left;vertical-align:top;min-width:130px;font-size:13px;line-height:1.45}.article-output h1,.article-output h2,.article-output h3{margin-top:20px}.article-output p{font-size:15px}
.preview-section{padding:16px 18px}.preview-intro{background:#f8fbff}.preview-intro h2{font-size:20px}.preview-intro p{font-size:14px}.preview-list{display:grid;gap:8px;padding-left:0!important;margin:10px 0 0;list-style:none}.preview-list li{border:1px solid #edf1f5;background:#fbfdff;border-radius:7px;padding:10px 12px}.preview-list strong,.preview-list span{display:block}.preview-list span{margin-top:4px;color:var(--muted)}.preview-list a{display:inline-flex;margin-top:6px;color:var(--blue);font-size:13px;font-weight:700}.preview-more{margin-top:8px!important;color:var(--muted);font-size:12px!important}
.mode-help{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.mode-help div{border:1px solid var(--line);background:#f7f9fb;border-radius:8px;padding:10px;cursor:pointer}.mode-help div:focus-visible{outline:3px solid rgba(31,111,181,.25);outline-offset:2px}.mode-help div.active{border-color:#88afd3;background:var(--blue-soft)}.mode-help strong{display:block;font-size:13px;color:var(--blue)}.mode-help span{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}
.table-scroll{width:100%;overflow-x:auto}.article-output{overflow:hidden}.article-output h1,.article-output h2,.article-output h3{overflow-wrap:anywhere;line-height:1.25}.article-output h1{font-size:30px;margin:8px 0 18px;color:var(--text)}.article-output h2{font-size:22px;margin:28px 0 12px;color:var(--blue)}.article-output h3{font-size:18px;margin:20px 0 8px;color:var(--text)}.article-output p{font-size:16px;line-height:1.75;margin:0 0 16px}.article-output ul,.article-output ol{margin:0 0 18px}.article-output table{display:table;min-width:720px}.article-output th{background:#f2f6fa;color:var(--text);font-weight:800}
.detail-panel{padding:18px}.result-actions{position:sticky;top:0;z-index:4;background:linear-gradient(180deg,#fff 80%,rgba(255,255,255,.92));border-bottom:1px solid var(--line);margin:-18px -18px 16px;padding:14px 18px}.result-actions .button,.result-actions button{min-width:130px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.detail-grid div{background:#f7f9fb;border:1px solid var(--line);border-radius:7px;padding:10px;min-width:0}.detail-grid span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}.detail-grid strong{display:block;margin-top:4px;overflow-wrap:anywhere}.error-box{white-space:pre-wrap;background:#fff4f4;border:1px solid #ffd0d0;color:var(--red);border-radius:8px;padding:12px;overflow:auto}
.progress-card{border:1px solid var(--line);border-radius:10px;background:linear-gradient(135deg,#f8fbff,#eef6ff);padding:16px;margin-bottom:16px}.progress-head{display:flex;justify-content:space-between;align-items:center;font-size:14px}.progress-track{height:12px;background:#dce8f4;border-radius:999px;overflow:hidden;margin:12px 0}.progress-track div{height:100%;border-radius:999px;background:linear-gradient(90deg,#0b6aa8,#00a578);box-shadow:0 0 18px rgba(0,165,120,.45);transition:width .5s ease}.progress-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.progress-steps span{font-size:11px;color:var(--muted);background:white;border:1px solid var(--line);border-radius:999px;padding:5px 7px;text-align:center}.progress-steps span.active{color:white;background:var(--blue);border-color:var(--blue)}.wait-hint{margin-top:12px;border:1px solid #b8dece;background:#eefbf6;color:#0f6c50;border-radius:8px;padding:10px 12px;display:grid;gap:3px}.wait-hint strong{font-size:13px}.wait-hint span{font-size:13px;line-height:1.5;color:#215f4f}
.research-tracks{border:1px solid var(--line);border-radius:10px;background:white;padding:16px;margin-bottom:16px}.research-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.research-head h2{margin:0;color:var(--blue);font-size:17px}.research-head p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.research-head>span{background:#eefbf6;color:#0f6c50;border:1px solid #b8dece;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;white-space:nowrap}.research-track-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.research-track{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:12px;display:grid;gap:8px;min-width:0}.track-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.track-top strong{font-size:14px;color:var(--text)}.track-top span{border-radius:999px;padding:3px 7px;font-size:11px;font-weight:900;background:#eef3f8;color:var(--muted);white-space:nowrap}.research-track p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.research-track small{color:var(--blue);font-size:11px;font-weight:800;overflow-wrap:anywhere}.research-track.done{border-color:#b8dece;background:#f3fcf8}.research-track.done .track-top span{background:#e8f8f3;color:#0f6c50}.research-track.running{border-color:#88afd3;background:#eef6ff}.research-track.running .track-top span{background:var(--blue);color:white}.research-track.failed{border-color:#ffd0d0;background:#fff6f6}.research-track.failed .track-top span{background:#fff0f0;color:var(--red)}.research-track.skipped{background:#f7f9fb}.research-track.skipped .track-top span{background:#f2f6fa;color:var(--muted)}
.event-log{border:1px solid var(--line);border-radius:10px;background:white;padding:16px;margin-bottom:16px}.event-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.event-head h2{font-size:16px;margin:0;color:var(--blue)}.event-head span{font-size:12px;color:var(--muted);font-weight:700}.event-list{display:grid;gap:0}.event-row{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:8px 0 8px 2px}.event-row:before{content:"";position:absolute;left:10px;top:24px;bottom:-8px;width:1px;background:#dce8f4}.event-row:last-child:before{display:none}.event-dot{width:13px;height:13px;margin-top:4px;border-radius:50%;background:#9bb8d4;border:3px solid #eef6ff;box-shadow:0 0 0 1px #c8d8e8}.event-row.current .event-dot{background:#00a578;box-shadow:0 0 0 1px #00a578,0 0 18px rgba(0,165,120,.45)}.event-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.event-meta strong{font-size:11px;text-transform:uppercase;color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:3px 7px}.event-meta time{font-size:12px;color:var(--muted)}.event-row p{margin:4px 0 0;color:var(--text);font-size:13px;line-height:1.45}
.empty-list{color:var(--muted);font-size:13px;padding:18px}
.users-table{display:grid;gap:8px;overflow:auto}.user-row{display:grid;grid-template-columns:minmax(190px,1fr) 150px 110px minmax(260px,1.2fr) auto;gap:8px;align-items:center;border:1px solid var(--line);background:white;border-radius:8px;padding:10px}.user-main{min-width:0}.user-main strong,.user-main span{display:block;overflow-wrap:anywhere}.user-main span{margin-top:3px;color:var(--muted);font-size:12px}.user-row select,.user-row input{width:100%}.password-tools{display:flex;gap:6px;align-items:center}.password-tools input{min-width:160px}.user-actions{display:flex;gap:6px;justify-content:flex-end}.user-actions button,.password-tools button{white-space:nowrap}.self-note{color:var(--muted);font-size:12px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,#f7fafc,#edf3f8)}.login-panel{width:min(440px,100%);background:white;border:1px solid var(--line);border-radius:10px;padding:26px;box-shadow:var(--shadow)}.login-panel h1{font-size:28px;line-height:1.15;margin:8px 0}.login-panel p{color:var(--muted);line-height:1.55}.login-form{display:grid;gap:12px;margin-top:18px}.login-form label{display:grid;gap:6px;font-size:12px;color:var(--muted);font-weight:700}.login-form button{width:100%}
@media(max-width:900px){.app-layout{grid-template-columns:1fr}.sidebar{position:static;height:auto}.side-note{display:none}.workspace{padding:12px}.shell,.doc-shell{padding:12px}.top{flex-direction:column}.form,.dashboard-form,.report-layout,.detail-grid,.mode-help,.mode-cards,.signal-options,.signal-ai-grid,.signal-library-layout,.research-track-grid,.product-library-form{grid-template-columns:1fr}.workflow-strip,.project-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.signal-library-layout .signal-history{max-height:none}.wide,.dashboard-form .wide,.run-row,.product-library-form .wide{grid-column:auto}.run-row button{width:100%}.wizard-actions button{flex:1 1 140px}.wizard-actions .muted{flex-basis:100%}.toc{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.actions{width:100%}.actions .button,.actions button,.actions select{flex:1 1 auto}.panel-head{align-items:flex-start}.research-head{display:grid}.doc-hero{padding:16px}.doc-section{padding:14px}.top h1,.doc-hero h1{font-size:21px}.article-output h1{font-size:24px}.article-output h2{font-size:20px}.article-output p{font-size:15px}}
@media(max-width:760px){.user-row{grid-template-columns:1fr}.password-tools,.user-actions{justify-content:flex-start;flex-wrap:wrap}.password-tools input{min-width:0;flex:1 1 180px}}
@media(max-width:520px){.toc,.wizard-progress{grid-template-columns:1fr}.form label{grid-template-columns:auto min-content}.job-row,.job{grid-template-columns:1fr}.jobs,.project-list,.signal-library-layout .signal-history-list{grid-template-columns:1fr}.project-card,.list-card,.signal-library-layout .signal-history-item{width:100%}.icon-action{height:36px}.badge{justify-self:start}.doc-section th,.doc-section td{min-width:160px}.info-pop{right:auto;left:-24px}}
.doc-workspace{max-width:980px}.form-row{grid-template-columns:minmax(260px,420px) 160px 190px;justify-content:start}.source-row{grid-template-columns:190px minmax(260px,1fr)}
@media(max-width:900px){.form-row,.source-row{grid-template-columns:1fr}}

/* Optimization article reading width */
body[data-page="optimization"] .doc-workspace{max-width:980px;width:100%;margin:0 auto}
body[data-page="optimization"] .doc-hero h1{max-width:860px;font-size:30px;overflow-wrap:anywhere}
body[data-page="optimization"] .doc-hero p{max-width:760px}
body[data-page="optimization"] .quality-check-panel{max-width:860px;margin-left:auto;margin-right:auto}
body[data-page="optimization"] .quality-check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body[data-page="optimization"] .quality-check-item{min-height:auto;padding:11px}
body[data-page="optimization"] #optimizationContent>.doc-section{max-width:860px;margin-left:auto;margin-right:auto}
body[data-page="optimization"] .article-output{max-width:760px}
body[data-page="optimization"] .article-output h1{font-size:28px}
body[data-page="optimization"] .article-output p{font-size:16px;line-height:1.72}
@media(max-width:900px){body[data-page="optimization"] .quality-check-grid{grid-template-columns:1fr}body[data-page="optimization"] .doc-hero h1{font-size:23px}}
.signal-ai-empty{margin:0 0 10px;border:1px solid #ffdca8;border-radius:8px;background:#fff8eb;color:#7b5600;padding:9px 10px;font-size:12px;line-height:1.5}.signal-ai-angles{grid-column:1 / -1}.signal-ai-grid .signal-angle-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;border:0;background:transparent;padding:0}.signal-angle-card{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px;color:var(--text);font-weight:700}.signal-angle-card:hover,.signal-angle-card.selected{border-color:#88afd3;background:var(--blue-soft)}.signal-angle-main{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;cursor:pointer}.signal-angle-card input{width:16px;height:16px;margin:2px 0 0}.signal-angle-card strong,.signal-angle-card em,.signal-angle-card small{display:block;overflow-wrap:anywhere}.signal-angle-card strong{font-size:13px;color:var(--blue)}.signal-angle-card em{margin-top:4px;color:var(--muted);font-style:normal;font-size:12px;line-height:1.45;font-weight:600}.signal-angle-use{display:inline-flex!important;align-items:center;justify-content:center;width:max-content;max-width:100%;margin-top:8px;padding:4px 9px;border:1px solid #9bb8d4;border-radius:999px;background:#eef6ff;color:#0f4d80!important;font-size:11px!important;line-height:1.2!important;font-weight:900;text-transform:uppercase}.signal-angle-use.intro-hook{background:#e9f7ff;border-color:#7dbbe3;color:#075985!important}.signal-angle-use.risk-warning{background:#fff3d6;border-color:#e1a72f;color:#7a4d00!important}.signal-angle-use.comparison-table{background:#eefbf6;border-color:#5bbd93;color:#075f46!important}.signal-angle-use.faq{background:#f2efff;border-color:#a796ee;color:#4c3b9b!important}.signal-angle-use.h2-section{background:#f0f6ff;border-color:#87aedd;color:#174a7a!important}.signal-angle-footer{display:flex;gap:6px;align-items:center;justify-content:space-between;flex-wrap:wrap}.signal-ai-grid .signal-angle-citations{display:flex;gap:5px;flex-wrap:wrap;border:0;background:transparent;padding:0}.signal-angle-citations a,.signal-angle-citations span,.signal-angle-source{display:inline-flex;border:1px solid #c8d8e8;border-radius:999px;background:white;padding:2px 7px;font-size:11px;font-weight:900;color:var(--blue)}.signal-evidence-label{color:var(--muted);font-size:12px;font-weight:900}
.signal-evidence-panel{border:1px solid var(--line);border-radius:8px;background:white;margin-top:8px}.signal-evidence-panel>summary{cursor:pointer;padding:10px 12px;color:var(--blue);font-size:13px;font-weight:900;list-style:none}.signal-evidence-panel>summary::-webkit-details-marker{display:none}.signal-evidence-panel>summary:before{content:"›";display:inline-block;margin-right:6px;transition:transform .15s ease}.signal-evidence-panel[open]>summary{border-bottom:1px solid var(--line);background:#fbfdff}.signal-evidence-panel[open]>summary:before{transform:rotate(90deg)}.signal-evidence-list{display:grid;gap:10px;padding:10px}

/* Research task center refresh */
.sidebar{background:linear-gradient(180deg,#102033 0%,#13283d 58%,#0d1a2a 100%)}.brand{padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.12)}.brand>div{display:grid;gap:2px}.brand small{color:#9fb4c8;font-size:11px;font-weight:800}.side-nav{gap:12px}.side-nav-group{display:grid;gap:6px}.side-section-label{color:#8ea5bc;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;padding:0 4px}.side-nav a,.side-nav button{min-height:52px;justify-content:flex-start;gap:8px;background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.1);display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center}.side-nav a strong,.side-nav button strong{display:block;font-size:13px;line-height:1.2}.side-nav a small,.side-nav button small{display:block;margin-top:3px;color:#b8c8d8;font-size:11px;font-weight:700;line-height:1.25;white-space:normal}.side-nav a.current,.side-nav button.current,.side-nav a.active,.side-nav button.active{background:white;color:#102033;border-color:white;box-shadow:0 8px 22px rgba(0,0,0,.16)}.side-nav a.current small,.side-nav button.current small,.side-nav a.active small,.side-nav button.active small{color:#53677d}.side-nav a:hover,.side-nav button:hover{background:rgba(255,255,255,.14)}.side-nav a.current:hover,.side-nav button.current:hover,.side-nav a.active:hover,.side-nav button.active:hover{background:white}.side-nav span{margin-left:auto}.side-nav .side-section-label{margin-left:0}.side-note{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}
body[data-page="job-detail"] .workspace-head{border:1px solid var(--line);border-radius:8px;background:white;box-shadow:var(--shadow);padding:18px 20px}body[data-page="job-detail"] .workspace-head h1{font-size:26px}body[data-page="job-detail"] .detail-panel{padding:0;background:transparent;border:0;box-shadow:none}.result-actions{position:sticky;top:0;z-index:4;background:rgba(244,246,248,.94);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:8px;margin:0 0 16px;padding:12px}
.research-tracks{border:0;border-radius:8px;background:transparent;padding:0;margin-bottom:16px}.research-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,220px);gap:14px;align-items:stretch;margin-bottom:12px}.research-overview>div:first-child{border:1px solid var(--line);border-radius:8px;background:white;box-shadow:var(--shadow);padding:18px}.research-overview span{display:block;color:var(--green);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.research-overview h2{margin:5px 0 6px;font-size:22px;line-height:1.2;color:var(--text)}.research-overview p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.research-overview-metrics{border:1px solid #b8dece;border-radius:8px;background:#eefbf6;padding:16px;display:grid;align-content:center;gap:6px}.research-overview-metrics strong{font-size:26px;color:#0f6c50;line-height:1}.research-overview-metrics small{color:#215f4f;font-size:12px;font-weight:800;line-height:1.45}.research-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:white;padding:10px;margin-bottom:10px}.research-flow span{position:relative;border:1px solid var(--line);border-radius:999px;background:#f7f9fb;color:var(--muted);font-size:12px;font-weight:900;text-align:center;padding:7px 10px}.research-flow span.active{border-color:#88afd3;background:var(--blue-soft);color:var(--blue)}.research-flow strong{grid-column:1 / -1;color:var(--muted);font-size:12px;text-align:center}.research-head{border:1px solid var(--line);border-radius:8px;background:white;padding:14px;margin-bottom:10px}.research-track-grid{gap:12px}.research-track{position:relative;grid-template-columns:38px minmax(0,1fr);align-items:start;border-radius:8px;background:white;padding:14px;box-shadow:0 5px 16px rgba(14,38,64,.05);overflow:hidden}.research-track:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#9bb8d4}.research-track.done:before{background:#00a578}.research-track.running:before{background:#0b6aa8}.research-track.failed:before{background:var(--red)}.research-track.skipped:before{background:#c6d3e1}.track-index{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eef3f8;color:var(--blue);font-size:12px;font-weight:900}.research-track.done .track-index{background:#e8f8f3;color:#0f6c50}.research-track.running .track-index{background:var(--blue);color:white}.research-track.failed .track-index{background:#fff0f0;color:var(--red)}.track-body{display:grid;gap:7px;min-width:0}.track-meter{height:7px;border-radius:999px;background:#e5edf5;overflow:hidden}.track-meter span{display:block;height:100%;border-radius:999px;background:#9bb8d4;transition:width .4s ease}.research-track.running .track-meter span{background:linear-gradient(90deg,#0b6aa8,#55a6d9)}.research-track.done .track-meter span{background:#00a578}.research-track.failed .track-meter span{background:var(--red)}.research-track b{display:block;color:var(--text);font-size:12px;line-height:1.35}.research-track em{display:block;color:#41556b;font-size:12px;font-style:normal;line-height:1.45;background:#f7f9fb;border:1px solid #edf1f5;border-radius:7px;padding:7px 8px;overflow-wrap:anywhere}.research-track.running em{background:#f3f8ff;border-color:#c8d8e8}.research-track.done em{background:#f2fbf7;border-color:#cbe8dc}
@media(max-width:900px){.side-nav{gap:10px}.side-nav-group{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.side-section-label{grid-column:1 / -1}.research-overview{grid-template-columns:1fr}.result-actions{top:0}.research-track{grid-template-columns:34px minmax(0,1fr)}}
@media(max-width:520px){.side-nav-group{grid-template-columns:1fr}.research-overview h2{font-size:20px}.research-head>span{justify-self:start}.track-top{display:grid;align-items:start}.track-top span{justify-self:start}.research-track{grid-template-columns:1fr}.track-index{width:30px;height:30px}}

/* Sidebar density tuning */
.sidebar{gap:12px;padding:14px 18px}
.side-nav{gap:9px}
.side-nav-group{gap:5px}
.side-section-label{font-size:10px;padding:0 10px}
.side-nav a,.side-nav button{min-height:42px;border-radius:8px;padding:7px 10px}
.side-nav a strong,.side-nav button strong{font-size:12px;line-height:1.15}
.side-nav a small,.side-nav button small{font-size:10px;line-height:1.2;margin-top:2px}
.side-nav span{font-size:10px;padding:2px 7px}
body[data-page="dashboard"] .side-note{display:none}

/* Collapsible sidebar */
.side-note,.side-nav a small,.side-nav button small{display:none!important}
.sidebar-toggle{height:30px;width:30px;min-width:30px;padding:0;border-radius:7px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);color:white;font-size:16px;line-height:1;align-self:flex-end}
.sidebar-toggle:hover{background:rgba(255,255,255,.18)}
.side-nav a,.side-nav button{min-height:38px}
.app-layout.sidebar-collapsed{grid-template-columns:54px minmax(0,1fr)}
.app-layout.sidebar-collapsed .sidebar{padding:12px 8px;gap:10px;align-items:center}
.app-layout.sidebar-collapsed .brand,.app-layout.sidebar-collapsed .side-nav,.app-layout.sidebar-collapsed .side-note{display:none!important}
.app-layout.sidebar-collapsed .sidebar-toggle{align-self:center}
@media(max-width:900px){.app-layout.sidebar-collapsed{grid-template-columns:1fr}.app-layout.sidebar-collapsed .sidebar{height:auto;align-items:flex-start}.app-layout.sidebar-collapsed .brand,.app-layout.sidebar-collapsed .side-nav{display:none!important}.app-layout.sidebar-collapsed .sidebar-toggle{align-self:flex-start}}

/* Admin model health */
.admin-model-list{display:grid;gap:10px;margin:12px 0 16px}
.admin-model-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:white;padding:12px}
.admin-model-card.default{border-color:#b8dece;background:#f5fcf9}
.admin-model-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-model-title strong{font-size:14px;color:var(--text)}
.admin-model-title span{border-radius:999px;background:#e8f8f3;color:#0f6c50;padding:2px 7px;font-size:11px;font-weight:900}
.admin-model-card p,.admin-model-card small{display:block;margin:4px 0 0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.admin-model-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.admin-model-actions button{height:34px;font-size:12px}
.admin-model-form{border-top:1px solid var(--line);padding-top:14px;margin-top:6px}
@media(max-width:760px){.admin-model-card{grid-template-columns:1fr}.admin-model-actions{justify-content:flex-start}}

/* Comfortable centered reading area */
.workspace{max-width:1160px;margin:0 auto}
.doc-workspace{max-width:1120px;margin:0 auto}
body[data-page="brief"] .doc-workspace{max-width:1180px}
.app-layout.sidebar-collapsed .workspace{max-width:1260px}
.app-layout.sidebar-collapsed .doc-workspace{max-width:1220px}
body[data-page="brief"] .app-layout.sidebar-collapsed .doc-workspace{max-width:1280px}
.actions .button,.actions button,.wizard-actions button,.run-row button{flex:0 0 auto;width:auto;max-width:max-content;white-space:nowrap}

.detail-grid.compact{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){.detail-grid.compact{grid-template-columns:1fr}}

/* Job detail focus pass */
body[data-page="job-detail"] .workspace-head{align-items:center;min-height:0}
.job-header-meta{flex:0 0 auto;border:1px solid #b8dece;border-radius:8px;background:#eefbf6;color:#0f6c50;padding:12px 16px;display:grid;gap:2px;min-width:130px;text-align:center}
.job-header-meta[hidden]{display:none}
.job-header-meta strong{font-size:22px;line-height:1}
.job-header-meta span{font-size:12px;font-weight:900}
body[data-page="job-detail"] .research-track-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
body[data-page="job-detail"] .research-track:nth-child(3){grid-column:1 / -1;width:min(560px,100%);justify-self:center}
@media(max-width:900px){
  body[data-page="job-detail"] .workspace-head{align-items:flex-start}
  .job-header-meta{width:100%;text-align:left}
  body[data-page="job-detail"] .research-track-grid{grid-template-columns:1fr}
  body[data-page="job-detail"] .research-track:nth-child(3){grid-column:auto;width:100%}
}

/* Job detail timeline layout */
body[data-page="job-detail"] .workspace-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:flex-start;padding:0;border:0;background:transparent;box-shadow:none}
body[data-page="job-detail"] .workspace-head h1{max-width:900px;font-size:30px;line-height:1.12}
body[data-page="job-detail"] .workspace-head p{font-size:14px}
.job-header-meta{display:flex;align-items:center;gap:7px;width:max-content;min-width:0;margin-top:10px;border:0;border-radius:999px;background:#eefbf6;color:#0f6c50;padding:5px 9px;text-align:left;font-size:12px;font-weight:900}
.job-header-meta:before{content:"已完成";display:inline-flex;border-radius:999px;background:white;color:#0f6c50;padding:2px 7px}
.job-header-meta span{font-size:12px;font-weight:900}
.job-header-actions{justify-content:flex-end;align-items:center;gap:8px;max-width:420px;flex-wrap:wrap}
.job-header-actions .button,.job-header-actions button{min-width:0;padding:9px 13px;font-size:13px}
.job-header-actions .danger{background:#fff5f5;color:var(--red);border-color:#ffd0d0}
.job-empty-actions{border:1px dashed var(--line);border-radius:8px;background:white;padding:12px 14px}
body[data-page="job-detail"] .research-timeline{border:1px solid var(--line);border-radius:8px;background:white;padding:8px 18px;margin-bottom:0;box-shadow:var(--shadow)}
body[data-page="job-detail"] .research-track-list{display:grid}
body[data-page="job-detail"] .research-track-list .research-track{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;border:0;border-radius:0;background:transparent;box-shadow:none;padding:16px 0 18px;overflow:visible}
body[data-page="job-detail"] .research-track-list .research-track:nth-child(3){grid-column:auto;width:auto;justify-self:stretch}
body[data-page="job-detail"] .research-track-list .research-track:not(:last-child){border-bottom:1px solid #edf1f5}
body[data-page="job-detail"] .research-track-list .research-track:before{content:"";position:absolute;left:20px;top:48px;bottom:-12px;width:1px;background:#dce8f4}
body[data-page="job-detail"] .research-track-list .research-track:last-child:before{display:none}
body[data-page="job-detail"] .research-track-list .track-index{width:40px;height:40px;border-radius:50%;font-size:12px}
body[data-page="job-detail"] .research-track-list .track-body{gap:6px}
body[data-page="job-detail"] .research-track-list .track-top{align-items:center}
body[data-page="job-detail"] .research-track-list .track-top strong{font-size:16px}
body[data-page="job-detail"] .research-track-list .track-top span{font-size:11px}
body[data-page="job-detail"] .research-track-list .research-track p{font-size:13px;line-height:1.5}
body[data-page="job-detail"] .research-track-list .research-track small{font-size:12px}
body[data-page="job-detail"] .research-track-list .research-track b{font-size:13px}
body[data-page="job-detail"] .research-track-list .research-track.done b{color:#0f6c50}
body[data-page="job-detail"] .research-track-list .research-track.done{background:transparent}
.track-substeps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:2px}
.track-substeps span{display:flex;align-items:center;gap:6px;min-width:0;border:1px solid #edf1f5;border-radius:7px;background:#f8fafc;color:#41556b;padding:6px 8px;font-size:12px;line-height:1.25}
.track-substeps span i{width:8px;height:8px;border-radius:50%;background:#c6d3e1;flex:0 0 auto}
.track-substeps span strong{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap;font-weight:900}
.track-substeps span.running{border-color:#c8d8e8;background:#f3f8ff;color:#123f63}
.track-substeps span.running i{background:#0b6aa8;box-shadow:0 0 0 3px rgba(11,106,168,.12)}
.track-substeps span.done{border-color:#cbe8dc;background:#f2fbf7;color:#0f6c50}
.track-substeps span.done i{background:#00a578}
.track-substeps span.failed{border-color:#ffd0d0;background:#fff6f6;color:var(--red)}
.track-substeps span.failed i{background:var(--red)}
@media(max-width:900px){
  body[data-page="job-detail"] .workspace-head{grid-template-columns:1fr;padding:18px}
  body[data-page="job-detail"] .workspace-head h1{font-size:24px}
  .job-header-actions{justify-content:flex-start;max-width:none}
  .track-substeps{grid-template-columns:1fr}
}
@media(max-width:1280px){
  body[data-page="job-detail"] .workspace-head{grid-template-columns:1fr}
  .job-header-actions{justify-content:flex-start;max-width:none}
}

/* Unified content plan report */
body[data-page="report"] .workspace-head h1{font-size:30px;line-height:1.12}
body[data-page="report"] .toolbar-panel{padding:12px 14px}
.report-layout .unified-toc{
  position:static;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.report-layout .unified-toc a{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid #dbe6f1;
  border-radius:999px;
  background:white;
  font-size:12px;
  font-weight:800;
  color:var(--blue);
  box-shadow:0 4px 12px rgba(19,40,68,.04);
}
.report-layout .unified-toc a:hover{
  background:#eef6ff;
}
.unified-report{display:grid;gap:16px;min-width:0}
.final-plan-hero{background:#fbfdff;border-color:#c9d8e7}
.final-plan-hero>p{max-width:760px;color:var(--muted);line-height:1.65}
.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.plan-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.plan-card{border:1px solid var(--line);border-radius:8px;background:white;padding:14px;display:grid;gap:8px;align-content:start;min-width:0}
.plan-card h3{font-size:15px;margin:0;color:var(--blue)}
.plan-card p{margin:0;line-height:1.6}
.plan-card ul,.doc-section>ul{margin:0;padding-left:18px;display:grid;gap:7px}
.plan-card li,.doc-section>ul li{line-height:1.55}
.plan-card li strong,.doc-section>ul li strong{display:block;color:var(--text);margin-bottom:3px}
.plan-card li span,.doc-section>ul li span{display:block;color:var(--muted)}
.brief-preview{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:14px 16px;max-height:620px;overflow:auto;font-weight:400;color:var(--text)}
.brief-preview h1{font-size:20px;font-weight:500}.brief-preview h2{font-size:17px;font-weight:500}.brief-preview h3{font-size:15px;font-weight:500}.brief-preview p,.brief-preview li{line-height:1.65;font-weight:400}.brief-preview strong,.brief-preview b{font-weight:400}
.source-materials details{border:1px solid var(--line);border-radius:8px;background:#fbfdff;margin-top:10px;overflow:hidden}
.source-materials summary{cursor:pointer;padding:12px 14px;color:var(--blue);font-weight:900;list-style:none}
.source-materials summary::-webkit-details-marker{display:none}
.source-materials summary:before{content:">";display:inline-block;margin-right:8px;transition:transform .15s ease}
.source-materials details[open] summary{border-bottom:1px solid var(--line);background:white}
.source-materials details[open] summary:before{transform:rotate(90deg)}
.source-materials details>*:not(summary){margin:12px 14px}
.source-material-card{box-shadow:0 4px 14px rgba(14,38,64,.035)}
.source-material-card summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;min-height:86px}
.source-material-card summary:before{display:none}
.source-material-card summary span{font-size:14px;font-weight:900;color:var(--blue)}
.source-material-card summary strong{font-size:28px;line-height:1;color:var(--text)}
.source-material-card summary em{grid-column:1 / -1;font-size:12px;font-style:normal;color:var(--muted)}
.source-detail-body{max-width:900px;margin:16px auto!important;padding:0 14px}
.source-detail-body h3{margin:18px 0 10px;color:var(--blue);font-size:15px}
.source-detail-body h3+ul{display:grid;gap:10px;padding-left:18px}
.source-detail-body h3+ul li{line-height:1.55}
.source-detail-body h3+ul strong{display:block;margin-bottom:5px;color:var(--text)}
.source-detail-body h3+ul span{display:block;color:var(--muted)}
.source-serp-card{margin-bottom:20px}
.source-evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.source-evidence-card{margin-top:0!important}
.source-evidence-card[open]{grid-column:1 / -1;width:min(900px,100%);justify-self:center}
.source-signal-list{display:grid;gap:8px;margin:12px 14px!important;padding-left:18px}
.source-evidence-card .source-signal-list{margin:0!important}
.source-signal-list li{line-height:1.5}.source-signal-list strong,.source-signal-list span{display:block}.source-signal-list span{color:var(--muted)}
.toolbar-panel .actions button.active{background:var(--blue);border-color:var(--blue);color:white}
.insight-channel-summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px 12px;margin:0 0 12px}
.insight-channel-summary span{display:inline-flex;border:1px solid #c8d8e8;border-radius:999px;background:white;color:var(--blue);font-size:12px;font-weight:900;padding:4px 8px}
.insight-channel-summary p{flex-basis:100%;margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.serp-rescue-card{border-color:#f0c36d!important;background:#fffaf0!important}
.serp-rescue-body{max-width:940px}
.serp-rescue-list{display:grid;gap:12px;margin-top:12px}
.serp-rescue-item{display:grid;gap:10px;border:1px solid #f2d8a7;border-radius:8px;background:white;padding:12px}
.serp-rescue-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.serp-rescue-head strong{display:block;color:var(--text);font-size:14px;margin-bottom:4px}
.serp-rescue-head a{display:block;color:var(--blue);font-size:12px;font-weight:800;overflow-wrap:anywhere}
.serp-rescue-head span{border-radius:999px;background:#fff4df;color:#8a5a00;font-size:11px;font-weight:900;padding:4px 8px;white-space:nowrap}
.serp-rescue-item label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800}
.serp-rescue-item textarea{min-height:180px}
.serp-rescue-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.serp-rescue-actions button{height:36px;font-size:12px}
.serp-rescue-actions small{color:var(--muted);font-size:12px;line-height:1.4}
.crawl-diagnostics{border-color:#c8d8e8;background:#fbfdff}
.crawl-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.crawl-summary-grid article{border:1px solid var(--line);border-radius:8px;background:white;padding:12px;display:grid;gap:7px}
.crawl-summary-grid strong{font-size:13px;color:var(--muted)}
.crawl-summary-grid span{font-size:18px;font-weight:900;color:var(--text)}
.crawl-good{color:var(--green)!important}.crawl-partial{color:#8a5a00!important}.crawl-poor,.crawl-failed{color:var(--red)!important}
.crawl-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 12px}.crawl-actions button{height:34px;font-size:12px}.crawl-actions small{color:var(--muted);font-size:12px}
.crawl-page-card,.crawl-competitor-group{border:1px solid var(--line);border-radius:8px;background:white;margin-top:10px;overflow:hidden}
.crawl-page-card>summary,.crawl-competitor-group>summary{cursor:pointer;list-style:none;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center}
.crawl-page-card>summary::-webkit-details-marker,.crawl-competitor-group>summary::-webkit-details-marker{display:none}
.crawl-page-card>summary span,.crawl-competitor-group>summary{font-weight:900;color:var(--blue)}
.crawl-page-card>summary strong{border-radius:999px;background:#eef3f8;color:var(--blue);font-size:11px;font-weight:900;padding:4px 8px}
.crawl-page-card>summary em{grid-column:1 / -1;color:var(--muted);font-size:12px;font-style:normal;overflow-wrap:anywhere}
.crawl-page-card.crawl-partial,.crawl-page-card.crawl-poor,.crawl-page-card.crawl-failed{border-color:#f0c36d;background:#fffaf0}
.crawl-page-body{display:grid;gap:10px;padding:12px 14px;border-top:1px solid var(--line)}
.crawl-metrics{display:flex;gap:7px;flex-wrap:wrap}.crawl-metrics span{border:1px solid #c8d8e8;border-radius:999px;background:#fbfdff;color:var(--blue);font-size:12px;font-weight:900;padding:4px 8px}
.crawl-warning{margin:0;border:1px solid #ffd0d0;border-radius:8px;background:#fff6f6;color:var(--red);padding:8px 10px;font-size:12px;line-height:1.45}
.crawl-page-body pre{white-space:pre-wrap;max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#f7f9fb;padding:10px;font-size:12px;line-height:1.55;color:var(--text)}
.crawl-page-list{display:grid;gap:10px;padding:12px 14px;border-top:1px solid var(--line)}
.source-rescue-inline{border:1px solid #f2d8a7;border-radius:8px;background:#fffaf0;padding:10px}.source-rescue-inline summary{cursor:pointer;color:#8a5a00;font-weight:900}.source-rescue-inline label{display:grid;gap:5px;margin-top:8px;color:var(--muted);font-size:12px;font-weight:800}.source-rescue-inline textarea{min-height:160px}.source-rescue-inline button{margin-top:8px;height:34px;font-size:12px}.source-rescue-inline small{margin-left:8px;color:var(--muted)}
.signal-library-filters{display:grid;grid-template-columns:minmax(170px,220px) minmax(150px,190px) auto;gap:8px;margin:8px 0 10px;align-items:end}
.signal-library-filters label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:800}
.signal-library-filters .inline-check{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:9px 10px;color:var(--text);height:40px}
.signal-library-filters .inline-check input{width:16px;height:16px}
.signal-history-item.brief-ready{border-color:#b8dece;background:#f5fcf9}
.signal-history-item small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:800}
.signal-library-layout .signal-history{background:transparent;border:0;padding:0}
.signal-library-layout .signal-history-head{margin-bottom:2px}
.signal-library-layout .signal-history-item{position:relative;width:280px;min-height:126px;border-radius:8px;padding:12px;align-content:start}
.signal-library-layout .signal-history-item .badge{justify-self:start;margin-bottom:2px}
.signal-library-layout .signal-history-item strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:1.25}
.signal-library-layout .signal-history-item span:not(.badge),.signal-library-layout .signal-history-item small,.signal-library-layout .signal-history-item em{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:normal}
.signal-library-layout .signal-history-item em{margin-top:auto;border-top:1px solid #edf1f5;padding-top:8px;color:var(--muted);font-size:11px;font-weight:800}
.signal-asset-meta{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:10px 12px;margin-bottom:10px}
.signal-asset-meta strong,.signal-asset-meta span{display:block}
.signal-asset-meta strong{font-size:14px;color:var(--blue)}
.signal-asset-meta span{margin-top:3px;color:var(--muted);font-size:12px}
.signal-asset-meta button{height:34px;font-size:12px;white-space:nowrap}
.quality-check-panel{background:#fbfdff}
.quality-overall{border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;background:#fff4df;color:#8a5a00}
.quality-overall.pass{background:#e8f8f3;color:var(--green)}
.quality-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.quality-check-item{border:1px solid var(--line);border-radius:8px;background:white;padding:12px;display:grid;gap:6px}
.quality-check-item strong{font-size:13px;color:var(--text)}
.quality-check-item>span{width:max-content;border-radius:999px;background:#eef3f8;color:var(--blue);padding:2px 7px;font-size:11px;font-weight:900}
.quality-check-item.pass>span{background:#e8f8f3;color:var(--green)}
.quality-check-item.warn>span,.quality-check-item.review>span{background:#fff4df;color:#8a5a00}
.quality-check-item p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.quality-check-item details summary{cursor:pointer;color:var(--blue);font-size:12px;font-weight:900}
.quality-check-item ul{margin:6px 0 0;padding-left:18px}
.quality-check-item li{font-size:12px;line-height:1.45;color:var(--muted)}
.quality-check-item.review{border-color:#f0c36d}
.tutorial-panel{display:grid;gap:16px}
.tutorial-quickstart{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tutorial-quickstart article{border:1px solid var(--line);border-radius:8px;background:#fbfdff;padding:14px;display:grid;gap:7px;align-content:start}
.tutorial-quickstart span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:white;font-size:12px;font-weight:900}
.tutorial-quickstart strong{font-size:14px;color:var(--text)}
.tutorial-quickstart p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.tutorial-sections{display:grid;gap:10px}
.tutorial-sections details{border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden}
.tutorial-sections summary{cursor:pointer;list-style:none;padding:13px 15px;color:var(--blue);font-weight:900}
.tutorial-sections summary::-webkit-details-marker{display:none}
.tutorial-sections summary:before{content:">";display:inline-block;margin-right:8px;transition:transform .15s ease}
.tutorial-sections details[open] summary{background:#fbfdff;border-bottom:1px solid var(--line)}
.tutorial-sections details[open] summary:before{transform:rotate(90deg)}
.tutorial-sections ol,.tutorial-sections ul{margin:14px 18px 16px;padding-left:18px;display:grid;gap:8px}
.tutorial-sections li{line-height:1.6;color:var(--text)}
.tutorial-grid,.tutorial-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}
.tutorial-grid div,.tutorial-faq div{border:1px solid #edf1f5;border-radius:8px;background:#fbfdff;padding:12px}
.tutorial-grid strong,.tutorial-faq strong{display:block;color:var(--text);font-size:14px;margin-bottom:5px}
.tutorial-grid p,.tutorial-faq p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
@media(max-width:980px){.plan-grid,.plan-grid.three,.source-evidence-grid,.crawl-summary-grid{grid-template-columns:1fr}}
@media(max-width:980px){.quality-check-grid,.signal-library-filters{grid-template-columns:1fr}.signal-asset-meta{align-items:flex-start;display:grid}}
@media(max-width:980px){.tutorial-quickstart,.tutorial-grid,.tutorial-faq{grid-template-columns:1fr}}

/* Project workbench */
body[data-page="project"] .workspace-head{border:1px solid var(--line);border-radius:8px;background:white;box-shadow:var(--shadow);padding:22px 24px}
.project-workbench{display:grid;gap:16px}
.project-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,460px);gap:18px;align-items:center}
.project-overview h2{font-size:26px;line-height:1.15;margin:5px 0 6px;color:var(--text)}
.project-overview .project-steps{margin-top:0}
.project-status-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.project-status-title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.project-status-title-row h2{margin-right:0}
.project-next-action{margin-top:14px;border:1px solid #dbe6f1;border-radius:8px;background:#fbfdff;padding:12px 14px;display:grid;gap:8px;max-width:420px;box-shadow:0 5px 14px rgba(19,40,68,.035)}
.project-next-action span{color:var(--green);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.project-next-action strong{color:var(--text);font-size:16px;line-height:1.2}
.project-next-action .button{width:max-content}
.small-action{height:30px!important;font-size:12px!important;padding:0 10px;white-space:nowrap}
.workbench-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.workbench-card{border:1px solid var(--line);border-radius:8px;background:white;padding:14px;display:grid;gap:12px;align-content:start;min-width:0;box-shadow:0 5px 16px rgba(14,38,64,.04)}
.workbench-card-head{display:flex;justify-content:space-between;gap:10px;align-items:start}
.workbench-card-head h3{font-size:16px;margin:0;color:var(--blue)}
.workbench-card-head span{border-radius:999px;background:#eef3f8;color:var(--blue);font-size:11px;font-weight:900;padding:4px 8px;white-space:nowrap}
.workbench-card-body{display:grid;gap:8px}
.workbench-card-body p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.workbench-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.workbench-card-actions .button,.workbench-card-actions button{height:34px;font-size:12px}
.mini-metrics{display:flex;gap:6px;flex-wrap:wrap}
.mini-metrics span{border:1px solid #c8d8e8;border-radius:999px;background:#fbfdff;color:var(--blue);font-size:12px;font-weight:900;padding:4px 8px}
.warning-text{color:var(--red)!important;background:#fff6f6;border:1px solid #ffd0d0;border-radius:7px;padding:8px}
.workbench-job-list{display:grid;gap:8px}
.workbench-job{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:white;padding:10px 12px}
.workbench-job:hover{border-color:#9bb8d4;background:#fbfdff}
.workbench-job strong{font-size:13px;color:var(--text)}
.workbench-job small{color:var(--muted);font-size:12px}
@media(max-width:900px){
  .project-overview,.workbench-grid{grid-template-columns:1fr}
  .workbench-job{grid-template-columns:1fr}
}

/* Dashboard visual refresh */
:root{
  --bg:#f5f7fb;
  --panel:#ffffff;
  --line:#dde5ef;
  --text:#122033;
  --muted:#64748b;
  --blue:#185a9d;
  --blue-soft:#edf6ff;
  --green:#0b8f67;
  --amber:#a86800;
  --red:#c73d3d;
  --shadow:0 14px 34px rgba(19,40,68,.08);
  --shadow-soft:0 8px 18px rgba(19,40,68,.055);
}

body[data-page="dashboard"]{
  background:
    linear-gradient(180deg,#f9fbff 0%,#f4f7fb 42%,#eef4f7 100%);
}

body[data-page="dashboard"] .app-layout{
  grid-template-columns:248px minmax(0,1fr);
  background:transparent;
}

body[data-page="dashboard"] .sidebar{
  background:linear-gradient(180deg,#0f2238 0%,#132f47 48%,#101d31 100%);
  border-right:1px solid rgba(255,255,255,.08);
  padding:14px 12px;
  gap:12px;
}

body[data-page="dashboard"] .brand{
  padding:6px 6px 12px;
  border-bottom:1px solid rgba(255,255,255,.1);
}

body[data-page="dashboard"] .brand strong{
  font-size:15px;
  letter-spacing:0;
}

body[data-page="dashboard"] .brand small{
  color:#adc1d5;
  font-size:11px;
}

body[data-page="dashboard"] .brand .pill{
  padding:4px 8px;
  font-size:11px;
  background:rgba(225,247,238,.14);
  color:#9df0cf;
  border:1px solid rgba(157,240,207,.18);
}

body[data-page="dashboard"] .side-nav{
  gap:10px;
}

body[data-page="dashboard"] .side-nav-group{
  gap:4px;
}

body[data-page="dashboard"] .side-section-label{
  padding:8px 10px 3px;
  color:#8ea9c4;
  font-size:10px;
  letter-spacing:.08em;
}

body[data-page="dashboard"] .side-nav a,
body[data-page="dashboard"] .side-nav button{
  min-height:36px;
  padding:7px 9px;
  border-radius:8px;
  background:transparent;
  border-color:transparent;
  color:#dbe8f6;
  grid-template-columns:minmax(0,1fr) auto;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}

body[data-page="dashboard"] .side-nav a strong,
body[data-page="dashboard"] .side-nav button strong{
  font-size:12px;
  line-height:1.2;
  font-weight:750;
}

body[data-page="dashboard"] .side-nav a small,
body[data-page="dashboard"] .side-nav button small{
  display:none!important;
}

body[data-page="dashboard"] .side-nav a:hover,
body[data-page="dashboard"] .side-nav button:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.08);
}

body[data-page="dashboard"] .side-nav a.active,
body[data-page="dashboard"] .side-nav button.active,
body[data-page="dashboard"] .side-nav a.current,
body[data-page="dashboard"] .side-nav button.current{
  background:#fff;
  color:#102033;
  border-color:#fff;
  box-shadow:0 9px 22px rgba(0,0,0,.18);
}

body[data-page="dashboard"] .side-nav span{
  background:rgba(255,255,255,.12);
  color:#d7e6f6;
  font-size:10px;
  padding:2px 6px;
}

body[data-page="dashboard"] .side-nav .active span,
body[data-page="dashboard"] .side-nav .current span{
  background:#eaf3fb;
  color:#185a9d;
}

body[data-page="dashboard"] .sidebar-toggle{
  width:28px;
  height:28px;
  min-width:28px;
  border-radius:8px;
  background:rgba(255,255,255,.08);
  color:#dbe8f6;
  border-color:rgba(255,255,255,.12);
}

body[data-page="dashboard"] .app-layout.sidebar-collapsed{
  grid-template-columns:52px minmax(0,1fr);
}

body[data-page="dashboard"] .workspace{
  max-width:1180px;
  padding:24px 28px 36px;
  gap:18px;
}

body[data-page="dashboard"] .app-layout.sidebar-collapsed .workspace{
  max-width:1180px;
}

body[data-page="dashboard"] .workspace-head{
  padding:2px 2px 0;
}

body[data-page="dashboard"] .workspace-head h1{
  font-size:24px;
  line-height:1.15;
  color:#0f1f33;
}

body[data-page="dashboard"] .workspace-head p{
  max-width:680px;
  font-size:13px;
  line-height:1.55;
}

body[data-page="dashboard"] .panel{
  border-color:rgba(203,213,225,.86);
  border-radius:8px;
  box-shadow:var(--shadow-soft);
}

body[data-page="dashboard"] .hero-panel{
  width:min(100%,980px);
  margin:0 auto;
  padding:0;
  overflow:hidden;
  background:rgba(255,255,255,.94);
}

.launch-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 230px;
  gap:18px;
  align-items:center;
  padding:22px 24px;
  border-bottom:1px solid #e7edf5;
  background:
    linear-gradient(135deg,rgba(237,246,255,.98),rgba(255,255,255,.92) 52%,rgba(239,250,245,.9));
}

.launch-hero .eyebrow{
  display:inline-flex;
  width:max-content;
  border:1px solid #c7d8eb;
  border-radius:999px;
  background:#fff;
  color:#185a9d;
  padding:4px 9px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.launch-hero h2{
  margin:12px 0 8px;
  font-size:28px;
  line-height:1.12;
  color:#0f1f33;
}

.launch-hero p{
  max-width:620px;
  margin:0;
  color:#53667d;
  font-size:14px;
  line-height:1.65;
}

.launch-hero-card{
  border:1px solid rgba(24,90,157,.18);
  border-radius:8px;
  background:rgba(255,255,255,.74);
  box-shadow:0 16px 34px rgba(24,90,157,.12);
  padding:12px;
  display:grid;
  gap:6px;
}

.launch-hero-card strong{
  color:#0f1f33;
  font-size:13px;
}

.launch-hero-card span{
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid #e2eaf4;
  border-radius:8px;
  background:#fff;
  color:#38536f;
  padding:7px 9px;
  font-size:12px;
  font-weight:850;
}

.launch-hero-card span:before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:#0b8f67;
  box-shadow:0 0 0 3px rgba(11,143,103,.1);
  flex:0 0 auto;
}

body[data-page="dashboard"] .dashboard-form{
  padding:16px 20px 18px;
  gap:14px;
}

body[data-page="dashboard"] .wizard-progress{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  padding:3px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#f7f9fc;
}

body[data-page="dashboard"] .wizard-progress span{
  min-height:36px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#697b90;
  justify-content:flex-start;
  padding:6px 9px;
  font-size:11px;
}

body[data-page="dashboard"] .wizard-progress strong{
  width:22px;
  height:22px;
  background:#e7eef6;
  color:#66798d;
}

body[data-page="dashboard"] .wizard-progress span.active{
  background:#fff;
  color:#185a9d;
  box-shadow:0 6px 15px rgba(24,90,157,.1);
}

body[data-page="dashboard"] .wizard-progress span.active strong{
  background:#185a9d;
  color:#fff;
}

body[data-page="dashboard"] .wizard-progress span.done{
  background:#f1fbf7;
  color:#0b8f67;
}

body[data-page="dashboard"] .wizard-progress span.done strong{
  background:#0b8f67;
  color:#fff;
}

body[data-page="dashboard"] .wizard-page{
  min-height:318px;
  padding:14px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
}

body[data-page="dashboard"] .wizard-page-head{
  gap:4px;
  margin-bottom:2px;
}

body[data-page="dashboard"] .wizard-page-head span{
  color:#0b8f67;
  font-size:11px;
  letter-spacing:.08em;
}

body[data-page="dashboard"] .wizard-page-head h3{
  font-size:18px;
  line-height:1.2;
}

body[data-page="dashboard"] .wizard-page-head p{
  max-width:660px;
  font-size:12px;
  line-height:1.45;
}

body[data-page="dashboard"] .form label,
body[data-page="dashboard"] .full-label{
  gap:7px;
  color:#56697f;
  font-size:12px;
  font-weight:800;
}

body[data-page="dashboard"] input,
body[data-page="dashboard"] select,
body[data-page="dashboard"] textarea{
  border-color:#d7e1ec;
  background:#fbfdff;
  color:#122033;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}

body[data-page="dashboard"] input:focus,
body[data-page="dashboard"] select:focus,
body[data-page="dashboard"] textarea:focus{
  outline:0;
  border-color:#84b7e7;
  background:#fff;
  box-shadow:0 0 0 3px rgba(24,90,157,.12);
}

body[data-page="dashboard"] .mode-cards,
body[data-page="dashboard"] .research-mode-cards{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

body[data-page="dashboard"] .research-mode-cards{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

body[data-page="dashboard"] .mode-card{
  min-height:96px;
  border-color:#dfe8f2;
  background:#fbfdff;
  box-shadow:0 5px 14px rgba(19,40,68,.035);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;
  padding:10px;
}

body[data-page="dashboard"] .mode-card:hover{
  transform:translateY(-1px);
  border-color:#b9d3ec;
  box-shadow:0 12px 24px rgba(19,40,68,.08);
}

body[data-page="dashboard"] .mode-card:has(input:checked){
  border-color:#8fc2ee;
  background:#f2f8ff;
}

body[data-page="dashboard"] .mode-card strong{
  color:#174b7f;
  font-size:13px;
}

body[data-page="dashboard"] .mode-card small{
  font-size:11px;
  line-height:1.4;
}

body[data-page="dashboard"] .insight-settings{
  border-color:#dfe8f2;
  background:#fbfdff;
  padding:10px;
  gap:10px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

body[data-page="dashboard"] .signal-options fieldset{
  background:#fff;
  border-color:#dfe8f2;
  padding:8px 10px;
  gap:8px;
}

body[data-page="dashboard"] .signal-options legend{
  font-size:11px;
}

body[data-page="dashboard"] .signal-options label{
  font-size:11px;
}

body[data-page="dashboard"] .signal-help{
  background:#f7fafc;
  border-color:#e3ebf4;
  padding:8px 10px;
}

body[data-page="dashboard"] .signal-help p{
  font-size:11px;
  line-height:1.4;
}

body[data-page="dashboard"] .wizard-actions{
  margin-top:0;
  padding-top:10px;
  border-top:1px solid #e7edf5;
}

body[data-page="dashboard"] .wizard-actions button,
body[data-page="dashboard"] .actions button,
body[data-page="dashboard"] .button{
  border-radius:8px;
  box-shadow:none;
}

body[data-page="dashboard"] .wizard-actions #runBtn{
  background:linear-gradient(135deg,#185a9d,#0b8f67);
  border-color:transparent;
}

body[data-page="dashboard"] .list-panel{
  width:min(100%,1040px);
  margin:0 auto;
  min-height:520px;
  padding:18px;
}

body[data-page="dashboard"] .panel-head{
  margin-bottom:14px;
}

body[data-page="dashboard"] .panel-head info-note,
body[data-page="dashboard"] .panel-head h2{
  font-size:15px;
}

body[data-page="dashboard"] .project-list,
body[data-page="dashboard"] .jobs,
body[data-page="dashboard"] .signal-library-layout .signal-history-list{
  grid-template-columns:repeat(auto-fill,minmax(252px,1fr));
  gap:12px;
}

body[data-page="dashboard"] .project-card,
body[data-page="dashboard"] .list-card,
body[data-page="dashboard"] .signal-library-layout .signal-history-item{
  width:100%;
  min-height:118px;
  border-color:#dfe8f2;
  box-shadow:0 5px 14px rgba(19,40,68,.035);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;
}

body[data-page="dashboard"] .project-card:hover,
body[data-page="dashboard"] .list-card:hover,
body[data-page="dashboard"] .signal-library-layout .signal-history-item:hover{
  transform:translateY(-1px);
  border-color:#b9d3ec;
  box-shadow:0 14px 28px rgba(19,40,68,.09);
}

body[data-page="dashboard"] .signal-search{
  padding:14px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fbfdff;
}

body[data-page="dashboard"] .signal-counts{
  grid-template-columns:repeat(auto-fit,minmax(128px,1fr));
}

body[data-page="dashboard"] .signal-filter-card{
  min-height:72px;
  border-color:#dfe8f2;
  box-shadow:0 5px 14px rgba(19,40,68,.035);
}

body[data-page="dashboard"] .tutorial-panel{
  width:min(100%,1040px);
  margin:0 auto;
}

body[data-page="dashboard"] .tutorial-quickstart article,
body[data-page="dashboard"] .tutorial-sections details,
body[data-page="dashboard"] .tutorial-grid div,
body[data-page="dashboard"] .tutorial-faq div{
  border-color:#dfe8f2;
  box-shadow:0 5px 14px rgba(19,40,68,.035);
}

.job-header-meta:before{
  content:"完成";
}

@media(max-width:980px){
  body[data-page="dashboard"] .app-layout{
    grid-template-columns:1fr;
  }

  body[data-page="dashboard"] .sidebar{
    position:static;
    height:auto;
    max-height:none;
    padding:10px;
  }

  body[data-page="dashboard"] .brand{
    padding:4px 4px 8px;
  }

  body[data-page="dashboard"] .side-nav{
    gap:8px;
  }

  body[data-page="dashboard"] .side-nav-group{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px;
  }

  body[data-page="dashboard"] .side-section-label{
    grid-column:1 / -1;
    padding:5px 6px 1px;
  }

  body[data-page="dashboard"] .side-nav a,
  body[data-page="dashboard"] .side-nav button{
    min-height:34px;
  }

  body[data-page="dashboard"] .workspace{
    padding:14px;
  }

  .launch-hero{
    grid-template-columns:1fr;
    padding:18px;
  }

  .launch-hero-card{
    max-width:420px;
  }

  body[data-page="dashboard"] .mode-cards,
  body[data-page="dashboard"] .research-mode-cards,
  body[data-page="dashboard"] .wizard-progress{
    grid-template-columns:1fr;
  }
}

@media(max-width:560px){
  body[data-page="dashboard"] .side-nav-group{
    grid-template-columns:1fr;
  }

  body[data-page="dashboard"] .hero-panel,
  body[data-page="dashboard"] .list-panel,
  body[data-page="dashboard"] .tutorial-panel{
    width:100%;
  }

  body[data-page="dashboard"] .dashboard-form{
    padding:12px;
  }

  body[data-page="dashboard"] .wizard-page{
    padding:12px;
  }

  .launch-hero h2{
    font-size:24px;
  }

  body[data-page="dashboard"] .project-list,
  body[data-page="dashboard"] .jobs,
  body[data-page="dashboard"] .signal-library-layout .signal-history-list{
    grid-template-columns:1fr;
  }
}

/* Workbench document pages refresh */
body[data-page="project"],
body[data-page="report"],
body[data-page="brief"],
body[data-page="product-select"],
body[data-page="generate"],
body[data-page="optimization"],
body[data-page="product-databases"],
body[data-page="job-detail"],
body[data-page="jobs"],
body[data-page="users"]{
  background:linear-gradient(180deg,#f9fbff 0%,#f4f7fb 48%,#eef4f7 100%);
}

body[data-page="project"] .app-layout,
body[data-page="report"] .app-layout,
body[data-page="brief"] .app-layout,
body[data-page="product-select"] .app-layout,
body[data-page="generate"] .app-layout,
body[data-page="optimization"] .app-layout,
body[data-page="product-databases"] .app-layout,
body[data-page="job-detail"] .app-layout,
body[data-page="jobs"] .app-layout,
body[data-page="users"] .app-layout{
  grid-template-columns:248px minmax(0,1fr);
  background:transparent;
}

body[data-page="project"] .sidebar,
body[data-page="report"] .sidebar,
body[data-page="brief"] .sidebar,
body[data-page="product-select"] .sidebar,
body[data-page="generate"] .sidebar,
body[data-page="optimization"] .sidebar,
body[data-page="product-databases"] .sidebar,
body[data-page="job-detail"] .sidebar,
body[data-page="jobs"] .sidebar,
body[data-page="users"] .sidebar{
  background:linear-gradient(180deg,#0f2238 0%,#132f47 48%,#101d31 100%);
  border-right:1px solid rgba(255,255,255,.08);
  padding:14px 12px;
  gap:12px;
}

body[data-page="project"] .doc-workspace,
body[data-page="report"] .doc-workspace,
body[data-page="brief"] .doc-workspace,
body[data-page="product-select"] .doc-workspace,
body[data-page="generate"] .doc-workspace,
body[data-page="optimization"] .doc-workspace,
body[data-page="product-databases"] .doc-workspace,
body[data-page="job-detail"] .doc-workspace,
body[data-page="jobs"] .workspace,
body[data-page="users"] .workspace{
  width:100%;
  max-width:1120px;
  padding:24px 28px 36px;
  gap:16px;
}

body[data-page="report"] .doc-workspace,
body[data-page="optimization"] .doc-workspace{
  max-width:1040px;
}

body[data-page="brief"] .doc-workspace{
  max-width:1160px;
}

body[data-page="project"] .workspace-head,
body[data-page="report"] .workspace-head,
body[data-page="brief"] .workspace-head,
body[data-page="product-select"] .workspace-head,
body[data-page="generate"] .workspace-head,
body[data-page="optimization"] .workspace-head,
body[data-page="product-databases"] .workspace-head,
body[data-page="job-detail"] .workspace-head,
body[data-page="jobs"] .workspace-head,
body[data-page="users"] .workspace-head{
  border:1px solid rgba(203,213,225,.86);
  border-radius:8px;
  background:rgba(255,255,255,.94);
  box-shadow:var(--shadow-soft);
  padding:20px 22px;
}

body[data-page="project"] .workspace-head h1,
body[data-page="report"] .workspace-head h1,
body[data-page="brief"] .workspace-head h1,
body[data-page="product-select"] .workspace-head h1,
body[data-page="generate"] .workspace-head h1,
body[data-page="optimization"] .workspace-head h1,
body[data-page="product-databases"] .workspace-head h1,
body[data-page="job-detail"] .workspace-head h1,
body[data-page="jobs"] .workspace-head h1,
body[data-page="users"] .workspace-head h1{
  max-width:860px;
  font-size:28px;
  line-height:1.12;
  color:#0f1f33;
}

body[data-page="project"] .workspace-head p,
body[data-page="report"] .workspace-head p,
body[data-page="brief"] .workspace-head p,
body[data-page="product-select"] .workspace-head p,
body[data-page="generate"] .workspace-head p,
body[data-page="optimization"] .workspace-head p,
body[data-page="product-databases"] .workspace-head p,
body[data-page="job-detail"] .workspace-head p,
body[data-page="jobs"] .workspace-head p,
body[data-page="users"] .workspace-head p{
  max-width:760px;
  font-size:13px;
  line-height:1.6;
}

body[data-page="project"] .panel,
body[data-page="report"] .panel,
body[data-page="brief"] .panel,
body[data-page="product-select"] .panel,
body[data-page="generate"] .panel,
body[data-page="optimization"] .panel,
body[data-page="product-databases"] .panel,
body[data-page="job-detail"] .panel,
body[data-page="jobs"] .panel,
body[data-page="users"] .panel{
  border-color:rgba(203,213,225,.86);
  border-radius:8px;
  box-shadow:var(--shadow-soft);
}

body[data-page="project"] .project-workbench{
  gap:14px;
}

body[data-page="project"] .project-overview{
  grid-template-columns:minmax(0,1fr);
  border:1px solid rgba(203,213,225,.86);
  border-radius:8px;
  background:rgba(255,255,255,.94);
  box-shadow:var(--shadow-soft);
  padding:18px;
}

body[data-page="project"] .project-overview h2{
  font-size:24px;
}

body[data-page="project"] .workbench-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

body[data-page="project"] .workbench-card{
  border-color:#dfe8f2;
  background:#fff;
  min-height:178px;
  box-shadow:0 5px 14px rgba(19,40,68,.035);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}

body[data-page="project"] .workbench-card:hover{
  transform:translateY(-1px);
  border-color:#b9d3ec;
  box-shadow:0 14px 28px rgba(19,40,68,.085);
}

body[data-page="project"] .workbench-card-head h3{
  color:#174b7f;
}

body[data-page="project"] .workbench-card-actions .button,
body[data-page="project"] .workbench-card-actions button{
  border-radius:8px;
  min-width:0;
}

body[data-page="report"] .toolbar-panel,
body[data-page="optimization"] .toolbar-panel{
  position:sticky;
  top:0;
  z-index:4;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
}

body[data-page="report"] .toolbar-panel .actions,
body[data-page="optimization"] .toolbar-panel .actions{
  width:auto;
}

body[data-page="report"] .toolbar-panel .actions .button,
body[data-page="report"] .toolbar-panel .actions button,
body[data-page="optimization"] .toolbar-panel .actions .button,
body[data-page="optimization"] .toolbar-panel .actions button{
  min-width:0;
  border-radius:8px;
}

body[data-page="report"] .unified-report,
body[data-page="optimization"] #optimizationContent,
body[data-page="product-databases"] .product-library-grid,
body[data-page="product-select"] .product-db-list{
  min-width:0;
}

body[data-page="report"] .doc-section,
body[data-page="optimization"] .doc-section{
  border-color:rgba(203,213,225,.86);
  box-shadow:var(--shadow-soft);
}

body[data-page="report"] .final-plan-hero{
  background:#fff;
}

body[data-page="brief"] .panel{
  padding:18px;
}

body[data-page="brief"] .section-head{
  border-bottom-color:#e6edf5;
}

body[data-page="brief"] .brief-editor{
  border-radius:8px;
  border-color:#d7e1ec;
  background:#fbfdff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}

body[data-page="brief"] .brief-angle-card,
body[data-page="product-select"] .product-db-card,
body[data-page="product-databases"] .product-library-card{
  border-color:#dfe8f2;
  background:#fff;
  box-shadow:0 5px 14px rgba(19,40,68,.035);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}

body[data-page="brief"] .brief-angle-card:hover,
body[data-page="product-select"] .product-db-card:hover,
body[data-page="product-databases"] .product-library-card:hover{
  transform:translateY(-1px);
  border-color:#b9d3ec;
  box-shadow:0 14px 28px rgba(19,40,68,.08);
}

body[data-page="generate"] .brief-generate-panel{
  max-width:1040px;
  margin:0 auto;
  padding:24px 28px;
  display:grid;
  gap:16px;
}

body[data-page="generate"] .generate-panel-head{
  display:grid;
  gap:8px;
  padding-bottom:4px;
}

body[data-page="generate"] .generate-panel-head h1{
  max-width:860px;
  margin:4px 0 0;
  color:#0f1f33;
  font-size:28px;
  line-height:1.12;
}

body[data-page="generate"] .generate-panel-head p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

body[data-page="generate"] .brief-generate-panel .actions{
  display:grid;
  grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) minmax(170px,1fr) auto;
  align-items:end;
  margin-top:2px;
}

body[data-page="generate"] .brief-generate-panel .actions select,
body[data-page="generate"] .brief-generate-panel .actions button{
  width:100%;
  min-width:0;
  border-radius:8px;
}

body[data-page="generate"] .mode-help{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

body[data-page="generate"] .mode-help div{
  border-radius:8px;
  border-color:#dfe8f2;
}

body[data-page="product-databases"] .product-library-form-panel{
  max-width:900px;
}

body[data-page="product-databases"] .field-hint{
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  font-weight:700;
}

body[data-page="product-databases"] .product-library-grid{
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
}

body[data-page="optimization"] .article-output{
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
  background:#fff;
}

@media(max-width:1100px){
  body[data-page="project"] .workbench-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:900px){
  body[data-page="project"] .app-layout,
  body[data-page="report"] .app-layout,
  body[data-page="brief"] .app-layout,
  body[data-page="product-select"] .app-layout,
  body[data-page="generate"] .app-layout,
  body[data-page="optimization"] .app-layout,
  body[data-page="product-databases"] .app-layout,
  body[data-page="job-detail"] .app-layout,
  body[data-page="jobs"] .app-layout,
  body[data-page="users"] .app-layout{
    grid-template-columns:1fr;
  }

  body[data-page="project"] .doc-workspace,
  body[data-page="report"] .doc-workspace,
  body[data-page="brief"] .doc-workspace,
  body[data-page="product-select"] .doc-workspace,
  body[data-page="generate"] .doc-workspace,
  body[data-page="optimization"] .doc-workspace,
  body[data-page="product-databases"] .doc-workspace,
  body[data-page="job-detail"] .doc-workspace,
  body[data-page="jobs"] .workspace,
  body[data-page="users"] .workspace{
    padding:14px;
  }

  body[data-page="project"] .workbench-grid,
  body[data-page="generate"] .brief-generate-panel .actions,
  body[data-page="generate"] .mode-help{
    grid-template-columns:1fr;
  }
}
