:root{
  color-scheme:light;
  --canvas:#f1ede5;
  --paper:#fcfaf5;
  --paper-strong:#fffefb;
  --ink:#262b29;
  --ink-soft:#4b514d;
  --muted:#7a7b73;
  --line:#d9d3c8;
  --line-soft:#e8e3da;
  --accent:#94533c;
  --accent-dark:#6e3e2e;
  --olive:#4f5b4e;
  --gold:#bd9a65;
  --warn:#8c6229;
  --danger:#9b4037;
  font-family:"Noto Sans SC","Microsoft YaHei UI","PingFang SC",Arial,sans-serif;
  color:var(--ink);
  background:var(--canvas);
  font-synthesis:none;
}
*{box-sizing:border-box}
body{margin:0;background:var(--canvas);color:var(--ink);font-size:14px;line-height:1.55}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #cba77c;outline-offset:2px}
.topbar{height:68px;background:#282e2b;color:#f4f0e8;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1440px)/2));}
.identity{display:flex;align-items:center;gap:11px}
.identity-mark{width:31px;height:31px;display:grid;place-items:center;border:1px solid #b89464;border-radius:50%;font-family:Georgia,serif;font-size:18px;color:#d4b384}
.identity div{display:flex;flex-direction:column;gap:1px}
.identity strong{font-size:14px;letter-spacing:.12em;font-weight:650}
.identity span:not(.identity-mark){font-size:10px;letter-spacing:.16em;color:#c6c2b7}
.topbar-actions{display:flex;align-items:center;gap:18px}
.prototype-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid #666b60;border-radius:20px;padding:5px 11px;color:#e4decf;font-size:11px}
.prototype-badge i{width:6px;height:6px;border-radius:50%;background:#d0ab70;display:block}
.quiet-button{border:0;background:transparent;color:#ded8cc;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.page{width:min(1440px,100%);margin:0 auto;padding:24px 34px 72px}
.safety-banner{display:flex;gap:12px;align-items:flex-start;padding:11px 15px;margin-bottom:24px;background:#f8f1e4;border:1px solid #e0ccb0;border-left:3px solid var(--gold);color:#5f503c}
.safety-mark{width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;border:1px solid #b99967;border-radius:50%;font-family:Georgia,serif;font-weight:700;font-size:12px}
.safety-banner strong{font-size:12px;letter-spacing:.04em}
.safety-banner p{margin:2px 0 0;font-size:12px;line-height:1.5;color:#71624e}
.page-intro{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:54px;align-items:end;padding:13px 4px 25px}
.eyebrow{margin:0 0 9px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.page-intro h1{margin:0;color:#252c29;font-size:clamp(30px,3.4vw,43px);font-weight:620;letter-spacing:-.045em;line-height:1.2}
.page-intro h1 em{font-family:Georgia,"Noto Serif SC",serif;color:var(--accent);font-weight:500;font-style:italic}
.intro-copy{max-width:690px;margin:13px 0 0;color:#666961;font-size:14px;line-height:1.75}
.date-control{border-left:1px solid #bdb5a8;padding:3px 0 4px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.field-kicker{font-size:10px;letter-spacing:.11em;color:var(--muted);text-transform:uppercase}
.date-control strong{font-size:25px;font-weight:580;letter-spacing:.04em;font-variant-numeric:tabular-nums;color:#272d2a}
.date-caption{font-size:11px;color:var(--muted)}
.date-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.button-primary,.button-secondary{min-height:36px;padding:8px 13px;border-radius:3px;font-size:12px;font-weight:650;letter-spacing:.015em;white-space:nowrap}
.button-primary{border:1px solid var(--accent-dark);background:var(--accent);color:#fffaf2}
.button-primary:hover{background:var(--accent-dark)}
.button-secondary{border:1px solid #c7bfb2;background:#faf8f2;color:#424940}
.button-secondary:hover{background:#f0ebe2}
.journey{display:flex;align-items:center;gap:13px;padding:13px 17px;margin:0 0 15px;background:#e9e4db;border-top:1px solid #d6cfc3;border-bottom:1px solid #d6cfc3}
.journey-step{display:flex;align-items:center;gap:9px;min-width:125px}
.journey-step>span{font:italic 15px Georgia,serif;color:var(--accent)}
.journey-step strong{display:block;font-size:12px;font-weight:700;color:#343a35}
.journey-step small{display:block;font-size:10px;color:#77766d}
.journey-step.current strong{color:var(--accent-dark)}
.journey-rule{height:1px;flex:1;background:#c9c1b5;position:relative}
.journey-rule:after{content:"";position:absolute;right:0;top:-2px;width:4px;height:4px;border-top:1px solid #b6aa9a;border-right:1px solid #b6aa9a;transform:rotate(45deg)}
.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);margin-bottom:24px}
.summary-strip div{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-right:1px solid var(--line)}
.summary-strip div:first-child{padding-left:4px}
.summary-strip div:last-child{border-right:0}
.summary-strip span{font-size:11px;color:var(--muted)}
.summary-strip strong{font-size:17px;font-variant-numeric:tabular-nums;font-weight:650;color:#3b413d}
.view-tabs{display:flex;gap:25px;border-bottom:1px solid #cfc8bc;margin-bottom:22px}
.view-tab{display:flex;gap:8px;align-items:center;padding:11px 2px 12px;border:0;border-bottom:2px solid transparent;background:transparent;color:#77766e;font-size:13px;font-weight:650}
.view-tab:hover{color:var(--ink)}
.view-tab.active{color:var(--ink);border-bottom-color:var(--accent)}
.view-tab span{border:1px solid #d5cec1;border-radius:12px;padding:1px 6px;font-size:9px;color:#777268;font-weight:500}
.view-panel.hidden,.hidden{display:none!important}
.section-title{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 16px}
.section-title h2{margin:0 0 4px;color:#2d332f;font-size:22px;font-weight:650;letter-spacing:-.025em}
.section-title p:not(.eyebrow){margin:0;color:#77766e;font-size:12px;line-height:1.55}
.flow-grid{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(0,1.5fr);gap:14px;margin-bottom:14px}
.surface{background:var(--paper);border:1px solid var(--line);border-radius:2px}
.event-surface,.decision-surface,.opportunity-surface,.rule-editor,.evidence-surface{padding:0 17px 16px}
.surface-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0 12px;border-bottom:1px solid var(--line-soft)}
.surface-heading>div{display:flex;align-items:center;gap:10px}
.surface-heading h3{margin:0;font-size:14px;font-weight:650;color:#333a35}
.surface-heading p{margin:3px 0 0;font-size:11px;color:#818077}
.section-index{display:grid;place-items:center;width:23px;height:23px;border:1px solid #c7bcb0;border-radius:50%;font:italic 12px Georgia,serif;color:var(--accent)}
.surface-count,.source-badge{font-size:10px;color:#706f67;white-space:nowrap}
.source-badge{border:1px solid #d6c6ad;border-radius:2px;padding:4px 7px;background:#f6f0e6;color:#775c39}
.event-list{display:grid;gap:4px;padding-top:7px;max-height:475px;overflow:auto}
.event-card{display:block;width:100%;text-align:left;border:1px solid transparent;border-bottom-color:#e9e4dc;background:transparent;padding:11px 9px;color:inherit}
.event-card:hover{background:#f6f2ea}
.event-card.selected{border-color:#d5c4ad;background:#f5eee4}
.event-card-top{display:flex;justify-content:space-between;gap:12px;align-items:start}
.event-card strong{font-size:12px;color:#343a35}
.event-card time,.event-card small{font-size:10px;color:#858178}
.event-card p{margin:5px 0 0;color:#62645d;font-size:11px;line-height:1.5}
.event-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.tag{display:inline-flex;align-items:center;border:1px solid #ded6ca;padding:2px 6px;color:#77736a;font-size:9px;line-height:1.45;background:#fbf9f4}
.tag.synthetic{border-color:#d2c0a4;color:#745b38;background:#f5eee1}
.tag.pending{border-color:#e2c999;color:#875f22;background:#fff5df}
.tag.ready{border-color:#b8c4b5;color:#465947;background:#edf1e9}
.tag.sent{border-color:#caa98a;color:#874f34;background:#f5ebe2}
.match-results{display:grid;gap:7px;padding-top:11px}
.match-card{border-left:2px solid #c9c2b8;background:#f7f4ee;padding:9px 11px}
.match-card.ready{border-left-color:var(--olive)}
.match-card.pending{border-left-color:#bd9252}
.match-card.future{border-left-color:#798394}
.match-card.blocked{border-left-color:#a95848}
.match-top{display:flex;justify-content:space-between;align-items:start;gap:10px}
.match-top strong{font-size:12px;color:#333a35}
.match-card p{margin:6px 0 0;color:#6e6e66;font-size:12px;line-height:1.55}
.match-meta{margin-top:6px;color:#858178;font-size:10px;line-height:1.5}
.status-pill{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:3px 7px;background:#efebe3;color:#68665e;font-size:9px;white-space:nowrap}
.status-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.status-pill.hit{background:#e8eee6;color:#4e644f}
.status-pill.wait{background:#fbf1dd;color:#8b632d}
.status-pill.future{background:#ebedf0;color:#657181}
.status-pill.no{background:#f3e9e6;color:#955346}

.decision-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft)}
.sim-note{margin:8px 0 0;color:#8a867d;font-size:10px;line-height:1.45}
.opportunity-surface{margin-top:14px}
.opportunity-list{display:grid;gap:8px;padding-top:10px}
.opportunity-card{border-top:1px solid #e6e0d6;padding:12px 2px 7px}
.opp-header{display:flex;align-items:start;justify-content:space-between;gap:12px}
.opp-header h4{margin:0;font-size:13px;color:#343b36}
.opp-header p{margin:4px 0 0;color:#73736b;font-size:10px}
.opp-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.opp-actions button{font-size:10px;min-height:29px;padding:5px 9px}
.timeline{margin:9px 0 0;padding:0 0 0 13px;border-left:1px solid #d4c9b8;list-style:none}
.timeline li{padding:0 0 7px 8px;color:#6e6d65;font-size:10px;line-height:1.5}
.timeline li:last-child{padding-bottom:0}
.no-content{padding:18px 7px;color:#89867d;font-size:11px}
.matrix-title{align-items:center}
.matrix-count-block{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.matrix-count-block strong{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums;color:#424940}
.matrix-count-block span{font-size:10px;color:#858178}
.source-reconcile{margin:0 0 12px;padding:10px 12px;border-left:2px solid #9d7a50;background:#ece5d9;color:#635642;font-size:11px;line-height:1.55}
.source-reconcile strong{color:#4c4131}
.axis-summary{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}
.axis-summary span{padding:4px 8px;border:1px solid #d6cbbc;background:#f5f1e9;color:#625c50;font-size:10px}
.axis-summary strong{margin-right:3px;font-size:12px;font-variant-numeric:tabular-nums}
.matrix-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:end;padding:11px;background:#e8e3da;border:1px solid #d8d1c6}
.matrix-toolbar label{display:flex;flex-direction:column;gap:4px;min-width:0}
.matrix-toolbar label>span{font-size:9px;color:#726e65}
.matrix-toolbar input,.matrix-toolbar select{width:100%;height:33px;border:1px solid #cfc7ba;border-radius:2px;background:#fbf9f4;padding:5px 8px;color:#333a35;font-size:11px}
.zoom-control input{padding:0}
.zoom-control span{display:flex;justify-content:space-between}
.zoom-control b{font-variant-numeric:tabular-nums;color:var(--accent-dark)}
.matrix-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 2px;color:#77736b;font-size:10px}
.matrix-legend>span:last-child{margin-left:auto}
.matrix-scroll-hint{margin:0 0 8px;padding:7px 10px;border-left:2px solid var(--accent);background:#f0ede6;color:#555b53;font-size:11px;line-height:1.45}
.legend-dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#a9a195;vertical-align:1px}
.legend-dot.suggested{background:var(--accent)}
.legend-dot.example{background:#536f8d}

.legend-dot.pending{background:#bd9252}
.legend-dot.variant{background:#707b68}
.legend-empty{display:inline-block;margin-right:4px;color:#a39c90;font-style:normal}
.matrix-reset{min-height:33px;padding:5px 8px;font-size:10px}
.unmapped-panel{margin:9px 0 0;border:1px solid #d9d2c6;background:#f6f3ed;color:#625f57}
.unmapped-panel summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;font-size:10px}
.unmapped-panel summary strong{color:#5b4c3b;font-size:11px}
.unmapped-panel summary strong span{font-variant-numeric:tabular-nums}
.unmapped-note{margin:0;padding:0 12px 11px;color:#6e6a61;font-size:11px;line-height:1.55}
.matrix-frame{height:590px;overflow:auto;border:1px solid #cfc8bc;background:#fbfaf6;overscroll-behavior:contain}
.matrix-table{--matrix-zoom:1;--matrix-row-pad:7px;width:max-content;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:calc(10px * var(--matrix-zoom));}
.matrix-table.comfortable{--matrix-row-pad:12px}
.matrix-table th,.matrix-table td{width:calc(108px * var(--matrix-zoom));min-width:calc(108px * var(--matrix-zoom));max-width:calc(108px * var(--matrix-zoom));border-right:1px solid #e5e0d7;border-bottom:1px solid #e5e0d7;padding:var(--matrix-row-pad) 6px;vertical-align:top}
.matrix-table thead th{position:sticky;top:0;z-index:3;height:62px;background:#e9e4db;text-align:left;color:#414740;font-weight:650}
.matrix-table .corner-header{left:0;z-index:5;width:270px;min-width:270px;max-width:270px;background:#343a36;color:#f4efe6}
.matrix-table .row-head{position:sticky;left:0;z-index:2;width:270px;min-width:270px;max-width:270px;background:#f2eee6;color:#393e39}
.matrix-table .business-line{display:block;color:#89765c;font-size:calc(9px * var(--matrix-zoom));font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.matrix-table .business-name{display:block;margin-top:2px;font-size:calc(11px * var(--matrix-zoom));line-height:1.4;overflow-wrap:anywhere}
.axis-state-pill{display:inline-block;margin-top:4px;padding:1px 4px;background:#e8dfcd;color:#715c3f;font-size:8px;line-height:1.35}
.matrix-table td{height:34px;text-align:center}
.matrix-cell{display:flex;width:100%;min-height:19px;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;color:#a69e91;padding:0;font-size:calc(9px * var(--matrix-zoom));text-align:center}
.matrix-cell:hover{background:#f0ece4;color:#4a504b}
.matrix-cell .matrix-mark{width:6px;height:6px;border-radius:50%;background:#b5aea2;flex:0 0 6px}

.matrix-cell.has-proposal .matrix-mark{background:var(--accent)}
.matrix-cell.example .matrix-mark{background:#536f8d}
.matrix-cell.pending .matrix-mark{background:#c09451}
.matrix-cell.variant-axis .matrix-mark{background:#77826c}
.matrix-cell.self-axis .matrix-mark{background:#867767}
.matrix-cell .matrix-cell-count{font-size:calc(8px * var(--matrix-zoom));color:#74746c}
.matrix-cell.filtered-out{opacity:.2}
.matrix-cell.selected{outline:2px solid var(--accent);outline-offset:-2px;background:#f3e9df}
.rule-editor{margin-top:14px;padding-bottom:16px}
.provenance-empty{padding:13px 0 2px;color:#79776e;font-size:11px;line-height:1.55}
.provenance-content{padding:12px 0 3px}
.prov-path{font-size:11px;color:#444a44;font-weight:650}
.prov-state{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}

.rule-form{padding-top:9px}
.rule-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rule-form label,.dialog-form label{display:flex;flex-direction:column;gap:5px;color:#65665e;font-size:10px;font-weight:650}
.rule-form label.wide{grid-column:1/-1}
.rule-form input,.rule-form textarea,.rule-form select,.dialog-form input,.dialog-form select,.dialog-form textarea{width:100%;border:1px solid #d1c9bd;border-radius:2px;background:#fffdf9;color:#353b36;padding:8px 9px;font-size:11px;line-height:1.5}
.rule-form textarea,.dialog-form textarea{resize:vertical}
.rule-form .checkbox-field{display:flex;flex-direction:row;align-items:center;gap:8px}
.checkbox-field input{width:auto}
.rule-form-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}
.rule-form-actions button{min-height:31px;padding:6px 10px;font-size:10px}
.footnote{margin:9px 2px 0;color:#8a867d;font-size:10px;line-height:1.5}
.scan-summary{margin:0 0 12px;padding:11px 13px;border-left:2px solid var(--olive);background:#e8e8df;color:#50574e;font-size:11px}
.outcome-list{display:grid;gap:9px;margin-bottom:13px}
.outcome-card{background:var(--paper);border:1px solid var(--line);padding:12px 15px}
.outcome-card h4{margin:0;font-size:13px;color:#353c36}
.outcome-card p{margin:4px 0;color:#727169;font-size:11px}
.landing-ledger{padding-top:10px}
.ledger-row{display:grid;grid-template-columns:130px 1fr 1fr 150px;gap:10px;border-top:1px solid #e5dfd5;padding:9px 0;color:#6b6b63;font-size:10px}
.ledger-row strong{color:#444b44;font-weight:650}
dialog{width:min(620px,calc(100% - 26px));max-height:min(90vh,800px);overflow:auto;border:1px solid #cfc5b7;border-radius:3px;background:var(--paper);color:var(--ink);padding:0;box-shadow:0 24px 80px #27241f44}
dialog::backdrop{background:#252b28a8}
.dialog-form{padding:22px}
.dialog-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:9px}
.dialog-head h2{margin:0;font-size:19px;color:#303732}
.dialog-head p:not(.eyebrow){margin:4px 0 0;color:#7b786f;font-size:11px}
.dialog-close{border:0;background:transparent;color:#79756c;font-size:25px;line-height:1}
.dialog-form>label{margin-top:12px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.dialog-form fieldset{margin:14px 0 0;padding:8px 10px 11px;border:1px solid #ddd5c9}
.dialog-form legend{padding:0 5px;color:#777166;font-size:10px;font-weight:650}
.dialog-form fieldset .form-row{margin-top:5px}
.dialog-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:16px}
.form-error{min-height:15px;margin:7px 0 0;color:var(--danger);font-size:10px}
@media(max-width:1100px){
  .page{padding-left:24px;padding-right:24px}
  .page-intro{grid-template-columns:minmax(0,1fr) 330px;gap:30px}
  .matrix-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .flow-grid{grid-template-columns:minmax(270px,.8fr) minmax(0,1.3fr)}
}
@media(max-width:760px){
  .topbar{padding:0 15px}
  .prototype-badge{display:none}
  .page{padding:16px 14px 48px}
  .page-intro{grid-template-columns:1fr;gap:18px}
  .date-control{border-left:0;border-top:1px solid #bdb5a8;padding:12px 0 0}
  .journey{gap:7px;padding:11px 8px}
  .journey-step{min-width:0;gap:5px}
  .journey-step small{display:none}
  .journey-rule{min-width:9px}
  .summary-strip{grid-template-columns:1fr 1fr}
  .summary-strip div:nth-child(2){border-right:0}
  .summary-strip div:nth-child(3),.summary-strip div:nth-child(4){border-top:1px solid var(--line)}
  .view-tabs{gap:14px;overflow-x:auto}
  .view-tab{white-space:nowrap;font-size:11px}
  .section-title{align-items:flex-start;flex-direction:column}
  .flow-grid{grid-template-columns:1fr}
  .matrix-toolbar{grid-template-columns:1fr 1fr}
  .matrix-frame{height:490px}
  .ledger-row{grid-template-columns:90px 1fr}
  .ledger-row span:nth-child(3),.ledger-row span:nth-child(4){display:none}
  .rule-form-grid,.form-row{grid-template-columns:1fr}
  .rule-form label.wide{grid-column:auto}
}

@media(max-width:760px){.source-reconcile-heading{align-items:flex-start;flex-direction:column}.source-reconcile-grid{grid-template-columns:1fr 1fr}}

/* 合成批量操作及辅助说明 */
.batch-action{border:1px solid #ded6ca;background:#f8f6f1;padding:12px;margin:10px 0 14px}.batch-action .sim-note{margin:0 0 9px}.batch-action button{min-height:36px}.batch-action p[aria-live]{color:#454c46;font-size:13px;line-height:1.55;margin:8px 0 0}.sim-note,.surface-heading p,.event-card p,.match-meta,.timeline li{font-size:13px;line-height:1.55;color:#5a6059}.event-card time,.event-card small{font-size:12px;color:#60645e}.match-card p{font-size:13px}

/* 按实际矩阵内容收缩，小矩阵不留固定空白；大矩阵仍在框内滚动。 */
.matrix-frame{height:auto;max-height:590px}
.matrix-toolbar label>span,.matrix-legend,.matrix-scroll-hint,.unmapped-panel summary,.unmapped-note,.source-reconcile,.axis-summary span{font-size:12px;line-height:1.55;color:#555b53}
.matrix-toolbar input,.matrix-toolbar select{font-size:13px;min-height:36px}
.matrix-table{font-size:calc(12px * var(--matrix-zoom))}
.matrix-reset{font-size:12px;min-height:36px}

/* 矩阵辅助信息保留层级并提高可读性。 */
.matrix-table .business-line{font-size:calc(12px * var(--matrix-zoom));color:#665b49}.matrix-table .business-name{font-size:calc(13px * var(--matrix-zoom))}.axis-state-pill{font-size:11px}.matrix-cell .matrix-cell-count{font-size:calc(11px * var(--matrix-zoom));color:#565b55}.unmapped-panel summary strong,.provenance-empty,.prov-path{font-size:12px}.rule-form label{font-size:12px}.rule-form input,.rule-form textarea,.rule-form select{font-size:13px}
