@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{color:#172033;font-synthesis:none;--navy:#101827;--navy-2:#172235;--panel:#fff;--line:#dde4ea;--muted:#6f7b8d;--teal:#11896b;--blue:#386fda;--amber:#b77818;--red:#b24c49;background:#eef2f5;font-family:Inter,Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:1180px;min-height:100%;margin:0}body{min-height:100vh;font-size:14px;line-height:1.45}button,textarea,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #386fda38}.mono,code{font-family:JetBrains Mono,monospace}.muted{color:var(--muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.app-shell{grid-template-columns:236px minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.sidebar{color:#d6deea;background:linear-gradient(#111a2a,#0c1422);border-right:1px solid #253045;flex-direction:column;min-height:0;display:flex}.brand{border-bottom:1px solid #ffffff12;align-items:center;gap:11px;min-height:68px;padding:0 20px;display:flex}.brand>span{color:#7be2c1;background:#20ba8e1f;border:1px solid #7be2c147;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.brand>div{display:grid}.brand strong{color:#f4f7fb;letter-spacing:.2px;font-size:16px}.brand small{color:#8794a8;font-size:12px}.demand-ref{background:#ffffff09;border:1px solid #ffffff14;border-radius:10px;gap:3px;margin:18px 15px 8px;padding:12px;display:grid}.demand-ref span{color:#748198;letter-spacing:.8px;font:600 12px JetBrains Mono}.demand-ref strong{color:#f1f5fa;font:600 14px JetBrains Mono}.demand-ref small{color:#9eabbc;font:500 12px JetBrains Mono}.sidebar nav{gap:4px;padding:8px 10px;display:grid}.sidebar nav button{color:#8f9bad;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;grid-template-columns:22px 20px 1fr 16px;align-items:center;gap:8px;min-height:54px;padding:7px 9px;display:grid}.sidebar nav button:hover{color:#dfe6ef;background:#ffffff0b}.sidebar nav button.active{color:#71ddbb;background:#26b98f1f;box-shadow:inset 2px 0 #43cba3}.sidebar nav button>div{display:grid}.sidebar nav button strong{color:#d9e1eb;font-size:13px;font-weight:600}.sidebar nav button.active strong{color:#f0f9f6}.sidebar nav button small{color:#78859a;font-size:12px}.nav-number{border:1px solid #3a4659;border-radius:50%;place-items:center;width:21px;height:21px;font:600 12px JetBrains Mono;display:grid}.active .nav-number{color:#91ead0;background:#26b98f1f;border-color:#2e9f80}.source-card{background:#ffffff09;border:1px solid #ffffff14;border-radius:9px;grid-template-columns:22px 1fr 8px;align-items:center;gap:8px;margin:auto 14px 0;padding:11px;display:grid}.source-card>svg{color:#6f8fc8}.source-card>div{display:grid}.source-card strong{color:#ccd5e1;font-size:12px}.source-card span{color:#758298;font-size:12px}.source-card i{background:#39c79d;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #39c79d1a}.sidebar-boundary{color:#718097;align-items:flex-start;gap:8px;margin:10px 17px 16px;font-size:12px;line-height:1.55;display:flex}.sidebar-boundary svg{color:#3bb28f;flex:none;margin-top:2px}.main-shell{background:#f3f5f7;min-width:0;min-height:0}.topbar{background:#ffffffeb;border-bottom:1px solid #dce2e8;justify-content:space-between;align-items:center;min-height:58px;padding:0 24px;display:flex}.breadcrumb{color:#8792a2;align-items:center;gap:6px;font-size:13px;display:flex}.breadcrumb strong{color:#253147;font-weight:600}.top-status{gap:7px;display:flex}.status-pill{color:#5f6b7c;white-space:nowrap;background:#f7f9fa;border:1px solid #dbe1e8;border-radius:999px;justify-content:center;align-items:center;gap:5px;min-height:26px;padding:3px 8px;font:600 12px JetBrains Mono;display:inline-flex}.status-pill.tone-green{color:#13785e;background:#edf8f4;border-color:#b7dfd2}.status-pill.tone-blue{color:#335eaa;background:#f0f5fd;border-color:#c2d2ed}.status-pill.tone-amber{color:#956618;background:#fff9eb;border-color:#e9d7ad}.status-pill.tone-red{color:#a54c48;background:#fff3f2;border-color:#e7c2bf}.main-content{height:calc(100vh - 58px);padding:22px 24px 30px;overflow:auto}.stage-page{width:min(1450px,100%);margin:0 auto}.stage-intro{justify-content:space-between;align-items:flex-end;min-height:57px;margin-bottom:16px;display:flex}.kicker{color:#17846a;letter-spacing:1px;font:600 12px JetBrains Mono}.stage-intro h1,.demand-title-row h1{color:#172136;letter-spacing:-.25px;margin:4px 0 0;font-size:24px;line-height:1.25}.section-card{border:1px solid var(--line);background:var(--panel);border-radius:13px;box-shadow:0 5px 18px #13203309}.section-heading{justify-content:space-between;align-items:center;display:flex}.section-heading>div{align-items:center;gap:9px;display:flex}.section-heading>div>svg{color:#148267}.section-heading>div>div{display:grid}.section-heading h2{color:#222e43;margin:0;font-size:15px}.section-heading span{color:#7d899a;font-size:12px}.section-heading.compact{border-bottom:1px solid #e7ebef;padding-bottom:12px}.primary-button,.secondary-button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 13px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(135deg,#19a87f,#11785f);border:1px solid #0e8063;box-shadow:0 5px 13px #148d6924}.secondary-button{color:#4c596d;background:#fff;border:1px solid #d4dbe3}.primary-button:disabled{opacity:.5;cursor:not-allowed}.spinner{border:2px solid #ffffff6b;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.demand-stage{grid-template-columns:minmax(0,1.4fr) minmax(420px,.8fr);gap:15px;display:grid}.demand-brief,.gate-card{padding:18px}.demand-title-row{background:linear-gradient(125deg,#f4faf8,#f9fbfc);border:1px solid #dce5e1;border-radius:11px;justify-content:space-between;align-items:center;gap:16px;margin:20px 0 17px;padding:16px;display:flex}.demand-title-row h1{font-size:20px}.demand-grid{border:1px solid #e1e6eb;border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.field{border-bottom:1px solid #e7ebef;border-right:1px solid #e7ebef;gap:4px;min-width:0;padding:10px 12px;display:grid}.demand-grid .field:nth-child(3n){border-right:0}.demand-grid .field:nth-last-child(-n+3){border-bottom:0}.field span{color:#7d8999;font-size:12px}.field strong{color:#2c384c;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.demand-text{background:#f5f8fc;border-left:3px solid #4381df;border-radius:0 8px 8px 0;margin-top:14px;padding:12px 13px}.demand-text span{color:#718097;font-size:12px}.demand-text p{color:#4f5e73;margin:4px 0 0;font-size:14px;line-height:1.65}.gate-score{color:#15775e!important;font:600 14px JetBrains Mono!important}.gate-list{margin-top:7px;display:grid}.gate-row{border-bottom:1px solid #edf0f3;grid-template-columns:22px 145px 1fr;align-items:center;gap:7px;min-height:48px;display:grid}.gate-row svg{color:#1ba77d}.gate-row strong{color:#3a4659;font-size:13px}.gate-row span{color:#798597;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ai-boundary{background:#f7f9fc;border:1px solid #dce4ee;border-radius:9px;grid-template-columns:150px 1fr auto;align-items:center;gap:10px;margin-top:14px;padding:11px;display:grid}.ai-boundary>div{color:#4e6fa9;align-items:center;gap:7px;display:flex}.ai-boundary>div strong{font-size:13px}.ai-boundary>span{color:#718096;font-size:12px}.route-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.route-card{border:1px solid var(--line);background:#fff;border-radius:13px;min-height:250px;padding:18px 18px 16px 82px;position:relative;box-shadow:0 5px 18px #13203309}.route-mark{border-radius:12px;place-items:center;width:46px;height:46px;display:grid;position:absolute;top:18px;left:18px}.route-mark.data_qa{color:#117c60;background:#e5f6f0}.route-mark.simulation{color:#3a69be;background:#eaf1fc}.route-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.route-top>span:first-child{color:#718096;font-size:12px}.route-card h2{color:#1d293e;margin:12px 0 5px;font-size:20px}.route-card>p{color:#647186;min-height:44px;margin:0 0 13px;font-size:14px;line-height:1.55}.route-card dl{border-top:1px solid #edf0f3;gap:7px;margin:0;padding-top:11px;display:grid}.route-card dl div{grid-template-columns:90px 1fr;gap:8px;display:grid}.route-card dt{color:#8b96a5;font-size:12px}.route-card dd{color:#425168;margin:0;font-size:12px}.route-logic{align-items:center;gap:13px;margin-top:14px;padding:16px;display:flex}.route-logic>svg{color:#a4aeba;flex:none}.logic-node{border:1px solid #dde4ea;border-radius:10px;align-items:center;gap:10px;min-width:220px;padding:13px;display:flex}.logic-node.real{color:#18755c;background:#f0faf6}.logic-node.assets{color:#3d69b5;background:#f1f5fc}.logic-node>div{display:grid}.logic-node strong{color:#2c384d;font-size:13px}.logic-node span{color:#738095;font-size:12px}.logic-split{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.logic-split>div{border:1px solid #e1e6eb;border-radius:9px;grid-template-columns:22px 1fr;align-items:center;gap:2px 7px;padding:10px;display:grid}.logic-split svg{color:#5075b6;grid-row:1/3}.logic-split span{color:#7b8799;font-size:12px}.logic-split strong{color:#344258;font:600 12px JetBrains Mono}.boundary-banner,.contract-note{color:#7e612b;background:#fff9e9;border:1px solid #e8d6aa;border-radius:9px;align-items:center;gap:8px;margin-top:12px;padding:11px 13px;display:flex}.boundary-banner strong,.boundary-banner span,.contract-note span{font-size:13px}.evidence-strip{grid-template-columns:repeat(3,minmax(0,1fr)) 245px;gap:8px;margin-bottom:12px;display:grid}.evidence-strip figure{background:#152033;border:1px solid #d9e0e7;border-radius:11px;height:150px;margin:0;position:relative;overflow:hidden}.evidence-strip img{object-fit:cover;width:100%;height:100%}.evidence-strip figcaption{color:#fff;background:linear-gradient(#0000,#070e19db);grid-template-columns:1fr auto;align-items:end;gap:2px 7px;padding:18px 9px 8px;display:grid;position:absolute;bottom:0;left:0;right:0}.evidence-strip figcaption span{color:#b8f0de;grid-column:1/3;font:600 12px JetBrains Mono}.evidence-strip figcaption strong{font-size:13px}.evidence-strip figcaption code{color:#c4ceda;font-size:12px}.seed-meta{background:linear-gradient(135deg,#eff9f5,#f8fbfa);border:1px solid #cce3da;border-radius:11px;flex-direction:column;justify-content:center;padding:16px;display:flex}.seed-meta>span{color:#168164;font:600 12px JetBrains Mono}.seed-meta strong{color:#253449;margin-top:6px;font-size:15px}.seed-meta small{color:#728096;margin-top:8px;font-size:12px;line-height:1.55}.predicate-table{overflow:hidden}.predicate-head,.predicate-row{grid-template-columns:minmax(190px,1.25fr) 145px minmax(190px,1fr) minmax(230px,1.1fr) minmax(180px,.9fr);align-items:center;gap:10px;display:grid}.predicate-head{color:#7d8998;background:#f6f8fa;border-bottom:1px solid #dfe5ea;min-height:39px;padding:0 14px;font-size:12px}.predicate-row{border-bottom:1px solid #e8ecf0;min-height:72px;padding:9px 14px}.predicate-row:last-child{border-bottom:0}.predicate-row>div:first-child{gap:4px;display:grid}.predicate-row>div:first-child code{color:#3270cc;font-size:12px}.predicate-row>div:first-child strong{color:#2d394d;font-size:13px}.predicate-row>div:nth-child(3){align-items:center;gap:7px;display:flex}.predicate-row small{color:#8490a1;font:500 12px JetBrains Mono}.predicate-row>code{color:#536279;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.action-text{color:#7f5d24;font-size:12px}.responsibility-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:11px;display:grid}.responsibility-grid div{background:#fff;border:1px solid #dfe5eb;border-radius:9px;gap:4px;padding:11px 13px;display:grid}.responsibility-grid strong{color:#314057;font-size:13px}.responsibility-grid span{color:#758296;font-size:12px}.task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.task-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:17px;box-shadow:0 5px 18px #13203309}.task-heading{border-bottom:1px solid #e7ebef;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding-bottom:13px;display:grid}.provider-logo{border-radius:11px;place-items:center;width:42px;height:42px;display:grid}.provider-logo.qa{color:#118064;background:#e7f7f1}.provider-logo.sim{color:#3d68b3;background:#ecf2fc}.task-heading>div:nth-child(2){display:grid}.task-heading>div:nth-child(2) span{color:#6f7c90;font-size:12px}.task-heading>div:nth-child(2) strong{color:#202d42;font:600 14px JetBrains Mono}.task-contract{border:1px solid #e1e6eb;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));margin:13px 0;display:grid;overflow:hidden}.task-contract .field:nth-child(2n){border-right:0}.task-contract .field:nth-last-child(-n+2){border-bottom:0}.task-actions{justify-content:flex-end;gap:7px;display:flex}.task-prerequisite{color:#936718;background:#fffaf0;border:1px solid #e7d6af;border-radius:7px;justify-content:space-between;align-items:center;min-height:34px;margin-bottom:10px;padding:6px 9px;display:flex}.task-prerequisite.qualified{color:#13775e;background:#eff9f5;border-color:#b8dfd2}.task-prerequisite span{font-size:12px}.task-prerequisite strong{font:600 12px JetBrains Mono}.receipt-box{color:#8a95a4;background:#fafbfc;border:1px dashed #cdd5df;border-radius:9px;grid-template-columns:22px 1fr auto auto;align-items:center;gap:8px;min-height:61px;margin-top:13px;padding:9px 11px;display:grid}.receipt-box.received{color:#168064;background:#f0faf6;border-style:solid;border-color:#b9dfd3;grid-template-columns:22px 1fr auto}.receipt-box>div{display:grid}.receipt-box strong{color:#4a576c;font-size:13px}.receipt-box span{color:#8490a0;font-size:12px}.receipt-box button{color:#4f6077;cursor:pointer;background:#fff;border:1px solid #d7dee6;border-radius:6px;padding:5px 7px;font-size:12px}.contract-note{color:#4e637e;background:#f3f7fd;border-color:#ccd9eb}.contract-note svg{color:#4272bf;flex:none}.asset-gate{padding:18px}.asset-flow{grid-template-columns:1fr 24px 1fr 24px 1fr;align-items:center;gap:9px;display:grid}.asset-flow>svg{color:#aab3bf}.asset-flow>div{border:1px solid #dce3e9;border-radius:10px;grid-template-columns:31px 1fr;align-items:center;gap:3px 8px;min-height:72px;padding:10px 12px;display:grid}.asset-flow>div>svg{grid-row:1/3}.asset-flow .done{color:#168064;background:#f0faf6;border-color:#bce1d5}.asset-flow .pending{color:#a3782e;background:#fffaf0;border-color:#e5d7b7}.asset-flow span{color:#718094;font-size:12px}.asset-flow strong{color:#2e3a4e;text-overflow:ellipsis;white-space:nowrap;font:600 12px JetBrains Mono;overflow:hidden}.export-checks{grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0;display:grid}.export-checks>div{border:1px solid #e0e5ea;border-radius:8px;grid-template-columns:20px 1fr;align-items:center;gap:2px 6px;padding:9px;display:grid}.export-checks svg{grid-row:1/3}.export-checks span{color:#5e6b7e;font-size:12px}.export-checks strong{font-size:12px}.export-checks .passed{color:#168064;background:#f7fbf9}.export-checks .waiting{color:#ad781d;background:#fffcf5}.export-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#18a57c,#10795f);border:1px solid #0d7c60;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:40px;font-size:13px;font-weight:600;display:flex}.export-button:disabled{color:#8993a1;cursor:not-allowed;background:#edf0f3;border-color:#d6dde4}.package-preview{background:#101927;border:1px solid #202c3f;border-radius:11px;grid-template-columns:300px minmax(0,1fr);margin-top:12px;display:grid;overflow:hidden}.package-preview>div{border-right:1px solid #273449;flex-direction:column;justify-content:center;padding:18px;display:flex}.package-preview>div span{color:#52c5a2;font:600 12px JetBrains Mono}.package-preview>div strong{color:#eef3f8;word-break:break-all;margin-top:8px;font:600 13px JetBrains Mono}.package-preview>div small{color:#8190a4;margin-top:8px;font-size:12px}.package-preview pre{color:#b8c5d6;height:230px;margin:0;padding:13px;font-size:12px;line-height:1.55;overflow:auto}.asset-boundary-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px;display:grid}.asset-boundary-grid>div{background:#fff;border:1px solid #dce3e9;border-radius:9px;gap:5px;padding:12px 14px;display:grid}.asset-boundary-grid .real{border-left:3px solid #22a77e}.asset-boundary-grid .synthetic{border-left:3px solid #4d7ed1}.asset-boundary-grid span{color:#798598;font:600 12px JetBrains Mono}.asset-boundary-grid strong{color:#344157;font-size:13px}.asset-boundary-grid small{color:#7b8798;font-size:12px}.global-message{z-index:30;border-radius:9px;grid-template-columns:20px minmax(200px,1fr) 27px;align-items:center;gap:7px;max-width:540px;padding:10px 11px;font-size:13px;display:grid;position:fixed;bottom:22px;right:24px;box-shadow:0 12px 30px #121e302e}.global-message.error{color:#9a413d;background:#fff3f2;border:1px solid #e6bbb8}.global-message.notice{color:#126f57;background:#effaf6;border:1px solid #99d5c3}.global-message button{width:27px;height:27px;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.sidebar nav button strong,.sidebar nav button small,.source-card strong,.breadcrumb,.primary-button,.secondary-button,.field span,.field strong,.demand-text span,.gate-row strong,.gate-row span,.ai-boundary>div strong,.ai-boundary>span,.route-card dt,.route-card dd,.logic-node strong,.logic-node span,.logic-split span,.logic-split strong,.boundary-banner strong,.boundary-banner span,.contract-note span,.seed-meta small,.predicate-head,.predicate-row>div:first-child strong,.action-text,.responsibility-grid strong,.responsibility-grid span,.task-heading>div:nth-child(2) span,.task-prerequisite span,.receipt-box strong,.receipt-box span,.receipt-box button,.asset-flow span,.export-checks span,.export-checks strong,.export-button,.asset-boundary-grid strong,.asset-boundary-grid small,.global-message{font-size:14px}@media (min-width:1660px){.app-shell{grid-template-columns:250px minmax(0,1fr)}.main-content{padding-left:34px;padding-right:34px}.evidence-strip figure{height:170px}}@media (max-height:820px){.main-content{padding-top:15px}.evidence-strip figure{height:126px}.predicate-row{min-height:62px}.route-card{min-height:230px}}
