*{box-sizing:border-box}body{color:#1c1e24;background:#f4f6fa;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:#2f6fed;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1600px;margin:0 auto;padding:20px 24px 60px}header{align-items:baseline;gap:16px;margin-bottom:16px;display:flex}header h1{margin:0;font-size:20px}header .sub{color:#6b7180;font-size:13px}.banner{color:#6b5210;background:#fff3cd;border:1px solid #f5d992;border-radius:6px;margin-bottom:16px;padding:10px 14px;font-size:13px}.banner.err{color:#a12525;background:#fde7e7;border-color:#f2b8b8}.card{background:#fff;border-radius:8px;margin-bottom:16px;padding:16px;box-shadow:0 1px 2px #0000000a}.card h2{text-transform:uppercase;letter-spacing:.04em;color:#4a4f5c;margin:0 0 12px;font-size:14px}.small{color:#6b7180;font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.right{text-align:right}.k{color:#6b7180}.kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.kpi{background:#fff;border-left:3px solid #0000;border-radius:8px;padding:14px 16px;position:relative;box-shadow:0 1px 2px #0000000a}.kpi.amber{border-left-color:#ffb020}.kpi.red{border-left-color:#d94c4c}.kpi-clickable{cursor:pointer;transition:transform 80ms,box-shadow 80ms}.kpi-clickable:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000017}.review-tabs{flex-wrap:wrap;gap:4px;margin-bottom:14px;display:flex}.top-nav{gap:12px;margin-left:auto;font-size:13px;display:flex}.top-nav a{color:#4a4f5c;border-radius:4px;padding:2px 6px}.top-nav a:hover{background:#eef0f4;text-decoration:none}.refresh-row{align-items:center;gap:8px;display:inline-flex}.refresh-row .btn-small{align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid #c8ccd6;border-top-color:#4a4f5c;border-radius:50%;flex-shrink:0;width:11px;height:11px;animation:.7s linear infinite spin}.kpi-value{color:#1c1e24;font-size:22px;font-weight:600}.kpi-label{color:#6b7180;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:4px;margin-top:2px;font-size:11px;display:inline-flex}.help-chip{align-items:center;display:inline-flex;position:relative}.help-chip-btn{color:#6b7180;cursor:pointer;text-transform:none;letter-spacing:0;background:#fff;border:1px solid #c9cfd8;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;padding:0;font-size:9px;font-weight:700;line-height:1;display:inline-flex}.help-chip-btn:hover{color:#1c1e24;border-color:#7b8291}.help-chip-btn.open{color:#fff;background:#1c1e24;border-color:#1c1e24}.help-chip-popover{z-index:30;color:#1c1e24;text-transform:none;letter-spacing:0;background:#fff;border:1px solid #c9cfd8;border-radius:8px;width:300px;padding:12px 14px;font-size:12px;font-weight:400;line-height:1.5;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 6px 18px #0000001f}.help-chip-title{margin-bottom:4px;font-size:13px;font-weight:700}.help-chip-text{color:#3a3f4a}.attention-card{border-left:3px solid #d94c4c}.attention-list{margin:0;padding:0;list-style:none}.attention-row{border-bottom:1px solid #eef0f4;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.attention-row:last-child{border-bottom:none}.attention-dot{background:#ffb020;border-radius:50%;flex-shrink:0;width:8px;height:8px}.attention-row.severity-red .attention-dot{background:#d94c4c}.attention-code{min-width:80px;font-family:ui-monospace,monospace;font-size:12px}.attention-message{color:#4a4f5c;flex:1}.attention-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.attention-resolve-btn{flex-shrink:0;margin-left:auto}.attention-list-resolved .attention-row{opacity:.65}.attention-row.severity-resolved .attention-dot{background:#15642a}.btn-linky{color:#2f6fed;cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.btn-linky:hover{color:#1f4fbc}.btn-linky:disabled{opacity:.5;cursor:default;text-decoration:none}.committed-panel{margin-bottom:14px;padding:16px 18px}.committed-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.committed-label{letter-spacing:.08em;color:#4a4f5c;font-size:11px;font-weight:700}.committed-body{grid-template-columns:minmax(180px,260px) 1fr;align-items:start;gap:24px;display:grid}.committed-total-value{margin-bottom:4px;font-size:32px;font-weight:600;line-height:1.1}.committed-bar{background:#eef0f4;border-radius:3px;height:6px;margin-bottom:12px;display:flex;overflow:hidden}.committed-bar-seg{height:100%;display:block}.committed-bar-executed{background:#15a34a}.committed-bar-routing{background:#7c74e6}.committed-legend{grid-template-columns:1fr 1fr;gap:12px;display:grid}.committed-legend-tile{background:#f7f8fa;border-radius:6px;padding:10px 12px}.committed-legend-header{align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.committed-legend-value{font-size:20px;font-weight:600}.committed-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.committed-dot-executed{background:#15a34a}.committed-dot-routing{background:#7c74e6}.kanban{grid-template-columns:repeat(7,minmax(160px,1fr));align-items:start;gap:10px;display:grid;overflow-x:auto}.kanban-col{background:#ecf0f5;border-radius:8px;min-height:300px;padding:8px}.kanban-col-header{justify-content:space-between;align-items:center;gap:6px;padding:4px 6px 10px;display:flex;position:relative}.stage-help-btn{color:#4a4f5c;cursor:pointer;background:#fff;border:1px solid #c9cfd8;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-right:auto;padding:0;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.stage-help-btn:hover{color:#1c1e24;border-color:#7b8291}.stage-help-btn.open{color:#fff;background:#1c1e24;border-color:#1c1e24}.stage-help-popover{z-index:20;color:#1c1e24;text-transform:none;letter-spacing:0;background:#fff;border:1px solid #c9cfd8;border-radius:8px;width:280px;padding:12px 14px;font-weight:400;position:absolute;top:100%;left:0;box-shadow:0 6px 18px #0000001f}.stage-help-title{margin-bottom:4px;font-size:13px;font-weight:700}.stage-help-summary{color:#3a3f4a;font-size:12px;line-height:1.45}.stage-help-criteria-label{color:#4a4f5c;margin-top:10px;margin-bottom:4px;font-size:11px;font-weight:600}.stage-help-criteria{color:#3a3f4a;margin:0;padding-left:18px;font-size:12px;line-height:1.5}.stage-help-criteria li{margin-bottom:2px}.envelope-block{border-top:1px solid #eef0f4;padding:10px 0}.envelope-block:first-of-type{border-top:0;padding-top:0}.envelope-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.signers-table{border-collapse:collapse;width:100%;font-size:13px}.signers-table th,.signers-table td{text-align:left;border-bottom:1px solid #f2f4f7;padding:4px 8px}.signers-table th{color:#4a4f5c;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.stage-label{text-transform:uppercase;letter-spacing:.06em;color:#4a4f5c;font-size:11px;font-weight:600}.stage-count{color:#4a4f5c;background:#fff;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600}.kanban-col-body{flex-direction:column;gap:8px;display:flex}.empty-col{text-align:center;color:#b0b5c0;padding:12px 0;font-size:12px}.stage-paid .stage-label{color:#15642a}.stage-canceled .stage-label{color:#a12525}.po-card{color:inherit;background:#fff;border-left:3px solid #0000;border-radius:6px;padding:10px 12px;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:block;box-shadow:0 1px 2px #0000000d}.po-card:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 2px 6px #00000017}.po-card.amber{border-left-color:#ffb020}.po-card.red{border-left-color:#d94c4c}.po-card-preapproval{cursor:default;background:repeating-linear-gradient(45deg,#fff,#fff 8px,#fbfbfd 8px 16px)}.po-card-preapproval:hover{transform:none;box-shadow:0 1px 2px #0000000d}.pre-approval-hint{color:#6b5210;background:#fff3cd;border-radius:4px;margin:4px 0 6px;padding:3px 6px}.po-card-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.po-code{color:#2f6fed;font-weight:600}.po-card-title{margin-bottom:4px;font-size:13px;line-height:1.3}.po-card-meta{gap:4px;margin-bottom:6px;display:flex}.po-card-tags{flex-wrap:wrap;gap:4px;display:flex}.po-card-merged{margin:0 0 6px;padding:0;font-size:12px;line-height:1.35;list-style:none}.po-card-merged li{border-left:2px solid #d9dee8;margin-bottom:3px;padding-left:8px}.po-card-merged-title{color:#1c1e24}.po-card-merged-meta{color:#6b7180}.merged-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.merged-tile{background:#fafbfc;border:1px solid #d9dee8;border-radius:6px;padding:10px 12px}.merged-tile-primary{background:#f2faf5;border-color:#15642a}.merged-tile-head{align-items:center;margin-bottom:4px;display:flex}.merged-tile-title{margin:2px 0 4px;font-size:13px;font-weight:500}.age-chip{color:#4a4f5c;background:#eef0f4;border-radius:8px;padding:1px 6px;font-size:11px}.age-chip.amber{color:#6b5210;background:#fff3cd}.age-chip.red{color:#a12525;background:#fde7e7}.tag{color:#4a4f5c;text-transform:uppercase;letter-spacing:.04em;background:#eef0f4;border-radius:8px;padding:1px 6px;font-size:10px}.tag.amber{color:#6b5210;background:#fff3cd}.tag.red{color:#a12525;background:#fde7e7}.tag.green{color:#15642a;background:#dff5e2}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid #0000;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.chip.complete{color:#15642a;background:#dff5e2;border-color:#b6e5be}.chip.pending{color:#6b5210;background:#fff3cd;border-color:#f5d992}.chip.needs_review{color:#8f2b06;background:#ffe0d6;border-color:#f5b39b}.chip.needs_review:before{content:"⚠ ";font-weight:700}.chip.na{color:#6b7180;background:#eceff3;border-color:#dde1e8}.supp-stages{flex-wrap:wrap;gap:4px;margin:8px 0 4px;display:flex}.tabbar{gap:4px;margin-bottom:14px;display:flex}.tab-btn{cursor:pointer;color:#6b7180;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px;font-size:13px}.tab-btn.active{color:#2f6fed;border-bottom-color:#2f6fed}.detail-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.stages{flex-wrap:wrap;gap:6px;display:flex}.supplement{background:#fffaf1;border-left:3px solid #ffb020;border-radius:4px;margin:10px 0;padding:10px 12px}.supplement.pathA{background:#fdf1f1;border-color:#d94c4c}.supplement.pathB{background:#fffaf1;border-color:#ffb020}.supplement.pathC{background:#f4f6fa;border-color:#6b7180}.override-badge{color:#4a4f5c;background:#eef0f4;border-radius:4px;margin-top:6px;padding:4px 8px;display:inline-block}.supp-actions{align-items:center;gap:8px;margin-top:10px;display:flex}.btn-small{cursor:pointer;color:#1c1e24;background:#fff;border:1px solid #cfd4dc;border-radius:4px;padding:4px 10px;font-size:12px}.btn-small:hover{background:#f4f6fa}.btn-small:disabled{opacity:.5;cursor:not-allowed}.btn-small.btn-ghost{color:#6b7180;background:0 0;border-color:#0000}.err-text{color:#a12525}.field-change{margin-top:6px;font-size:12px}.field-change .old{color:#a12525;text-decoration:line-through}.field-change .new{color:#15642a;font-weight:500}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #eef0f4;padding:8px 10px;font-size:12px}th{color:#4a4f5c;text-transform:uppercase;letter-spacing:.04em;background:#f7f8fa;font-size:11px;font-weight:600}.approval-flow{margin:0;padding:0;list-style:none}.af-entry{grid-template-columns:60px 1fr;gap:12px;min-height:60px;padding:4px 0;display:grid}.af-avatar-col{flex-direction:column;align-items:center;display:flex;position:relative}.af-avatar{color:#2f4a8a;letter-spacing:.02em;background:#e5edff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:11px;font-weight:600;display:inline-flex}.af-badge{color:#fff;background:#2f6fed;border:2px solid #f4f6fa;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:8px;right:4px}.af-badge.af-kind-edit,.af-badge.af-kind-edited,.af-badge.af-kind-reopen,.af-badge.af-kind-reopened{background:#f2811d}.af-badge.af-kind-declined,.af-badge.af-kind-envelope_voided{background:#d94c4c}.af-badge.af-kind-envelope_sent{background:#7a8bc4}.af-badge.af-kind-envelope_completed,.af-badge.af-kind-invoice_paid{background:#2ea75f}.af-icon-only{color:#4a4f5c;background:#eef0f4;border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:600;display:inline-flex}.af-icon-only.af-kind-envelope_sent{color:#2f4a8a;background:#dde3f0}.af-icon-only.af-kind-envelope_completed{color:#15642a;background:#dff5e2}.af-icon-only.af-kind-envelope_voided{color:#a12525;background:#fde7e7}.af-icon-only.af-kind-invoice_raised{color:#6b5210;background:#fff3cd}.af-icon-only.af-kind-invoice_paid{color:#15642a;background:#dff5e2}.af-connector{background:#e2e5eb;flex-grow:1;width:1px;min-height:16px;margin-top:8px}.af-body{padding:4px 0 16px}.af-title{margin-bottom:4px;font-size:13px}.af-role{color:#6b7180;font-weight:400}.af-verb{color:#2f6fed;margin-left:4px}.af-verb.af-kind-edit,.af-verb.af-kind-edited,.af-verb.af-kind-reopen,.af-verb.af-kind-reopened{color:#f2811d}.af-verb.af-kind-declined,.af-verb.af-kind-envelope_voided{color:#d94c4c}.af-detail{color:#4a4f5c;margin-top:4px}.af-changes{color:#1c1e24;margin:4px 0 6px;padding-left:20px;font-size:12px}.af-changes li{margin:3px 0}.af-time{margin-top:4px}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:#e2e5eb;width:2px;position:absolute;top:8px;bottom:8px;left:90px}.tl-event{grid-template-columns:80px 20px 1fr;align-items:start;gap:8px;padding:8px 0;display:grid}.tl-time{color:#6b7180;text-align:right;padding-top:3px;font-family:ui-monospace,monospace;font-size:11px}.tl-icon{color:#4a4f5c;z-index:1;background:#fff;border:2px solid #cfd4dc;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:inline-flex}.tl-event.severity-amber .tl-icon{color:#6b5210;border-color:#ffb020}.tl-event.severity-red .tl-icon{color:#a12525;border-color:#d94c4c}.tl-title{font-size:13px;font-weight:500}.tl-detail{margin-top:2px}@media (width<=1200px){.kanban,.kpi-row{grid-template-columns:repeat(3,1fr)}}@media (width<=700px){.kanban{grid-template-columns:1fr}.kpi-row{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}}
