:root{--bg:#f4f6f9;--panel:#fff;--ink:#19212d;--muted:#6c788a;--line:#e4e8ef;--blue:#345cff;--blue2:#edf1ff;--green:#1b9a6c;--red:#e64b55;--amber:#e69a28;--purple:#7655d8;--side:#111925;--radius:14px;--shadow:0 4px 18px rgba(19,31,55,.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,"PingFang SC","Microsoft YaHei",sans-serif}.topbar{height:68px;position:fixed;inset:0 0 auto 0;z-index:20;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3158ee,#7a55e8);display:grid;place-items:center;color:#fff;font-weight:800}.brand strong,.brand small{display:block}.brand small{font-size:11px;color:var(--muted);margin-top:2px}.top-actions{display:flex;gap:9px;align-items:center}.search,.filter-search{border:1px solid var(--line);background:#f8f9fb;border-radius:9px;display:flex;align-items:center;gap:7px;padding:8px 11px;color:var(--muted)}.search{width:310px}.search input,.filter-search input{border:0;outline:0;background:transparent;width:100%;font:inherit}.ghost,.primary,.text-btn,.icon-btn,.segmented button{border:0;font:inherit;cursor:pointer}.ghost{border:1px solid var(--line);background:#fff;padding:8px 12px;border-radius:8px}.primary{background:var(--blue);color:#fff;padding:9px 15px;border-radius:8px;font-weight:650}.sidebar{position:fixed;top:68px;bottom:0;left:0;width:242px;background:var(--side);color:#d3d9e3;padding:18px 12px;z-index:10;display:flex;flex-direction:column}.project-switcher{padding:10px;display:flex;align-items:center;gap:9px;background:#1a2432;border:1px solid #2a3545;border-radius:10px;margin-bottom:13px}.project-switcher div{flex:1}.project-switcher small,.project-switcher strong{display:block}.project-switcher small{font-size:10px;color:#8490a1}.project-switcher strong{font-size:12px;margin-top:2px}.cube{color:#8da3ff;font-size:21px}nav{overflow:auto;flex:1}nav p{margin:19px 10px 7px;color:#677486;font-size:10px;font-weight:750;letter-spacing:.08em}.nav-item{width:100%;background:transparent;color:#aeb8c7;border:0;padding:9px 10px;border-radius:8px;text-align:left;display:flex;align-items:center;gap:10px;cursor:pointer;margin:2px 0}.nav-item:hover,.nav-item.active{background:#273344;color:#fff}.nav-item.active{box-shadow:inset 3px 0 #6381ff}.nav-item span{width:17px;text-align:center}.nav-item b{margin-left:auto;background:#344154;border-radius:12px;padding:1px 7px;font-size:10px}.sidebar-footer{padding:12px 10px 2px;border-top:1px solid #293546}.sidebar-footer div{display:flex;justify-content:space-between;font-size:11px}.sidebar-footer strong{color:#69d4aa}.sidebar-footer small{font-size:10px;color:#6f7c8e}main{margin:68px 0 0 242px;padding:27px 30px 50px;max-width:1800px}.page-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.eyebrow{display:flex;gap:7px}.eyebrow span{font-size:10px;color:#647084;background:#e9edf3;padding:3px 7px;border-radius:5px}.eyebrow .health{color:var(--green);background:#e7f7f1}.page-head h1{font-size:25px;margin:7px 0 3px}.page-head p{color:var(--muted);margin:0}.baseline{text-align:right}.baseline>*{display:block}.baseline small,.baseline span{font-size:10px;color:var(--muted)}.baseline strong{font-size:16px}.view{display:none}.view.active{display:block}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:14px}.north-star,.next-action{padding:22px}.north-star{background:linear-gradient(130deg,#1c2850,#283d7d);color:#fff;border:0}.panel-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8f9cb1}.north-star .panel-label{color:#aebceb}.north-star h2{margin:8px 0;font-size:21px}.north-star p{color:#c0cae5}.hero-meta{display:flex;gap:28px;margin-top:17px}.hero-meta span{color:#b8c4e4;font-size:11px}.hero-meta b{color:#fff;font-size:17px;margin-right:5px}.next-action h3{margin:12px 0 6px}.next-action p{color:var(--muted)}.pill{padding:3px 7px;border-radius:12px;font-size:10px}.pill.red{color:var(--red);background:#ffedef}.pill.blue{color:var(--blue);background:var(--blue2)}.text-btn{background:transparent;color:var(--blue);padding:0;font-weight:650}.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:14px 0}.metric{padding:16px}.metric small{color:var(--muted)}.metric .value{display:flex;align-items:end;justify-content:space-between;margin-top:7px}.metric b{font-size:24px}.metric em{font-style:normal;font-size:10px}.metric em.good{color:var(--green)}.metric em.warn{color:var(--amber)}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.dashboard-grid>.panel{padding:18px}.panel-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.panel-heading h3{margin:0 0 2px}.panel-heading p{margin:0;color:var(--muted);font-size:11px}.stages{display:flex;gap:2px}.stage{flex:1;text-align:center;position:relative}.stage:before{content:"";height:5px;background:#e5e9ef;display:block;margin-bottom:8px}.stage.done:before{background:var(--green)}.stage.active:before{background:var(--blue)}.stage.next:before{background:var(--amber)}.stage b{display:block;font-size:10px}.stage span{font-size:9px;color:var(--muted)}.score-total{font-size:27px;color:var(--blue)}.score-total span{font-size:10px;color:var(--muted)}.score-row{display:grid;grid-template-columns:105px 1fr 42px;gap:8px;align-items:center;margin:8px 0;font-size:11px}.bar{height:6px;background:#edf0f4;border-radius:9px;overflow:hidden}.bar i{height:100%;background:linear-gradient(90deg,#3b62f4,#6e83ef);display:block;border-radius:9px}.mini-graph{min-height:230px;display:grid;place-items:center}.trace-flow{width:100%;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;align-items:center}.trace-node{border:1px solid var(--line);padding:12px 6px;text-align:center;border-radius:10px;position:relative;font-size:11px}.trace-node:not(:last-child):after{content:'›';position:absolute;right:-8px;color:#98a2b2}.trace-node b{display:block;font-size:18px;color:var(--blue)}.gap{display:grid;grid-template-columns:1fr 45px;gap:5px;border-bottom:1px solid var(--line);padding:10px 0;cursor:pointer}.gap:last-child{border:0}.gap strong{font-size:12px}.gap small{display:block;color:var(--muted)}.gap-score{text-align:right;color:var(--blue);font-weight:750}.table-toolbar{padding:12px;margin-bottom:12px}.segmented{display:flex;gap:3px}.segmented button{padding:7px 11px;background:#f2f4f7;color:#667286;border-radius:7px}.segmented button.active{background:#243b70;color:#fff}.toolbar-row{display:flex;gap:8px;align-items:center;margin-top:12px}.filter-search{width:240px}.toolbar-row select,.graph-toolbar select,.density select{border:1px solid var(--line);background:#fff;padding:8px;border-radius:8px;color:#4d596b}.spacer{flex:1}.density{color:var(--muted);font-size:11px}.table-shell{overflow:hidden}.table-caption{display:flex;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th,td{padding:12px 14px;border-bottom:1px solid #edf0f4;text-align:left;font-size:12px}th{font-size:10px;color:#697588;background:#fafbfc;cursor:pointer;position:sticky;top:0}tbody tr{cursor:pointer}tbody tr:hover{background:#f5f7ff}td:first-child{color:var(--blue);font-weight:700}.status{font-size:10px;border-radius:10px;padding:3px 7px;background:#eef1f5}.status.进行中{color:var(--blue);background:var(--blue2)}.status.已通过,.status.已认证,.status.健康{color:var(--green);background:#e8f7f1}.status.已阻塞,.status.需返工,.status.高风险{color:var(--red);background:#ffedef}.status.等待依赖,.status.待检查,.status.审核中{color:#a36a10;background:#fff4df}.progress-cell{display:flex;align-items:center;gap:7px}.progress-cell .bar{width:60px}.graph-toolbar{padding:13px 16px;display:flex;align-items:center;gap:14px}.graph-toolbar>div:first-child{margin-right:auto}.graph-toolbar h3,.graph-toolbar p{margin:0}.graph-toolbar p{font-size:11px;color:var(--muted)}.graph-canvas{height:590px;margin-top:12px;position:relative;overflow:hidden;background-image:radial-gradient(#d7dce6 1px,transparent 1px);background-size:22px 22px}.network{width:100%;height:100%}.network line{stroke:#bdc7d7;stroke-width:1.4}.network text{font:11px sans-serif;fill:#263245}.network .node{cursor:pointer;filter:drop-shadow(0 3px 4px rgba(30,45,70,.12))}.drawer{position:fixed;right:-470px;top:68px;bottom:0;width:460px;background:#fff;z-index:40;box-shadow:-12px 0 35px rgba(10,20,40,.16);transition:.25s;padding:22px;overflow:auto}.drawer.open{right:0}.drawer-head{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:15px}.drawer-head small{color:var(--blue)}.drawer-head h2{margin:5px 0 0;font-size:20px}.drawer-head button{border:0;background:#f0f2f6;border-radius:50%;width:32px;height:32px;font-size:22px;cursor:pointer}.detail-section{padding:16px 0;border-bottom:1px solid var(--line)}.detail-section h4{font-size:11px;color:#6f7a8b;text-transform:uppercase;margin:0 0 9px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.detail-field{background:#f7f8fa;padding:10px;border-radius:8px}.detail-field small,.detail-field strong{display:block}.detail-field small{color:var(--muted);font-size:10px}.detail-field strong{font-size:12px;margin-top:3px}.scrim{position:fixed;inset:68px 0 0 242px;background:rgba(12,20,34,.14);z-index:30;display:none}.scrim.show{display:block}@media(max-width:1000px){.sidebar{width:70px}.project-switcher div,.project-switcher>span:last-child,.nav-item:not(.active){font-size:0}.nav-item b,nav p,.sidebar-footer{display:none}main{margin-left:70px}.scrim{left:70px}.brand small,.search{display:none}.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.hero-grid{grid-template-columns:1fr}}@media(max-width:680px){main{padding:18px 12px;margin-left:0}.sidebar{display:none}.topbar{padding:0 12px}.top-actions .ghost{display:none}.page-head{align-items:start}.baseline{display:none}.hero-meta{gap:10px}.metric-grid{grid-template-columns:repeat(2,1fr)}.toolbar-row{flex-wrap:wrap}.spacer{display:none}.drawer{width:100%}.scrim{left:0}.graph-toolbar{flex-wrap:wrap}}
