:root{--blue:#2563d9;--ink:#173b73;--line:#dbe7f6;--bg:#f2f7ff;--o:#183f7b;--s:#6559c9;--m:#159978;--a:#dd8c19;--danger:#dc4b5b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#1e365c;font:14px/1.45 Inter,"PingFang SC","Microsoft YaHei",sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{max-width:1680px;margin:auto;padding:18px 26px 32px}.page-title-bar{display:flex;align-items:center;justify-content:center;min-height:76px;margin-bottom:12px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 20px #3469a511}.page-title-bar h1{margin:0;color:var(--blue);font-size:30px;font-weight:900;letter-spacing:4px}.toolbar-bar{display:flex;gap:15px;align-items:center;flex-wrap:wrap;padding:15px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 20px #3469a511}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:800;color:var(--ink)}.mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--blue);font-size:13px}.controls{margin-left:auto;display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.control,select{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px;color:#34547f}.btn{border:1px solid var(--line);border-radius:8px;background:#fff;color:#31598d;padding:8px 11px;font-weight:650}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.danger,.delete-btn{color:var(--danger)}.btn.mini{font-size:12px;padding:5px 7px}.status{font-size:12px;color:var(--m);min-width:52px}.objective{margin-top:13px;display:grid;grid-template-columns:80px 1fr;gap:14px;padding:17px;background:#fff;border:1px solid #cbdcf4;border-left:6px solid var(--o)}.stage{font-weight:800;color:#5e7da7;font-size:12px;letter-spacing:1px}.o-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--o);color:#fff;font-size:25px;font-weight:900}.objective h1{margin:4px 0;font-size:25px;color:var(--ink)}.editable{border:1px solid transparent;border-radius:5px;padding:2px 4px;min-height:1.45em;outline:none}.editable:hover,.editable:focus{border-color:#a9c8fa;background:#f8fbff}.editable[contenteditable=true]:empty:before{content:attr(data-placeholder);color:#9ab0ca}.inherit{display:inline-block;padding:2px 7px;margin-left:7px;border-radius:99px;background:#e7f0ff;color:#4773b3;font-size:11px;font-weight:600}.crumbs{margin:12px 0;padding:10px 14px;background:#fff;border-left:5px solid var(--blue);border:1px solid var(--line);color:#5e7da7}.crumbs button{background:none;border:0;color:#2d67bd;font-weight:700;padding:0 5px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:13px}.panel{background:#fff;border:1px solid var(--line);padding:14px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.panel-heading h2{margin:0;color:var(--ink);font-size:22px}.section-tag{font-size:12px;font-weight:800;letter-spacing:1px}.g-tag{color:var(--blue)}.s-tag{color:var(--s)}.m-tag{color:var(--m)}.a-tag{color:var(--a)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:340px;overflow:auto}.card{border:1px solid #dfebfb;border-radius:10px;padding:12px 12px 32px;min-height:138px;position:relative;background:#fbfdff}.card.selected{border:2px solid var(--blue);box-shadow:0 3px 12px #2970d529}.card.s.selected{border-color:var(--s)}.card.m{min-height:180px}.card.m.selected{border-color:var(--m)}.strategy-cards .card{min-height:164px}.card-top{display:flex;gap:9px;align-items:start}.number{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:900;background:#e8f1ff;color:var(--blue)}.s .number{background:#efedff;color:var(--s)}.m .number{background:#e3f8f2;color:var(--m)}.card-title{font-size:16px;color:var(--ink);font-weight:800;flex:1}.card-actions{position:absolute;right:7px;bottom:6px}.iconbtn{background:transparent;border:0;color:#7d93af;padding:3px 5px}.metric-row{display:flex;justify-content:space-between;margin-top:12px;font-size:12px;color:#7590b2}.metric-row b{font-size:19px;color:var(--blue)}.m .metric-row b{color:var(--m)}.progress{height:6px;background:#e6effa;border-radius:5px;overflow:hidden;margin-top:10px}.progress i{display:block;height:100%;background:var(--blue);border-radius:5px}.m .progress i{background:var(--m)}.pill{display:inline-flex;gap:4px;align-items:center;border-radius:99px;padding:4px 7px;font-size:11px;font-weight:700}.green{background:#e7f8ef;color:#15985e}.yellow{background:#fff5d9;color:#b67810}.red{background:#fff0f1;color:#d84854}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.meta{font-size:12px;color:#6e86a8;margin-top:8px}.measure-count{margin-top:9px}.metric-summary{margin-top:9px;color:var(--m);font-size:12px;font-weight:750}.metric-summary span{color:#7c93af;font-weight:500}.unit-edit{display:inline-block;min-width:30px;color:#547599;font-weight:600}.unit-edit:empty:before{content:attr(data-placeholder);font-size:11px}.assignee-line{display:flex;align-items:flex-start;gap:4px;font-size:12px;color:#6e86a8;margin-top:7px}.assignee-line>b{white-space:nowrap}.multi-select{position:relative;min-width:0;flex:1}.multi-value{display:flex;flex-wrap:wrap;gap:3px;min-height:26px;padding:3px 6px;border:1px solid #cfddf0;border-radius:6px;background:#fff;cursor:pointer}.multi-select.open .multi-value{border-color:#719cf1;box-shadow:0 0 0 2px #dce9ff}.tag{display:inline-flex;gap:3px;align-items:center;padding:2px 6px;border-radius:99px;background:#e9f1ff;color:#3966a8;white-space:nowrap}.tag button{border:0;background:transparent;color:#527db9;padding:0;line-height:1}.placeholder{color:#91a5bf}.multi-menu{display:none;position:absolute;z-index:10;left:0;right:0;top:calc(100% + 4px);padding:8px;background:#fff;border:1px solid #bcd1ee;border-radius:7px;box-shadow:0 8px 22px #244c7b26}.multi-select.open .multi-menu{display:block}.multi-search{width:100%;padding:5px 7px;border:1px solid #d5e1f0;border-radius:5px}.multi-options{max-height:145px;overflow:auto;margin-top:6px}.multi-options label{display:block;padding:4px 2px;color:#365474}.multi-options p{margin:6px 0;color:#8aa0ba}.card[draggable]{cursor:grab}.card[draggable]:active{cursor:grabbing}.card.dragging{opacity:.45;box-shadow:0 12px 26px #285b9c3d}.card.drag-over{outline:2px dashed var(--blue);outline-offset:3px;background:#f3f8ff}.measure-panel,.actions{margin-top:13px}.measure-cards{grid-template-columns:repeat(3,minmax(0,1fr));max-height:300px}.table-wrap{overflow-x:auto}.action-table{width:100%;border-collapse:collapse;min-width:1020px;table-layout:fixed}.action-table th{position:relative;background:#fff5e5;color:#a86c13;text-align:left;padding:10px;border-bottom:1px solid #f3dfbd;white-space:nowrap}.action-table td{padding:8px 10px;border-bottom:1px solid #edf2f8;vertical-align:top;overflow:hidden;word-break:break-word}.action-table tr:hover>td{background:#fbfdff}.col-resizer{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:3}.col-resizer:after{content:"";position:absolute;top:24%;bottom:24%;left:3px;width:2px;border-radius:2px;background:#c0d0e5}.col-resizer:hover:after{background:var(--blue)}.subrow td{background:#f7faff;padding:0 16px 9px 48px}.subtable{width:100%;border-collapse:collapse}.subtable td{padding:7px;border-bottom:1px dashed #dde8f7}.cell-input{width:100%;min-width:0;border:1px solid transparent;border-radius:4px;background:transparent;padding:5px;outline:none;color:#29486f}.cell-input:hover,.cell-input:focus{border-color:#a9c8fa;background:#fff}.overdue{color:var(--danger);font-weight:700}.add-row{color:var(--blue);font-weight:700;background:none;border:0;padding:8px}.empty{padding:30px;text-align:center;color:#89a0bc}@media(max-width:1050px){.two-col{grid-template-columns:1fr}.measure-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.shell{padding:10px}.page-title-bar{min-height:62px;margin-bottom:9px}.page-title-bar h1{font-size:24px}.toolbar-bar .controls{margin-left:0}.cards,.measure-cards{grid-template-columns:1fr}.objective{grid-template-columns:58px 1fr}}
/* G / M 统一阅读顺序：当前 → 目标 → 差值。M 原始字段顺序不变，仅调整展示位置。 */
.card.m .metric-row>span:nth-child(1){order:2}
.card.m .metric-row>span:nth-child(2){order:1}
.card.m .metric-row>span:nth-child(3){order:3}
