:root{color-scheme:light;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;color:#172033;background:#f5f7fb;font-synthesis:none;--navy: #172033;--muted: #738096;--muted-2: #96a0b2;--line: #e5e9f1;--line-strong: #d8deea;--surface: #ffffff;--surface-soft: #f8f9fc;--primary: #3768f5;--primary-dark: #2853cf;--primary-soft: #edf2ff;--green: #16a07a;--green-soft: #e8f8f2;--amber: #d98a1c;--amber-soft: #fff5e5;--red: #e15656;--red-soft: #ffeded;--violet: #7357d8;--violet-soft: #f1edff;--shadow: 0 12px 32px rgba(30, 42, 67, .07)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f5f7fb}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(55,104,245,.2);outline-offset:2px}h1,h2,h3,p{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.app-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:238px;display:flex;flex-direction:column;padding:24px 16px 18px;border-right:1px solid #e7ebf2;background:#fbfcfe}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 26px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:#fff;background:linear-gradient(145deg,#4a7cff,#2853cf);box-shadow:0 8px 18px #3768f538}.brand>span:last-child,.user-card>span:last-child{display:grid;gap:2px}.brand strong{font-size:16px;letter-spacing:-.2px}.brand small,.user-card small{font-size:11px;color:var(--muted)}.main-nav{display:grid;gap:5px}.nav-caption{padding:0 12px 7px;color:#9ca6b7;font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.main-nav button{border:0;border-radius:10px;padding:10px 11px;display:flex;align-items:center;gap:11px;background:transparent;color:#667187;text-align:left;transition:.16s ease}.main-nav button:hover{background:#f0f3f8;color:var(--navy)}.main-nav button.active{color:#2f61e8;background:#edf2ff;font-weight:650}.main-nav button em{margin-left:auto;min-width:22px;padding:2px 6px;border-radius:999px;background:#e4e8ef;color:#778296;font-size:10px;font-style:normal;text-align:center}.main-nav button.active em{color:#3563e5;background:#dce6ff}.sidebar-focus{margin-top:auto;padding:14px 12px;border-radius:12px;background:#f1f4fa}.focus-head{display:flex;justify-content:space-between;gap:8px;font-size:11px}.focus-head strong{font-size:11px}.mini-progress{height:5px;margin:10px 0 8px;overflow:hidden;border-radius:999px;background:#dfe5ef}.mini-progress span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.sidebar-focus small{display:block;color:var(--muted);font-size:10px;line-height:1.5}.user-card{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 9px 2px;border-top:1px solid var(--line)}.user-card strong{font-size:12px}.avatar{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#2d54bc;background:#dfe8ff;font-size:12px;font-weight:700}.avatar.small{width:25px;height:25px;font-size:10px}.app-main{grid-column:2;min-width:0}.topbar{position:sticky;top:0;z-index:20;min-height:74px;display:flex;align-items:center;gap:12px;padding:12px 28px;border-bottom:1px solid rgba(225,230,239,.9);background:#ffffffe0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.page-heading{min-width:230px;margin-right:auto}.page-heading h1{font-size:19px;letter-spacing:-.3px}.page-heading p{margin-top:3px;color:var(--muted);font-size:11px}.search-box{width:min(280px,25vw);display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:#93a0b5;background:#f8f9fc}.search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--navy);font-size:12px}.search-box kbd{padding:2px 5px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#9aa4b4;font-size:9px;box-shadow:0 1px 2px #00000008}.icon-button{position:relative;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;color:#657087}.icon-button:hover{background:#f7f8fb;color:var(--navy)}.notification-dot{position:absolute;top:8px;right:8px;width:6px;height:6px;border:2px solid #fff;border-radius:50%;background:var(--red)}.primary-button,.secondary-button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;padding:8px 13px;font-size:12px;font-weight:650}.primary-button{border:1px solid var(--primary);color:#fff;background:var(--primary);box-shadow:0 5px 12px #3768f529}.primary-button:hover{background:var(--primary-dark)}.secondary-button{border:1px solid var(--line-strong);color:#3d4960;background:#fff}.secondary-button:hover{border-color:#c7cfde;background:#f8f9fc}.mobile-menu{display:none;width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff}.page-content{max-width:1520px;margin:0 auto;padding:24px 28px 40px}.panel{border:1px solid #e6eaf1;border-radius:14px;background:var(--surface);box-shadow:0 2px 8px #1e2a4306}.welcome-strip{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.eyebrow{display:block;margin-bottom:6px;color:#64728a;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.welcome-strip h2,.detail-hero h2,.wbs-summary h2,.todo-header h2{font-size:24px;letter-spacing:-.6px}.welcome-strip p,.detail-hero p,.todo-header p{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.6}.welcome-strip p strong{color:var(--primary)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.metric-card{min-height:106px;display:flex;align-items:center;gap:13px;padding:17px}.metric-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px}.metric-icon.blue{color:var(--primary);background:var(--primary-soft)}.metric-icon.green{color:var(--green);background:var(--green-soft)}.metric-icon.violet{color:var(--violet);background:var(--violet-soft)}.metric-icon.amber{color:var(--amber);background:var(--amber-soft)}.metric-copy{display:grid;gap:2px}.metric-copy small{color:var(--muted);font-size:10px}.metric-copy strong{font-size:25px;letter-spacing:-.8px}.metric-copy em{color:#8a95a7;font-size:10px;font-style:normal}.overview-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:16px;margin-bottom:16px}.lower-grid{grid-template-columns:minmax(0,1.25fr) minmax(340px,.9fr)}.portfolio-panel,.milestone-panel,.chart-panel,.risk-panel{padding:18px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-header h2{font-size:14px;letter-spacing:-.1px}.panel-header p{margin-top:3px;color:var(--muted);font-size:10px}.panel-header button{display:inline-flex;align-items:center;gap:3px;border:0;background:transparent;color:#6d7890;font-size:10px}.portfolio-table{display:grid}.portfolio-row{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(100px,.72fr) minmax(130px,.78fr) 75px;align-items:center;gap:15px;min-height:57px;padding:8px 5px}.portfolio-head{min-height:32px;color:#9099a9;font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.project-row{width:100%;border:0;border-top:1px solid #eef1f5;background:transparent;color:inherit;text-align:left}.project-row:hover{background:#f9fafc}.project-cell{display:flex;align-items:center;gap:9px;min-width:0}.project-cell>span{min-width:0;display:grid;gap:3px}.project-cell strong{overflow:hidden;text-overflow:ellipsis;color:#283247;font-size:11px;white-space:nowrap}.project-cell small{color:#909aab;font-size:9px}.project-indicator{width:7px;height:7px;flex:0 0 auto;border-radius:50%}.project-indicator.risk-low{background:var(--green)}.project-indicator.risk-medium{background:var(--amber)}.project-indicator.risk-high{background:var(--red)}.stage-cell{color:#566278;font-size:10px}.progress-cell{display:flex;align-items:center;gap:8px}.progress-cell strong{width:30px;color:#566278;font-size:9px}.progress-track,.progress-line{height:5px;overflow:hidden;border-radius:999px;background:#e8ecf3}.progress-track{width:90px}.progress-track i,.progress-line i{display:block;height:100%;border-radius:inherit;background:var(--primary)}.risk-badge{display:inline-flex;min-width:48px;justify-content:center;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:650}.risk-badge.risk-low{color:#188264;background:var(--green-soft)}.risk-badge.risk-medium{color:#ad6e13;background:var(--amber-soft)}.risk-badge.risk-high{color:#c44747;background:var(--red-soft)}.milestone-list{display:grid}.milestone-item{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) 16px;align-items:center;gap:11px;padding:10px 2px;border:0;border-top:1px solid #eef1f5;background:transparent;color:inherit;text-align:left}.milestone-item:hover .milestone-copy strong{color:var(--primary)}.milestone-date{display:grid;place-items:center;gap:2px;min-height:39px;border-radius:8px;color:#4e5b72;background:#f2f4f8}.milestone-date.urgent{color:#ba4646;background:var(--red-soft)}.milestone-date strong{font-size:11px}.milestone-date small{font-size:8px}.milestone-copy{min-width:0;display:grid;gap:3px}.milestone-copy strong{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.milestone-copy small{overflow:hidden;text-overflow:ellipsis;color:#8b95a6;font-size:9px;white-space:nowrap}.milestone-item>svg{color:#a5adba}.trend-chart{position:relative}.trend-chart svg{display:block;width:100%;height:205px;overflow:visible}.chart-gridline{stroke:#e8ecf2;stroke-width:1}.chart-area{fill:#3768f517}.chart-plan{fill:none;stroke:#a9b1bf;stroke-width:1.5;stroke-dasharray:5 5}.chart-actual{fill:none;stroke:var(--primary);stroke-width:2.5}.trend-chart circle{fill:#fff;stroke:var(--primary);stroke-width:2}.trend-chart text{fill:#758198;font-size:9px}.trend-chart .axis-label{fill:#909aab}.chart-legend{position:absolute;top:-31px;right:0;display:flex;gap:12px;color:#7d8799;font-size:9px}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:14px;height:2px;display:inline-block;background:var(--primary)}.chart-legend .plan-line{background:repeating-linear-gradient(90deg,#a9b1bf 0 4px,transparent 4px 7px)}.decision-list{display:grid}.decision-item{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0;border:0;border-top:1px solid #eef1f5;background:transparent;color:inherit;text-align:left}.decision-item:hover{background:#fafbfc}.decision-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#65728b;background:#f1f3f7}.decision-item.danger .decision-icon{color:var(--red);background:var(--red-soft)}.decision-item.warning .decision-icon{color:var(--amber);background:var(--amber-soft)}.decision-item>span:nth-child(2){min-width:0;display:grid;gap:3px}.decision-item strong{font-size:10px}.decision-item small{overflow:hidden;text-overflow:ellipsis;color:#8d97a8;font-size:9px;white-space:nowrap}.priority-chip,.priority{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;font-size:8px;font-weight:750}.priority-chip{width:24px;height:20px;color:#c64949;background:var(--red-soft)}.projects-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;align-items:start}.project-list-panel{position:sticky;top:98px}.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:0 2px}.list-toolbar>div{display:grid;gap:2px}.list-toolbar strong{font-size:12px}.list-toolbar small{color:var(--muted);font-size:9px}.project-card-list{display:grid;gap:8px}.project-card{width:100%;display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:inherit;text-align:left;transition:.16s ease}.project-card:hover{border-color:#cfd6e3;transform:translateY(-1px);box-shadow:var(--shadow)}.project-card.selected{border-color:#9db6ff;background:#f7f9ff;box-shadow:0 0 0 2px #3768f514}.project-card-top,.project-card-meta,.project-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-card-top>span:first-child{min-width:0;display:grid;gap:4px}.project-card-top small{color:#8b95a6;font-size:8px}.project-card-top strong{overflow:hidden;text-overflow:ellipsis;font-size:11px;white-space:nowrap}.project-card-meta,.project-card-foot{color:#7d8798;font-size:9px}.project-card .progress-line{width:100%}.project-detail{min-width:0;display:grid;gap:14px}.detail-hero{padding:22px}.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.detail-title-row>div{max-width:750px}.detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.detail-hero h2{font-size:20px}.detail-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.detail-metrics div{display:grid;gap:6px}.detail-metrics small{color:#8a95a7;font-size:9px}.detail-metrics strong{font-size:13px}.stage-panel{padding:18px 20px;overflow:hidden}.stage-track{display:grid;grid-template-columns:repeat(9,minmax(78px,1fr));gap:0;overflow-x:auto;padding:4px 0 2px}.stage-node{position:relative;min-width:78px;display:grid;justify-items:center;gap:7px;color:#a1a9b7;text-align:center}.stage-node:before{content:"";position:absolute;top:13px;left:-50%;z-index:0;width:100%;height:2px;background:#e4e8ef}.stage-node:first-child:before{display:none}.stage-node>span{position:relative;z-index:1;width:28px;height:28px;display:grid;place-items:center;border:2px solid #dfe4ec;border-radius:50%;background:#fff;font-size:9px;font-weight:700}.stage-node small{max-width:76px;font-size:9px;white-space:nowrap}.stage-node.complete{color:var(--green)}.stage-node.complete:before{background:#a9dfcd}.stage-node.complete>span{border-color:var(--green);color:#fff;background:var(--green)}.stage-node.current{color:var(--primary);font-weight:700}.stage-node.current:before{background:#aac0ff}.stage-node.current>span{border-color:var(--primary);color:#fff;background:var(--primary);box-shadow:0 0 0 4px #e9efff}.project-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.project-detail-grid>.panel{padding:18px}.compact-task-list,.deliverable-list{display:grid}.compact-task{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #eef1f5}.status-dot{width:7px;height:7px;display:inline-block;flex:0 0 auto;border-radius:50%}.status-dot.slate{background:#9da6b5}.status-dot.blue{background:var(--primary)}.status-dot.amber{background:var(--amber)}.status-dot.green{background:var(--green)}.compact-task>span:nth-child(2){display:grid;gap:3px}.compact-task strong{font-size:10px}.compact-task small,.due-date{color:#8a95a7;font-size:9px}.deliverable-list>div,.deliverable-list>button{width:100%;display:grid;grid-template-columns:18px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:10px 0;border:0;border-top:1px solid #eef1f5;background:transparent;color:#778399;text-align:left}.deliverable-list>button:hover{background:#fafbfc}.deliverable-list span{display:grid;gap:3px}.deliverable-list strong{color:var(--navy);font-size:10px}.deliverable-list small{font-size:9px}.success-icon{color:var(--green)}.view-toolbar,.wbs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.filter-tabs,.todo-filter{display:flex;flex-wrap:wrap;gap:5px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff}.filter-tabs button,.todo-filter button{border:0;border-radius:7px;padding:7px 11px;background:transparent;color:#788398;font-size:10px}.filter-tabs button.active,.todo-filter button.active{color:#2f5fdc;background:var(--primary-soft);font-weight:650}.toolbar-summary{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px}.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:10px}.kanban-lane{min-width:220px;padding:10px;border-radius:13px;background:#edf0f5}.kanban-lane>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 3px 10px}.kanban-lane>header>span{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700}.kanban-lane>header em{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#dce1e9;color:#7b8597;font-size:9px;font-style:normal}.kanban-stack{display:grid;gap:8px}.task-card{padding:13px;border:1px solid #e2e6ed;border-radius:11px;background:#fff;box-shadow:0 2px 5px #1e2a4309}.task-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-card-top>span{display:flex;align-items:center;gap:6px}.task-card-top small{color:#97a0af;font-size:8px}.edit-icon-button,.row-edit-button{width:27px;height:27px;display:grid;place-items:center;flex:0 0 auto;border:1px solid transparent;border-radius:7px;background:transparent;color:#8b95a6}.edit-icon-button:hover,.row-edit-button:hover{border-color:var(--line);color:var(--primary);background:var(--primary-soft)}.priority{min-width:25px;height:19px;padding:0 6px}.priority-p0{color:#c94545;background:var(--red-soft)}.priority-p1{color:#aa6a0c;background:var(--amber-soft)}.priority-p2{color:#667389;background:#edf0f5}.task-card h3{margin-top:10px;font-size:11px;line-height:1.45}.task-card p{margin-top:4px;overflow:hidden;text-overflow:ellipsis;color:#929bab;font-size:8px;white-space:nowrap}.task-tags{display:flex;flex-wrap:wrap;gap:5px;margin:11px 0}.task-tags span{padding:3px 6px;border-radius:5px;color:#67748a;background:#f0f2f6;font-size:8px}.task-card-foot{display:grid;grid-template-columns:25px minmax(78px,1fr) auto;align-items:center;gap:7px;padding-top:10px;border-top:1px solid #eef1f5}.task-card-foot label select{width:100%;border:0;outline:0;color:#68748a;background:transparent;font-size:9px}.task-card-foot>span:last-child{display:flex;align-items:center;gap:4px;color:#8c96a7;font-size:8px;white-space:nowrap}.overdue{color:var(--red)!important}.lane-empty{padding:25px 8px;color:#9aa3b1;font-size:10px;text-align:center}.wbs-toolbar label{min-width:min(440px,55vw);display:flex;align-items:center;gap:10px}.wbs-toolbar label span{color:var(--muted);font-size:10px;white-space:nowrap}.wbs-toolbar select,.modal-card select,.modal-card input,.modal-card textarea{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:8px;outline:0;color:var(--navy);background:#fff;font-size:11px}.modal-card textarea{min-height:62px;resize:vertical;line-height:1.55}.modal-card input:disabled{color:#9aa3b2;background:#f2f4f7}.baseline-info{display:flex;align-items:center;gap:12px;color:#7d8798;font-size:9px}.baseline-info>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.wbs-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:18px 20px}.wbs-summary h2{font-size:17px}.wbs-summary-metrics{display:flex;gap:28px}.wbs-summary-metrics>span{display:grid;gap:4px;text-align:right}.wbs-summary-metrics small{color:#8c96a7;font-size:8px}.wbs-summary-metrics strong{font-size:12px}.wbs-panel{overflow:auto}.wbs-grid{min-width:1040px;display:grid;grid-template-columns:310px 80px 95px minmax(520px,1fr);align-items:stretch}.wbs-grid-head{min-height:45px;align-items:center;border-bottom:1px solid var(--line-strong);color:#858fa0;font-size:9px;font-weight:700}.wbs-grid-head>span:not(:last-child),.wbs-grid-row>span:not(:last-child){padding-left:14px}.timeline-months{height:100%;display:grid;grid-template-columns:repeat(9,1fr);align-items:center;border-left:1px solid var(--line)}.timeline-months i{color:#8d97a8;font-style:normal;font-weight:500;text-align:center}.wbs-grid-row{min-height:48px;border-bottom:1px solid #edf0f4}.wbs-grid-row:hover{background:#fafbfc}.wbs-name{display:flex;align-items:center;gap:5px}.wbs-name>button,.wbs-name>i{width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto;border:0;background:transparent;color:#7f899a}.wbs-name>span{min-width:0;display:grid;gap:3px}.wbs-name .row-edit-button{width:25px;height:25px;margin-left:auto;border-radius:6px}.wbs-name strong{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.wbs-name small{color:#9099a9;font-size:8px}.level-1 .wbs-name{padding-left:20px}.level-2 .wbs-name{padding-left:42px}.wbs-owner{display:flex;align-items:center;color:#6e7a90;font-size:9px}.wbs-progress{display:grid;align-content:center;gap:4px;padding-right:13px}.wbs-progress>strong{color:#68748a;font-size:8px}.wbs-progress>span{height:4px;overflow:hidden;border-radius:999px;background:#e7ebf1}.wbs-progress>span i{display:block;height:100%;background:var(--primary)}.gantt-cell{position:relative;overflow:hidden;border-left:1px solid var(--line);background-image:linear-gradient(to right,#eef1f5 1px,transparent 1px);background-size:11.111% 100%}.gantt-bar{position:absolute;top:16px;height:16px;overflow:hidden;border-radius:4px;background:#c7d5ff}.gantt-bar b{display:block;height:100%;border-radius:inherit;background:var(--primary)}.gantt-bar.complete{background:#bfe4d8}.gantt-bar.complete b{background:var(--green)}.milestone-diamond{position:absolute;top:18px;width:12px;height:12px;transform:rotate(45deg);border:2px solid #fff;border-radius:2px;background:var(--amber);box-shadow:0 0 0 1px #c87b12}.today-line{position:absolute;z-index:2;top:0;bottom:0;left:30.5%;width:1px;background:#e15656bf}.development-layout,.data-layout{display:grid;gap:16px}.development-hero,.data-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:22px}.development-hero>div:first-child{max-width:720px}.development-hero h2,.data-hero h2{font-size:20px;letter-spacing:-.4px}.development-hero p,.data-hero p{margin-top:7px;color:var(--muted);font-size:11px;line-height:1.65}.development-stats{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:10px}.development-stats span{min-width:92px;display:grid;gap:4px;padding:13px;border-radius:10px;background:#f6f8fb;text-align:center}.development-stats strong{font-size:20px}.development-stats small{color:var(--muted);font-size:8px;white-space:nowrap}.ledger-panel{overflow:hidden}.ledger-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;border-bottom:1px solid var(--line)}.ledger-tabs{display:flex;gap:5px;padding:4px;border-radius:10px;background:#f1f3f7}.ledger-tabs button{display:flex;align-items:center;gap:6px;padding:8px 11px;border:0;border-radius:7px;color:#748095;background:transparent;font-size:10px}.ledger-tabs button.active{color:#2d5edc;background:#fff;font-weight:700;box-shadow:0 2px 8px #1e2a4314}.ledger-actions{display:flex;align-items:center;gap:8px}.ledger-actions select{min-height:36px;max-width:270px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:8px;color:var(--navy);background:#fff;font-size:10px}.ledger-list{overflow-x:auto}.ledger-row{min-width:990px;display:grid;align-items:center;gap:14px;padding:12px 16px;border:0;border-bottom:1px solid #edf0f4;background:#fff;color:inherit;text-align:left}button.ledger-row{width:100%}button.ledger-row:hover{background:#fafbfc}.verification-grid{grid-template-columns:minmax(180px,1.05fr) minmax(120px,.75fr) minmax(260px,1.4fr) 110px 78px 24px}.risk-grid{grid-template-columns:minmax(180px,1fr) minmax(150px,.9fr) minmax(260px,1.35fr) 110px 90px 24px}.deliverable-grid{grid-template-columns:minmax(220px,1.3fr) minmax(170px,1fr) 65px 90px 105px 24px}.ledger-head{min-height:38px;padding-block:9px;color:#8d97a8;background:#f9fafc;font-size:8px;font-weight:750;letter-spacing:.4px;text-transform:uppercase}.ledger-row>span{min-width:0;display:grid;gap:4px}.ledger-row strong{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.ledger-row small{overflow:hidden;color:#8691a4;font-size:8px;line-height:1.45;text-overflow:ellipsis}.ledger-edit{color:#98a2b2}.meeting-record-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;padding:16px;background:#f8f9fc}.meeting-record-card{min-width:0;display:grid;gap:12px;padding:17px;border:1px solid #e3e7ef;border-radius:12px;color:inherit;background:#fff;text-align:left;box-shadow:0 3px 12px #1e2a430a}.meeting-record-card:hover{border-color:#c5d3f7;box-shadow:0 7px 22px #1e408c14}.meeting-record-head,.meeting-record-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.meeting-record-head>span,.meeting-record-meta{min-width:0;display:grid;gap:5px}.meeting-record-head strong{font-size:12px}.meeting-record-head small,.meeting-record-meta small,.meeting-record-footer small{color:#8792a4;font-size:8px;line-height:1.45}.meeting-record-head>svg{flex:0 0 auto;color:#9aa4b5}.meeting-record-meta em{width:fit-content;padding:4px 8px;border-radius:999px;color:#315fd0;background:var(--primary-soft);font-size:8px;font-style:normal}.meeting-record-summary{color:#566176;font-size:9px;line-height:1.75}.meeting-record-footer{padding-top:10px;border-top:1px solid #edf0f4}.meeting-record-footer em{color:#9a681d;font-size:8px;font-style:normal;white-space:nowrap}.record-status,.document-status{width:fit-content;padding:4px 7px;border-radius:999px;color:#647087;background:#edf0f5;font-size:8px;font-style:normal;font-weight:700;white-space:nowrap}.status-进行中,.status-评审中{color:#315fd0;background:var(--primary-soft)}.status-待复核,.status-计划中,.status-草稿{color:#a46a16;background:var(--amber-soft)}.status-已完成,.status-已批准{color:#167b5e;background:var(--green-soft)}.data-hero{justify-content:flex-start}.data-hero>div{margin-right:auto}.data-hero-icon{width:50px;height:50px;display:grid;place-items:center;flex:0 0 auto;border-radius:13px;color:var(--primary);background:var(--primary-soft)}.data-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.data-summary article{display:flex;align-items:center;gap:12px;padding:16px;color:var(--primary)}.data-summary article>span{display:grid;gap:2px}.data-summary strong{color:var(--navy);font-size:20px}.data-summary small{color:var(--muted);font-size:9px}.data-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.62fr);gap:16px;align-items:start}.export-panel{padding:18px}.export-list{display:grid}.export-list>div{display:grid;grid-template-columns:36px minmax(0,1fr) 55px auto;align-items:center;gap:11px;min-height:64px;border-top:1px solid #edf0f4}.export-icon,.import-card-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:#3564e5;background:var(--primary-soft)}.export-list>div>span:nth-child(2){display:grid;gap:4px}.export-list strong{font-size:10px}.export-list small{color:#8792a4;font-size:8px}.export-list em{color:#8994a6;font-size:9px;font-style:normal;white-space:nowrap}.data-side{display:grid;gap:14px}.import-card,.restore-card{display:grid;justify-items:start;gap:10px;padding:19px}.import-card h3,.restore-card h3{margin-top:2px;font-size:13px}.import-card p,.restore-card p{color:var(--muted);font-size:9px;line-height:1.65}.import-card-icon.neutral{color:#627087;background:#f0f2f6}.todo-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);gap:16px;align-items:start}.todo-main{padding:22px}.todo-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.todo-header h2{font-size:20px}.todo-filter{width:fit-content;margin:15px 0 6px}.personal-task-list{display:grid}.personal-task{display:grid;grid-template-columns:22px minmax(0,1fr) 30px auto 28px;align-items:center;gap:10px;min-height:62px;padding:9px 2px;border-bottom:1px solid #edf0f4}.todo-toggle{width:20px;height:20px;display:grid;place-items:center;padding:0;border:1.5px solid #cfd5df;border-radius:6px;color:transparent;background:#fff}.todo-toggle.checked{border-color:var(--primary);color:#fff;background:var(--primary)}.personal-task-copy{min-width:0;display:grid;gap:4px}.personal-task-copy strong{overflow:hidden;text-overflow:ellipsis;font-size:11px;white-space:nowrap}.personal-task-copy small{color:#8994a6;font-size:9px}.personal-task.completed .personal-task-copy strong{color:#9aa3b2;text-decoration:line-through}.personal-due{display:flex;align-items:center;gap:5px;color:#788498;font-size:9px;white-space:nowrap}.todo-side{display:grid;gap:14px}.todo-side>.panel{padding:18px}.focus-ring{display:grid;grid-template-columns:145px minmax(0,1fr);gap:20px;align-items:center}.progress-ring{position:relative;width:140px;height:140px}.progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:9}.ring-bg{stroke:#edf0f4}.ring-value{stroke:var(--primary);stroke-linecap:round}.progress-ring>span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;justify-items:center;gap:3px}.progress-ring strong{font-size:22px}.progress-ring small{color:#8b96a7;font-size:8px}.focus-stats{display:grid;gap:11px}.focus-stats>span{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:8px;border-bottom:1px solid #edf0f4}.focus-stats strong{font-size:14px}.focus-stats small{color:#8893a5;font-size:9px}.meeting-list{display:grid}.meeting-list>div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;padding:10px 0;border-top:1px solid #edf0f4}.meeting-list>div>span{min-height:40px;display:grid;place-items:center;align-content:center;border-radius:8px;color:#3d65ce;background:var(--primary-soft)}.meeting-list>div>span strong{font-size:12px}.meeting-list>div>span small{font-size:8px}.meeting-list p{display:grid;align-content:center;gap:4px}.meeting-list p strong{font-size:10px}.meeting-list p small{color:#8e98a8;font-size:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:20px;background:#131c2d70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(680px,100%);max-height:calc(100vh - 40px);display:grid;gap:15px;overflow-y:auto;padding:22px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 24px 70px #141d2e38}.modal-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.modal-card header h2{font-size:17px}.modal-card header p{margin-top:4px;color:var(--muted);font-size:10px}.modal-card header button{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:7px;background:#f1f3f7;color:#718097}.modal-card>label,.form-grid label{display:grid;gap:6px}.modal-card label>span{color:#5d687d;font-size:10px;font-weight:650}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-span-2{grid-column:1 / -1}.checkbox-field{display:flex!important;grid-auto-flow:column;justify-content:start;align-items:center;gap:8px!important}.checkbox-field input{width:16px;min-height:16px;accent-color:var(--primary)}.modal-card footer{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.modal-actions>span{flex:1}.danger-button{min-height:36px;padding:8px 13px;border:1px solid #f0b9b9;border-radius:9px;color:#c84646;background:#fff5f5;font-size:12px;font-weight:650}.danger-button:hover{border-color:#e58d8d;background:var(--red-soft)}.empty-state{min-height:110px;display:grid;place-items:center;align-content:center;gap:8px;color:#9ba4b3;font-size:10px}.toast-notice{position:fixed;right:24px;bottom:24px;z-index:100;display:flex;align-items:center;gap:8px;padding:11px 15px;border:1px solid #bce5d7;border-radius:10px;color:#14775c;background:#f0fbf7;font-size:11px;font-weight:650;box-shadow:var(--shadow)}.nav-scrim{display:none}@media(max-width:1160px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid,.lower-grid,.todo-layout{grid-template-columns:1fr}.todo-side{grid-template-columns:1fr 1fr}.project-detail-grid{grid-template-columns:1fr}.development-hero{align-items:flex-start;flex-direction:column}.development-stats{width:100%}.data-grid{grid-template-columns:1fr}.data-side{grid-template-columns:1fr 1fr}.search-box{display:none}}@media(max-width:860px){.app-shell{display:block}.app-sidebar{transform:translate(-105%);transition:transform .2s ease;box-shadow:12px 0 34px #151f3224}.app-sidebar.is-open{transform:translate(0)}.app-main{grid-column:auto}.nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;display:block;border:0;background:#141d2d52}.mobile-menu{display:grid;place-items:center}.topbar{padding:10px 18px}.page-content{padding:20px 18px 32px}.projects-layout{grid-template-columns:1fr}.project-list-panel{position:static}.project-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.kanban-board{grid-template-columns:repeat(4,240px)}.ledger-toolbar{align-items:flex-start;flex-direction:column}.ledger-actions{width:100%;justify-content:space-between}}@media(max-width:620px){.topbar{gap:8px}.page-heading{min-width:0}.page-heading h1{font-size:16px}.page-heading p,.icon-button{display:none}.primary-button{padding-inline:10px}.welcome-strip{align-items:flex-start}.welcome-actions{display:none}.welcome-strip h2{font-size:21px}.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{min-height:92px;padding:12px}.metric-icon{width:32px;height:32px}.metric-copy strong{font-size:20px}.portfolio-row{grid-template-columns:minmax(190px,1.4fr) minmax(110px,.8fr) 65px;min-width:430px}.portfolio-row>span:nth-child(2){display:none}.portfolio-table{overflow-x:auto}.project-card-list{grid-template-columns:1fr}.detail-title-row,.todo-header,.wbs-summary{display:grid}.detail-actions{justify-content:flex-start}.detail-metrics{grid-template-columns:1fr 1fr}.stage-track{justify-content:start}.todo-side{grid-template-columns:1fr}.personal-task{grid-template-columns:22px minmax(0,1fr) auto 28px}.personal-task .priority{display:none}.view-toolbar,.wbs-toolbar{align-items:flex-start;flex-direction:column}.wbs-toolbar label{min-width:100%;width:100%;display:grid}.baseline-info{flex-wrap:wrap}.wbs-summary-metrics{width:100%;justify-content:space-between;gap:12px}.wbs-summary-metrics>span{text-align:left}.form-grid{grid-template-columns:1fr}.form-span-2{grid-column:auto}.development-stats,.data-summary,.data-side{grid-template-columns:1fr 1fr}.development-hero,.data-hero{align-items:flex-start;flex-direction:column}.ledger-tabs{width:100%;overflow-x:auto}.ledger-tabs button{white-space:nowrap}.ledger-actions{align-items:stretch;flex-direction:column}.ledger-actions select{width:100%;max-width:none}.export-list>div{grid-template-columns:36px minmax(0,1fr) auto;padding:10px 0}.export-list>div>em{display:none}.export-list .secondary-button{grid-column:2 / -1;width:fit-content}.modal-card{padding:17px}.modal-actions{flex-wrap:wrap}}
