:root{--ink:#15223a;--muted:#708098;--line:#e6eaf1;--panel:#fff;--canvas:#f4f6fa;--primary:#5741e3;--primary-2:#7462ef;--cyan:#19bdb4;--amber:#f5a524;--red:#ef5d68;--green:#25a974;--navy:#111a2d;--shadow:0 8px 30px #1a253c14}*{box-sizing:border-box}html{font-size:16px}body{color:var(--ink);background:var(--canvas);margin:0;font:14px/1.55 Inter,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}.app-shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#fff;z-index:20;flex-direction:column;height:100vh;padding:26px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:0 8px 28px;display:flex}.brand-mark{background:linear-gradient(145deg, var(--primary-2), var(--primary));border-radius:11px;place-items:center;width:38px;height:38px;font-size:21px;font-weight:900;display:grid;box-shadow:0 8px 22px #5741e366}.brand strong{letter-spacing:.02em;font-size:17px;display:block}.brand span{color:#8f9bb1;margin-top:1px;font-size:12px;display:block}.nav{gap:7px;display:grid}.nav a{color:#99a5b9;border-radius:9px;align-items:center;gap:11px;padding:11px 12px;font-size:14px;text-decoration:none;transition:all .2s;display:flex}.nav a:hover{color:#fff;background:#ffffff0f}.nav a.active{color:#fff;box-shadow:inset 3px 0 var(--primary-2);background:linear-gradient(90deg,#5741e36b,#5741e321)}.nav-icon{text-align:center;width:19px;font-size:18px}.sidebar-foot{color:#69758b;border-top:1px solid #ffffff12;margin-top:auto;padding:14px 8px 0;font-size:12px}.system-chip{color:#aab4c5;margin-bottom:5px}.system-chip span{background:#3ad29f;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 4px #3ad29f1a}.sidebar-foot p{margin:4px 0 0}.main{min-width:0}.topbar{border-bottom:1px solid var(--line);z-index:15;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffed;justify-content:space-between;align-items:center;height:72px;padding:0 28px;display:flex;position:sticky;top:0}.breadcrumb{align-items:center;gap:9px;display:flex}.breadcrumb span{color:var(--muted)}.breadcrumb b{color:#c0c7d2}.breadcrumb strong{font-size:15px}.top-actions{align-items:center;gap:10px;display:flex}.global-search{border:1px solid var(--line);color:#8c98aa;background:#f8f9fb;border-radius:9px;align-items:center;gap:8px;width:280px;height:38px;padding:0 10px;display:flex}.global-search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1}kbd{color:#8a95a5;background:#fff;border:1px solid #d9dee8;border-radius:5px;padding:1px 5px;font-size:11px}.icon-btn{color:var(--ink);background:0 0;border:0;border-radius:9px;width:38px;height:38px}.icon-btn:hover{background:#f0f2f7}.notification-btn{font-size:20px;position:relative}.notification-btn i{background:var(--red);color:#fff;border-radius:50%;place-items:center;width:16px;height:16px;font-size:10px;font-style:normal;display:grid;position:absolute;top:-1px;right:-1px}.avatar{color:#fff;background:linear-gradient(140deg,#18253f,#53617b);border-radius:10px;place-items:center;width:35px;height:35px;font-weight:700;display:grid}.user-meta{min-width:74px;font-size:12px;display:grid}.user-meta span{color:var(--muted);font-size:11px}.menu-btn{display:none}.content{max-width:1720px;margin:auto;padding:26px 28px 40px}.page-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.03em;margin:0 0 4px;font-size:clamp(24px,2.3vw,32px);line-height:1.2}.page-head p{color:var(--muted);margin:0;font-size:14px}.head-actions{flex-wrap:wrap;gap:9px;display:flex}.btn{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-weight:650;display:inline-flex}.btn:hover{border-color:#c8cfe0;box-shadow:0 3px 10px #1822370f}.btn.primary{color:#fff;border-color:var(--primary);background:var(--primary);box-shadow:0 7px 18px #5741e333}.btn.primary:hover{background:#4935d3}.btn.danger{color:var(--red)}.btn.sm{min-height:32px;padding:5px 10px;font-size:13px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px;display:grid}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:18px;position:relative;overflow:hidden;box-shadow:0 2px 6px #1a253c05}.kpi:after{content:"";background:var(--kpi-tint,#f0edff);border-radius:50%;width:62px;height:62px;position:absolute;top:-18px;right:-18px}.kpi-label{color:var(--muted);margin-bottom:8px;font-weight:600}.kpi-value{letter-spacing:-.03em;font-size:29px;font-weight:800;line-height:1}.kpi-trend{color:var(--muted);margin-top:10px;font-size:12px}.kpi-trend b{color:var(--green)}.kpi-alert b{color:var(--red)}.grid-2{grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:16px;margin-bottom:16px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:0 2px 7px #1a253c06}.panel-head{justify-content:space-between;align-items:center;gap:12px;padding:17px 19px 13px;display:flex}.panel-head h2{margin:0;font-size:16px}.panel-head p{color:var(--muted);margin:2px 0 0;font-size:12px}.panel-link{color:var(--primary);background:0 0;border:0;font-weight:650}.lifecycle-wrap{padding:5px 19px 20px;overflow-x:auto}.lifecycle{grid-template-columns:repeat(8,minmax(95px,1fr));min-width:850px;padding-top:18px;display:grid;position:relative}.lifecycle:before{content:"";background:#e5e8ef;height:2px;position:absolute;top:34px;left:6.2%;right:6.2%}.stage-node{text-align:center;cursor:pointer;position:relative}.stage-dot{width:33px;height:33px;box-shadow:0 0 0 1px var(--line);color:#fff;z-index:1;background:#dfe4ed;border:5px solid #fff;border-radius:50%;place-items:center;margin:0 auto 9px;font-size:11px;font-weight:800;display:grid;position:relative}.stage-node.active .stage-dot{background:var(--primary);box-shadow:0 0 0 1px var(--primary), 0 0 0 7px #5741e314}.stage-node.done .stage-dot{background:var(--cyan)}.stage-node b{font-size:13px;display:block}.stage-node small{color:var(--muted);font-size:11px}.stage-node em{color:var(--primary);background:#f2efff;border-radius:9px;margin-top:6px;padding:2px 7px;font-size:11px;font-style:normal;display:inline-block}.health-list{gap:14px;padding:0 19px 16px;display:grid}.health-row{grid-template-columns:92px minmax(0,1fr) 35px;align-items:center;gap:10px;display:grid}.health-row span{color:var(--muted)}.bar{background:#eef1f6;border-radius:9px;height:8px;overflow:hidden}.bar i{border-radius:inherit;background:var(--primary);height:100%;display:block}.health-row:nth-child(2) .bar i{background:var(--cyan)}.health-row:nth-child(3) .bar i{background:var(--amber)}.health-row:nth-child(4) .bar i{background:var(--red)}.health-legend{color:var(--muted);background:#f7f8fb;border-radius:9px;margin:5px 19px 19px;padding:12px;font-size:12px}.table-tools{flex-wrap:wrap;justify-content:space-between;gap:10px;padding:0 19px 14px;display:flex}.filter-group{flex-wrap:wrap;gap:8px;display:flex}.input,.select{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:8px;outline:0;padding:8px 11px}.input:focus,.select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5741e317}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:850px}th,td{text-align:left;border-top:1px solid var(--line);vertical-align:middle;padding:13px 15px}th{color:var(--muted);background:#fafbfc;font-size:12px;font-weight:700}td{font-size:13px}tbody tr{transition:all .15s}tbody tr:hover{background:#fafaff}.project-name{cursor:pointer;align-items:center;gap:10px;display:flex}.project-code{width:35px;height:35px;color:var(--primary);background:#eeeaff;border-radius:8px;flex:none;place-items:center;font-size:11px;font-weight:850;display:grid}.project-name strong{font-size:13px;display:block}.project-name small{color:var(--muted)}.chip,.status{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.chip{color:#5f6b7e;background:#f0f2f6}.status.green{color:#14855c;background:#eaf8f2}.status.amber{color:#a96b00;background:#fff5de}.status.red{color:#c33f4d;background:#ffedef}.status.purple{color:var(--primary);background:#f0edff}.progress-cell{min-width:110px}.progress-label{color:var(--muted);justify-content:space-between;margin-bottom:5px;font-size:11px;display:flex}.mini-bar{background:#eceff4;border-radius:5px;height:5px;overflow:hidden}.mini-bar i{background:var(--primary);height:100%;display:block}.due{color:var(--muted)}.due.late{color:var(--red);font-weight:700}.empty{text-align:center;color:var(--muted);padding:45px 20px}.project-hero{color:#fff;background:linear-gradient(120deg,#151f34 0%,#25304c 70%,#342f73 100%);border-radius:14px;margin-bottom:16px;padding:19px 21px;position:relative;overflow:hidden}.project-hero:after{content:"";border:1px solid #ffffff24;border-radius:50%;width:260px;height:260px;position:absolute;top:-130px;right:-70px;box-shadow:0 0 0 34px #ffffff06,0 0 0 70px #ffffff05}.back-link{color:#b6c0d3;background:0 0;border:0;margin-bottom:13px;padding:0}.project-hero-row{z-index:1;justify-content:space-between;align-items:flex-end;gap:20px;display:flex;position:relative}.project-hero h1{margin:0 0 7px;font-size:25px}.project-hero p{color:#b9c4d5;margin:0}.project-hero-meta{gap:25px;display:flex}.project-hero-meta div{display:grid}.project-hero-meta span{color:#97a4bb;font-size:11px}.project-hero-meta b{margin-top:3px;font-size:14px}.detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,.62fr);gap:16px;display:grid}.tabs{border-bottom:1px solid var(--line);gap:4px;padding:0 16px;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:13px 11px 11px}.tab.active{color:var(--primary);border-color:var(--primary);font-weight:700}.tab-content{padding:18px}.gate-card{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}.gate-head{background:#fafbfc;align-items:center;gap:12px;padding:12px 13px;display:flex}.gate-check{color:#fff;background:#e7eaf0;border-radius:6px;flex:none;place-items:center;width:22px;height:22px;display:grid}.gate-check.done{background:var(--green)}.gate-head strong{flex:1}.gate-head small{color:var(--muted)}.gate-body{justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;display:flex}.gate-body p{color:var(--muted);margin:0}.task-list{gap:8px;display:grid}.task-item{border:1px solid var(--line);border-radius:9px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;display:grid}.task-item input{width:18px;height:18px;accent-color:var(--primary)}.task-item strong{font-size:13px;display:block}.task-item small{color:var(--muted)}.side-card{padding:17px}.side-card h3{margin:0 0 12px;font-size:15px}.side-card+.side-card{border-top:1px solid var(--line)}.mini-info{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mini-info div{display:grid}.mini-info span{color:var(--muted);font-size:11px}.mini-info b{margin-top:2px;font-size:13px}.activity{grid-template-columns:12px 1fr;gap:9px;margin:11px 0;display:grid}.activity i{background:var(--primary);border-radius:50%;width:8px;height:8px;margin-top:6px;box-shadow:0 0 0 4px #efecff}.activity p{margin:0;font-size:12px}.activity span{color:var(--muted);font-size:11px}.workflow-canvas{padding:18px;overflow-x:auto}.workflow-row{border-bottom:1px solid var(--line);grid-template-columns:140px repeat(8,minmax(145px,1fr));min-width:1320px;display:grid}.workflow-row:first-child{border-top:1px solid var(--line)}.lane-label{border-right:1px solid var(--line);background:#f8f9fb;padding:14px;font-weight:750}.phase-cell{border-right:1px solid var(--line);padding:10px 8px}.phase-cell.head{color:#fff;background:#19243a;padding:13px 9px}.phase-cell.head span{color:#98a6bc;margin-top:2px;font-size:11px;display:block}.flow-pill{color:#4936c4;border-left:3px solid var(--primary);background:#f0edff;border-radius:7px;margin:4px 0;padding:8px 9px;font-size:12px}.flow-pill.optional{color:#68758a;background:#f3f5f8;border-color:#abb4c4}.flow-pill.control{color:#087c70;border-color:var(--cyan);background:#e9faf6}.role-grid,.template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.role-card,.template-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:17px}.role-card-top{align-items:center;gap:12px;margin-bottom:11px;display:flex}.role-avatar{color:#fff;background:var(--primary);border-radius:10px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.role-card h3,.template-card h3{margin:0;font-size:15px}.role-card p,.template-card p{color:var(--muted);margin:3px 0 12px;font-size:12px}.role-card ul{color:#4f5e73;margin:0;padding-left:18px;font-size:13px}.role-card li{margin:5px 0}.raci-wrap{margin-top:16px}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.raci{border-radius:6px;place-items:center;width:27px;height:27px;font-size:11px;font-weight:850;display:grid}.raci.r{color:#fff;background:var(--primary)}.raci.a{color:#fff;background:var(--navy)}.raci.c{color:#087c70;background:#dff7f3}.raci.i{color:#7b8798;background:#eef0f4}.template-icon{width:42px;height:48px;color:var(--primary);background:#f0edff;border-radius:7px;place-items:center;margin-bottom:14px;font-weight:850;display:grid;position:relative}.template-icon:after{content:"";border-top:0 solid #0000;border-bottom:10px solid #d9d2ff;border-left:10px solid #0000;border-right:0 solid #0000;position:absolute;top:0;right:0}.template-meta{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding-top:12px;font-size:11px;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a101e8c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-backdrop[hidden]{display:none}.modal{background:#fff;border-radius:14px;width:min(760px,100%);max-height:90vh;padding:23px;position:relative;overflow:auto;box-shadow:0 25px 70px #080e1c59}.modal h2{margin:0 0 4px}.modal-intro{color:var(--muted);margin:0 0 19px}.modal-close{background:#f2f4f7;border:0;border-radius:8px;width:34px;height:34px;font-size:21px;position:absolute;top:12px;right:14px}.form-grid{grid-template-columns:1fr 1fr;gap:13px;display:grid}.form-field{gap:6px;display:grid}.form-field.full{grid-column:1/-1}.form-field label{font-size:12px;font-weight:700}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:8px;outline:0;width:100%;padding:9px 10px}.form-field textarea{resize:vertical;min-height:78px}.modal-actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.check-list{gap:9px;margin:15px 0;display:grid}.check-line{border:1px solid var(--line);border-radius:8px;align-items:flex-start;gap:10px;padding:10px;display:flex}.check-line input{width:18px;height:18px;accent-color:var(--primary)}.toast{z-index:80;color:#fff;box-shadow:var(--shadow);opacity:0;pointer-events:none;background:#172137;border-radius:9px;padding:12px 16px;transition:all .25s;position:fixed;bottom:24px;right:24px;transform:translateY(25px)}.toast.show{opacity:1;transform:none}.lifecycle.three{grid-template-columns:minmax(150px,1fr) minmax(100px,.55fr) minmax(220px,1.2fr) minmax(100px,.55fr) minmax(150px,1fr);align-items:start;min-width:820px}.lifecycle.three:before{display:none}.lifecycle.three .stage-node{padding:0 8px}.handover{text-align:center;color:var(--primary);margin-top:21px;position:relative}.handover:before,.handover:after{content:"";background:#c9c3f6;width:22%;height:1px;position:absolute;top:10px}.handover:before{left:0}.handover:after{right:0}.handover span{background:#f0edff;border-radius:12px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-block}.handover small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.substage-mini{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:9px;display:flex}.substage-mini i{color:#778296;background:#f0f2f6;border-radius:8px;padding:2px 6px;font-size:10px;font-style:normal}.substage-mini i.on{color:#fff;background:var(--primary)}.cell-sub{max-width:230px;color:var(--muted);white-space:normal;margin-top:4px;display:block}.urgency{color:#697589;background:#eef1f5;border-radius:16px;align-items:center;padding:3px 9px;font-size:11px;font-weight:800;display:inline-flex}.urgency.high{color:#b36b00;background:#fff1d7}.urgency.urgent{color:#c93745;background:#ffeaed}.substage-panel{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:14px 17px;display:flex}.substage-panel>div:first-child{display:grid}.substage-panel>div:first-child span{color:var(--muted);font-size:11px}.substage-track{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.substage-btn,.substage-add{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:18px;padding:7px 11px;font-size:12px;font-weight:700}.substage-btn.active{color:#fff;border-color:var(--primary);background:var(--primary);box-shadow:0 5px 14px #5741e32e}.substage-add{color:var(--primary);border-style:dashed}.side-copy{color:var(--muted);margin:-4px 0 16px;font-size:12px}.tag-list{flex-wrap:wrap;gap:5px;display:flex}.privacy-note{color:#90610a;background:#fff7e6;border:1px solid #f5dfae;border-radius:8px;padding:11px 13px;font-size:12px}.deliverable-item{grid-template-columns:34px minmax(0,1fr) auto}.upload-btn{cursor:pointer}.multi-options{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;gap:7px;min-height:40px;padding:8px;display:flex}.multi-options>span{color:var(--muted);padding:3px}.multi-check{cursor:pointer}.multi-check input{opacity:0;pointer-events:none;position:absolute}.multi-check span{border:1px solid var(--line);color:var(--muted);border-radius:15px;padding:5px 9px;font-size:12px;display:block}.multi-check input:checked+span{color:var(--primary);border-color:var(--primary);background:#f0edff}.three-flow-detail{grid-template-columns:1fr .82fr 1fr .82fr 1fr;gap:10px;padding:4px 18px 20px;display:grid}.three-flow-detail article{border:1px solid var(--line);background:#fff;border-radius:10px;padding:15px}.three-flow-detail article>span{color:var(--primary);font-weight:900}.three-flow-detail h3{margin:5px 0;font-size:14px}.three-flow-detail p{color:var(--muted);margin:0 0 8px;font-size:12px}.three-flow-detail b{color:var(--primary);font-size:11px}.three-flow-detail .review-card{color:#fff;background:#171f33;border-color:#171f33}.review-card small{color:#8f9bb2;letter-spacing:.12em}.review-card p{color:#aeb8c9}.status-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 18px;display:grid}.status-cards article{border:1px solid var(--line);border-radius:10px;gap:12px;padding:15px;display:flex}.status-cards h3{margin:0 0 4px;font-size:14px}.status-cards p{color:var(--muted);margin:0;font-size:12px}.status-num{color:#fff;background:var(--primary);border-radius:8px;flex:none;place-items:center;width:31px;height:31px;font-weight:850;display:grid}.custom-state-card .status-num{background:var(--cyan)}.hero-edit{color:#fff;z-index:2;background:#ffffff14;border-color:#ffffff3d;align-self:flex-end;position:relative}.hero-edit:hover{color:#fff;background:#ffffff26;border-color:#ffffff73}.owner-badge{color:#087c70;background:#e1f8f3;border-radius:14px;padding:3px 8px;font-size:11px;font-weight:750}.owner-highlight{background:#effbf8;border:1px solid #cceee8;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin:-3px 0 17px;padding:10px 11px;display:flex}.owner-highlight b{color:#087c70}.owner-highlight span{color:var(--muted);font-size:11px}.gate-card.locked{opacity:.68}.gate-card button:disabled{cursor:not-allowed;box-shadow:none}.sow-checklist{border-top:1px solid var(--line);background:#fcfcff;grid-template-columns:1fr 1fr;gap:7px 14px;padding:12px 14px 14px 47px;display:grid}.sow-title{color:var(--ink);grid-column:1/-1;justify-content:space-between;margin-bottom:3px;display:flex}.sow-title span{color:var(--primary);font-weight:800}.sow-checklist label{cursor:pointer;color:#4e5d72;border-radius:7px;align-items:flex-start;gap:8px;padding:7px;font-size:12px;display:flex}.sow-checklist label:hover{background:#f2f0ff}.sow-checklist input{accent-color:var(--primary);margin-top:2px}.sow-checklist label b{color:var(--primary);margin-right:5px}.deliverable-block{border:1px solid var(--line);border-radius:10px;overflow:hidden}.deliverable-block .task-item{border:0;border-radius:0}.file-list{flex-wrap:wrap;gap:6px;padding:0 12px 11px 55px;display:flex}.file-list span{color:#5141b7;background:#f0edff;border-radius:6px;align-items:center;gap:6px;padding:4px 7px;font-size:11px;display:inline-flex}.file-list button{color:#7165a8;background:#e0dafd;border:0;border-radius:50%;width:17px;height:17px;padding:0;line-height:1}.file-empty{color:#9aa4b3;padding:0 12px 11px 55px;font-size:11px}.required-files{background:#fff9e8;border-top:1px solid #efe4bb;flex-wrap:wrap;align-items:center;gap:7px;padding:9px 12px;font-size:11px;display:flex}.required-files b{color:#8c6212;margin-right:4px}.required-files span{color:#765813;background:#fff;border:1px solid #eedca2;border-radius:12px;padding:3px 7px}.audit-list{gap:0;display:grid}.audit-list article{grid-template-columns:18px 1fr;gap:9px;padding:0 0 18px;display:grid;position:relative}.audit-list article:not(:last-child):before{content:"";background:#ddd9fa;width:1px;position:absolute;top:14px;bottom:0;left:5px}.audit-dot{background:var(--primary);z-index:1;border-radius:50%;width:11px;height:11px;margin-top:5px;position:relative;box-shadow:0 0 0 4px #efecff}.audit-head{justify-content:space-between;gap:12px;display:flex}.audit-head time{color:var(--muted);font-size:11px}.audit-list p{color:#4d5b70;margin:3px 0;font-size:12px}.audit-list small{color:var(--muted)}.audit-diff{grid-template-columns:1fr 1fr;gap:6px;margin:7px 0;display:grid}.audit-diff span{color:#697589;background:#f7f8fa;border-radius:6px;padding:6px 8px;font-size:11px}.sow-overview{grid-template-columns:repeat(3,1fr);gap:8px;padding:0 18px 18px;display:grid}.sow-overview div{border:1px solid var(--line);border-radius:9px;gap:8px;padding:11px;font-size:12px;display:flex}.sow-overview b{color:var(--primary)}.sow-overview span{color:#56657a}@media (width<=1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-2,.detail-grid{grid-template-columns:1fr}.role-grid,.template-grid{grid-template-columns:repeat(2,1fr)}.global-search{width:210px}}@media (width<=780px){.app-shell{grid-template-columns:1fr}.sidebar{width:232px;transition:all .25s;position:fixed;left:0;transform:translate(-100%);box-shadow:20px 0 60px #0003}.sidebar.open{transform:none}.menu-btn{place-items:center;display:inline-grid}.topbar{height:62px;padding:0 14px}.breadcrumb span,.breadcrumb b,.user-meta,.notification-btn,.global-search kbd{display:none}.global-search{width:150px;height:35px}.content{padding:20px 14px 30px}.page-head{flex-direction:column;align-items:stretch}.page-head .btn{flex:1}.kpi-grid{gap:10px}.kpi{padding:14px}.kpi-value{font-size:25px}.project-hero-row{flex-direction:column;align-items:flex-start}.project-hero-meta{justify-content:space-between;width:100%}.role-grid,.template-grid{grid-template-columns:1fr}.substage-panel{flex-direction:column;align-items:flex-start}.substage-track{justify-content:flex-start}.three-flow-detail,.status-cards,.sow-checklist,.sow-overview{grid-template-columns:1fr}.sow-title{grid-column:auto}.audit-diff{grid-template-columns:1fr}}@media (width<=500px){.global-search{display:none}.kpi-grid{grid-template-columns:1fr 1fr}.kpi-label{font-size:12px}.kpi-trend{font-size:11px}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.project-hero-meta{grid-template-columns:1fr 1fr;gap:12px;display:grid}}.nav button{color:#99a5b9;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;width:100%;padding:11px 12px;font-size:14px;text-decoration:none;transition:all .2s;display:flex}.nav button:hover{color:#fff;background:#ffffff0f}.nav button.active{color:#fff;box-shadow:inset 3px 0 var(--primary-2);background:linear-gradient(90deg,#5741e36b,#5741e321)}.nav button span{text-align:center;width:19px;font-size:18px}.notice{background:#fff;border:1px solid #f2c5c0;border-radius:12px;padding:24px}.notice p{color:var(--muted)}.toast{align-items:center;gap:18px;display:flex}.toast button{color:#fff;background:0 0;border:0;font-size:18px}.project-modal{width:min(760px,100%)}.project-files .file-row{grid-template-columns:42px minmax(0,1fr) auto;display:grid}.file-icon{width:38px;height:42px;color:var(--primary);background:#f0edff;border-radius:7px;place-items:center;font-size:10px;font-weight:850;display:grid}.file-row>span{gap:7px;display:flex}.file-row small{color:var(--muted);display:block}.section-title{justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:15px;display:flex}.section-title h3{margin:0}.section-title p{color:var(--muted);margin:3px 0 0;font-size:12px}.hero-tags{gap:6px;margin-bottom:7px;display:flex}.lifecycle-panel{margin-bottom:16px}.lifecycle.four{grid-template-columns:minmax(115px,1fr) minmax(72px,.6fr) minmax(115px,1fr) minmax(72px,.6fr) minmax(115px,1fr) minmax(72px,.6fr) minmax(115px,1fr);align-items:start;min-width:760px}.lifecycle.four:before{content:none}.lifecycle.four .stage-node{padding:0 8px}.lifecycle.four .stage-filter{appearance:none;box-shadow:none;font:inherit;color:inherit;background:0 0;border:0;border-radius:8px}.lifecycle.four .stage-filter:hover{background:#f6f4ff}.lifecycle.four .stage-filter:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.workflow-overview>.panel-head{align-items:flex-start;padding:22px 24px 16px}.workflow-summary{color:#5946b5;background:#f7f5ff;border:1px solid #e5e0fc;border-radius:20px;flex:none;padding:6px 11px;font-size:11px;font-weight:700}.workflow-summary>span{color:#bbb2de;margin:0 5px}.workflow-overview .lifecycle-wrap{padding:0 24px 22px}.workflow-overview .lifecycle.four{grid-template-columns:minmax(0,1fr) minmax(80px,.65fr) minmax(0,1fr) minmax(80px,.65fr) minmax(0,1fr) minmax(80px,.65fr) minmax(0,1fr);align-items:stretch;min-width:0;padding-top:8px}.workflow-overview .lifecycle.four .stage-filter{background:#fbfaff;border:1px solid #eeebf8;border-radius:12px;padding:15px 6px 12px;transition:background .15s,border-color .15s,box-shadow .15s}.workflow-overview .lifecycle.four .stage-filter:hover{background:#f3efff;border-color:#c8bff5;box-shadow:0 4px 12px #5741e312}.workflow-overview .stage-dot{margin-bottom:12px}.workflow-overview .stage-node small{margin-top:3px;display:block}.workflow-overview .stage-node em{margin-top:9px}.workflow-overview .handover{align-self:center;margin:0;padding:0 3px}.workflow-overview .handover:before,.workflow-overview .handover:after{content:none}.workflow-overview .handover span{background:0 0;padding:4px 6px;font-size:11px}.workflow-overview .handover small{margin-top:0}.workflow-detail-head{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:18px 24px 14px;display:flex}.workflow-detail-head h3{margin:0;font-size:13px}.workflow-detail-head>span{color:#64748b;font-size:11px}.four-flow-detail{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:0 24px 24px;display:grid}.workflow-stage{--phase-color:#53647e;--phase-tint:#f0f3f8;border:1px solid var(--line);border-top:3px solid var(--phase-color);background:#fff;border-radius:12px;flex-direction:column;min-width:0;padding:20px 18px 16px;display:flex}.workflow-stage-presales{--phase-color:#6850cd;--phase-tint:#f3efff}.workflow-stage-development{--phase-color:#336ca8;--phase-tint:#edf5fe}.workflow-stage-aftersales{--phase-color:#127b70;--phase-tint:#edf8f5}.workflow-stage-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.workflow-step{width:38px;height:38px;color:var(--phase-color);background:var(--phase-tint);font-variant-numeric:tabular-nums;border-radius:10px;flex:none;place-items:center;font-size:16px;font-weight:800;display:grid}.workflow-owner{color:#617087;text-align:right;font-size:11px}.workflow-stage>h3{letter-spacing:.02em;margin:0 0 7px;font-size:19px}.workflow-stage-intro{color:#65748a;margin:0;font-size:12px;line-height:1.8}.workflow-stage>ul{gap:9px;margin:18px 0 22px;padding:0;list-style:none;display:grid}.workflow-stage li{color:#46566e;overflow-wrap:anywhere;padding-left:13px;font-size:12px;line-height:1.8;position:relative}.workflow-stage li:before{content:"";background:var(--phase-color);border-radius:50%;width:4px;height:4px;position:absolute;top:9px;left:0}.workflow-exit{background:#f6f8fb;border:1px solid #0000;border-radius:9px;margin-top:auto;padding:14px 12px}.workflow-exit-label{color:#65748a;letter-spacing:.06em;font-size:10px;font-weight:700;display:block}.workflow-exit h4{color:#263750;margin:5px 0 6px;font-size:13px}.workflow-exit p{color:#5e6e84;margin:0;font-size:11px;line-height:1.85}.workflow-gate{background:#f7f5ff;border-color:#e1dafa}.workflow-gate .workflow-exit-label{color:#6953bd}.workflow-gate h4{color:#4d3a92}.workflow-sow{margin-top:18px}.workflow-sow .panel-head{padding:20px 24px 16px}.workflow-section-tag{color:#64748b;font-size:11px}.workflow-sow .sow-overview{gap:10px;padding:0 24px 24px}.workflow-sow .sow-overview>div{background:#fcfcfe;align-items:center;gap:12px;padding:13px 14px}.workflow-sow .sow-overview b{color:#8b80b3;font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}@media (width<=1250px){.four-flow-detail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1050px) and (width>=781px),(width<=650px){.workflow-overview .lifecycle.four{grid-template-columns:minmax(0,1fr);gap:6px}.workflow-overview .lifecycle.four .stage-filter{text-align:left;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:0 12px;padding:12px 14px;display:grid}.workflow-overview .stage-dot{grid-row:1/3;margin:0}.workflow-overview .stage-node small{grid-column:2;margin-top:1px}.workflow-overview .stage-node em{grid-area:1/3/3;margin:0}.workflow-overview .handover{justify-content:center;align-items:center;gap:6px;display:flex}.workflow-overview .handover:before{content:"↓";color:#8b80b3;background:0 0;width:auto;height:auto;position:static}.workflow-overview .handover span{padding:2px 0;font-size:10px}}@media (width<=650px){.workflow-overview>.panel-head{flex-direction:column;gap:10px;padding:18px 16px 12px}.workflow-overview .lifecycle-wrap{padding:0 16px 18px}.workflow-detail-head{flex-direction:column;align-items:flex-start;gap:4px;padding:16px}.four-flow-detail{grid-template-columns:minmax(0,1fr);gap:12px;padding:0 16px 16px}.workflow-stage{padding:18px 16px 16px}.workflow-stage-top{margin-bottom:12px}.workflow-stage>ul{margin:14px 0 18px}.workflow-sow .panel-head{flex-direction:column;align-items:flex-start;gap:7px;padding:18px 16px 14px}.workflow-sow .sow-overview{grid-template-columns:minmax(0,1fr);padding:0 16px 16px}}.role-duties{flex-wrap:wrap;gap:5px;display:flex}.template-meta .panel-link:disabled{opacity:.55;cursor:not-allowed}.modal .form-grid{padding:0}.form-field input:disabled{color:#66737e;background:#f2f4f7}.substage-panel .form-grid{flex:1;width:min(100%,760px)}.required-files .form-grid{flex:1;width:100%;margin-top:6px}.required-files .form-field{min-width:180px;font-size:12px}.file-list button:disabled{opacity:.45;cursor:not-allowed}.topbar .global-search input{width:100%}.status button{border:0}@media (width<=500px){.project-files .file-row{grid-template-columns:36px 1fr}.project-files .file-row>span{grid-column:2}}.auth-page{background:radial-gradient(at 10% 38%,#eeeafb 0,#0000 48%),radial-gradient(at 92% 82%,#eaf3f6 0,#0000 40%),#f7f8fc;flex-direction:column;min-height:100svh;padding:32px clamp(24px,5vw,80px) 22px;display:flex}.auth-header{justify-content:space-between;align-items:center;gap:16px;width:min(1160px,100%);margin:0 auto;display:flex}.auth-brand{align-items:center;gap:12px;display:flex}.auth-brand .brand-mark{color:#fff;border-radius:13px;flex:none;width:44px;height:44px;box-shadow:0 6px 16px #5741e32e}.auth-brand>div:last-child{gap:2px;display:grid}.auth-brand strong{color:#24243e;letter-spacing:.01em;font-size:18px}.auth-brand span,.auth-workspace{color:#6e7489;font-size:12px}.auth-layout{flex:1;grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:80px;width:min(1040px,100%);margin:0 auto;padding:64px 0;display:grid}.auth-intro{min-width:0;padding-bottom:8px}.auth-eyebrow{color:#7b70ab;letter-spacing:.12em;align-items:center;gap:9px;font-size:12px;font-weight:600;display:inline-flex}.auth-eyebrow:before{content:"";background:#aaa0d7;border-radius:2px;width:22px;height:2px}.auth-intro h2{color:#27283f;letter-spacing:-.035em;margin:18px 0;font-size:clamp(34px,3.5vw,48px);font-weight:750;line-height:1.45}.auth-intro h2 span{color:#6753ba}.auth-intro>p{color:#666d85;margin:0;font-size:15px;line-height:1.95}.auth-phases{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:44px 0 0;padding:0;list-style:none;display:grid;position:relative}.auth-phases:before{content:"";background:#dcd8ec;height:1px;position:absolute;top:15px;left:16px;right:calc(25% - 16px)}.auth-phases li{justify-items:start;gap:5px;min-width:0;display:grid;position:relative}.auth-phase-index{color:#766b97;font-variant-numeric:tabular-nums;background:#f7f6fc;border:1px solid #dfdbef;border-radius:50%;place-items:center;width:31px;height:31px;margin-bottom:8px;font-size:10px;font-weight:650;display:grid}.auth-phases strong{color:#5f6079;font-size:12px;font-weight:600}.auth-phases small{color:#697087;white-space:nowrap;font-size:11px}.auth-card{background:#fff;border:1px solid #e8e6f0;border-radius:20px;width:100%;padding:36px;box-shadow:0 20px 60px #28224e11,0 2px 5px #28224e05}.auth-entry-icon{color:#7b65cb;background:#f7f4ff;border:1px solid #eae5fc;border-radius:13px;place-items:center;width:46px;height:46px;display:grid}.auth-entry-icon svg{width:23px;height:23px}.auth-copy{margin:24px 0 28px}.auth-welcome{color:#6e7488;font-size:12px}.auth-copy h1{color:#2d2e43;letter-spacing:.02em;margin:6px 0 9px;font-size:27px;line-height:1.4}.auth-copy p{color:#6f7589;margin:0;font-size:12px;line-height:1.8}.auth-card form{gap:18px;display:grid}.auth-card form label{color:#5b6075;gap:8px;font-size:12px;font-weight:600;display:grid}.auth-input{background:#fcfcfe;border:1px solid #e3e5ee;border-radius:10px;align-items:center;gap:10px;min-width:0;padding:0 13px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.auth-input>svg{color:#a1a4b6;flex:none;width:18px;height:18px}.auth-card input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:none;padding:13px 0;font-size:13px;font-weight:400}.auth-card input::placeholder{color:#a6aabb}.auth-input:focus-within{background:#fff;border-color:#a99ae8;box-shadow:0 0 0 3px #5741e312}.auth-card .auth-submit{border-radius:10px;justify-content:center;gap:12px;width:100%;min-height:47px;padding:12px 18px;font-size:14px;font-weight:600;transition:background .15s,box-shadow .15s;box-shadow:0 6px 16px #5741e326}.auth-card form .auth-submit{margin-top:6px}.auth-submit>span:last-child:not(:first-child){font-size:18px;line-height:1}.auth-submit:focus-visible{outline-offset:3px;outline:3px solid #b2a7ec}.auth-submit:disabled{cursor:wait;opacity:.7;box-shadow:none}.auth-sso{gap:14px;display:grid}.auth-login-note{color:#6f768c;text-align:center;margin:0;font-size:11px}.auth-help{color:#6c7388;text-align:center;border-top:1px solid #f0f0f6;justify-content:center;align-items:center;gap:7px;margin-top:28px;padding-top:21px;font-size:11px;line-height:1.7;display:flex}.auth-help svg{color:#a4a0ba;flex:none;width:14px;height:14px}.auth-error{color:#b24b41;background:#fff7f5;border:1px solid #f5d7d2;border-radius:9px;padding:11px 13px;font-size:12px;line-height:1.7}.auth-footer{color:#70778b;text-align:center;letter-spacing:.04em;padding-top:10px;font-size:11px}.auth-loading{color:var(--muted);align-items:center;gap:10px;margin:auto;font-size:13px;display:flex}.auth-loading:before,.auth-spinner{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:15px;height:15px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.btn.refresh-button{color:#747d91;background:#f6f7fb;border-color:#0000;font-weight:500}.refresh-button svg{width:16px;height:16px}.btn.refresh-button:hover{color:var(--primary);box-shadow:none;background:#f2effc;border-color:#e4dff8}.refresh-button:focus-visible{outline:2px solid var(--primary-2);outline-offset:2px}@media (width<=1000px) and (width>=721px){.auth-layout{grid-template-columns:minmax(0,1fr) 380px;gap:36px}.auth-card{padding:30px}.auth-intro h2{font-size:34px}.auth-intro>p{font-size:13px}.auth-phases{gap:6px}.auth-phases small{display:none}.auth-phases strong{font-size:11px}}@media (width<=720px){.auth-page{padding:24px 22px 18px}.auth-header{width:min(440px,100%)}.auth-workspace{display:none}.auth-brand .brand-mark{border-radius:11px;width:38px;height:38px}.auth-brand strong{font-size:16px}.auth-brand span{font-size:10px}.auth-layout{flex:none;grid-template-columns:minmax(0,1fr);gap:27px;width:min(440px,100%);padding:44px 0 32px}.auth-intro{padding:0}.auth-eyebrow{font-size:10px}.auth-intro h2{margin:12px 0 10px;font-size:29px;line-height:1.5}.auth-intro-break,.auth-phases{display:none}.auth-intro>p{font-size:12px;line-height:1.8}.auth-card{border-radius:17px;padding:28px 26px}.auth-copy{margin:20px 0 24px}.auth-copy h1{font-size:24px}.auth-footer{margin-top:auto}}@media (prefers-reduced-motion:reduce){.auth-loading:before,.auth-spinner{animation:none}.auth-input,.auth-card .auth-submit{transition:none}}.user-menu{align-items:center;gap:9px;display:flex}.logout-button{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:12px}.logout-button:hover{color:var(--primary)}.multi-select{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:39px;position:relative}.multi-select[open]{border-color:var(--primary);box-shadow:0 0 0 3px #5741e31a}.multi-select summary{cursor:pointer;min-height:38px;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;padding:9px 34px 9px 10px;font-weight:400;list-style:none;overflow:hidden}.multi-select summary::-webkit-details-marker{display:none}.multi-select summary:after{content:"⌄";color:var(--muted);font-size:18px;position:absolute;top:7px;right:11px}.multi-select>div{z-index:12;border:1px solid var(--line);background:#fff;border-radius:9px;gap:3px;max-height:220px;padding:7px;display:grid;position:absolute;top:calc(100% + 5px);left:-1px;right:-1px;overflow:auto;box-shadow:0 14px 35px #15223a29}.multi-check{color:var(--ink);cursor:pointer;border-radius:7px;flex-direction:row;align-items:center;gap:9px;padding:8px 9px;font-weight:500;display:flex}.multi-check:hover{background:#f5f3ff}.multi-check input{flex:none;width:17px;height:17px;margin:0}.fae-setup{padding:15px 47px;font-size:12px;display:block}.fae-setup>b{margin-bottom:4px;font-size:13px;display:block}.fae-setup>span{width:fit-content;margin-bottom:12px;display:block}.fae-setup .form-grid{grid-template-columns:1fr}.fae-options{flex-wrap:wrap;gap:5px;display:flex}.fae-options .multi-check{border:1px solid var(--line);background:#fafbfc}.fae-save{justify-self:start}.sow-item{min-width:0}.sow-item>label{align-items:center}.sow-item>label span{flex:1;min-width:0}.inline-reason{grid-column:1/-1;grid-template-columns:minmax(160px,1fr) auto auto;align-items:center;gap:7px;padding:0 7px 8px;display:grid}.inline-reason input{border:1px solid var(--line);border-radius:8px;outline:0;width:100%;min-width:0;padding:8px 9px}.inline-reason input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5741e31a}.action-dialog{width:min(480px,100%)}.action-dialog h2{padding-right:38px}.dialog-message{color:var(--muted);white-space:pre-line;margin:12px 0 18px;line-height:1.7}.action-dialog .form-field input,.action-dialog .form-field select,.action-dialog .form-field textarea{background:#fff}.development-plan{margin-bottom:16px;padding:16px 18px;overflow:visible}.development-plan-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:13px;display:flex}.development-plan-head>div{gap:3px;display:grid}.development-plan-head span:not(.status){color:var(--muted);font-size:11px}.development-plan .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.development-status-bar{overflow:visible}.transition-readiness{color:#7c5708;background:#fff9ea;border:1px solid #f1cf7a;border-radius:10px;align-items:center;gap:12px;margin:-7px 0 16px;padding:11px 15px;font-size:12px;display:flex}.transition-readiness strong{flex:none}.transition-readiness.ready{color:#087c70;background:#effbf8;border-color:#bce7df}.substage-add:disabled{cursor:not-allowed;opacity:.5}.project-hero-meta small{color:#c9c2ff;max-width:165px;margin-top:3px;font-size:10px;font-weight:700;display:block}.required-mark{color:var(--red);margin-left:2px;font-weight:850}.btn.suspend{color:#9a6500;background:#fff8e6;border-color:#e9c66e}.btn.suspend:hover{background:#fff3d4;border-color:#d9a93d}.btn.primary.stage-action-button:disabled{opacity:1;color:#7b8494;box-shadow:none;background:#e9edf3;border-color:#d9dee7}.deliverable-info{grid-template-columns:minmax(100px,1fr) auto;align-items:end;gap:7px;padding:0 12px 11px 55px;display:grid}.deliverable-info label{color:var(--muted);grid-column:1/-1;font-size:11px;font-weight:700}.deliverable-info textarea{resize:vertical;border:1px solid var(--line);border-radius:8px;outline:0;width:100%;min-height:58px;padding:8px 10px}.deliverable-info textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5741e31a}.deliverable-info textarea:disabled{color:#788397;background:#f4f5f8}.contract-warning{color:#8b5b00;background:#fff8e7;border:1px solid #f1cf7a;border-radius:7px;margin:0 12px 11px 55px;padding:8px 10px;font-size:11px}.account-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.account-summary article{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;padding:18px 20px;display:flex;box-shadow:0 4px 14px #1b27420a}.account-summary span{color:var(--muted);font-size:13px;font-weight:700}.account-summary strong{color:var(--primary);font-size:25px}.account-person{align-items:center;gap:10px;min-width:190px;display:flex}.account-person>span{color:#fff;background:linear-gradient(145deg,var(--primary),#8c78f1);border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.account-person div{gap:3px;display:grid}.account-person small{color:var(--muted)}.account-roles{flex-wrap:wrap;gap:5px;min-width:150px;display:flex}.scope-select{min-width:145px}.scope-select:disabled{opacity:.6;cursor:wait}.account-table td{vertical-align:middle}.account-table .cell-sub{white-space:normal;overflow-wrap:anywhere;max-width:420px}@media (width<=1100px){.account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.notification-wrap{position:relative}.notification-btn{cursor:pointer}.notification-btn i{width:auto;min-width:17px;padding:0 4px}.notification-panel{z-index:40;border:1px solid var(--line);background:#fff;border-radius:13px;width:min(390px,100vw - 24px);position:absolute;top:46px;right:-8px;overflow:hidden;box-shadow:0 20px 55px #141f3733}.notification-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:15px 16px 12px;display:flex}.notification-head>div{gap:2px;display:grid}.notification-head span{color:var(--muted);font-size:11px}.notification-head>button{background:#f2f4f7;border:0;border-radius:7px;width:28px;height:28px;font-size:18px}.notification-list{max-height:420px;overflow:auto}.notification-item{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #f0f2f5;grid-template-columns:8px minmax(0,1fr);gap:9px;width:100%;padding:13px 16px;display:grid}.notification-item:hover{background:#fafaff}.notification-item.unread{background:#f7f5ff}.notification-item>i{background:0 0;border-radius:50%;width:7px;height:7px;margin-top:7px}.notification-item.unread>i{background:var(--primary)}.notification-item>span{min-width:0}.notification-item strong{font-size:13px;display:block}.notification-item p{color:var(--muted);margin:3px 0 5px;font-size:12px;line-height:1.55}.notification-item time{color:#98a2b3;font-size:10px}.notification-empty{color:var(--muted);text-align:center;padding:42px 20px}.notification-foot{text-align:right;padding:10px 14px}.notification-foot button{color:var(--primary);background:0 0;border:0;font-size:12px;font-weight:700}.notification-foot button:disabled{color:var(--muted)}@media (width<=900px){.development-plan .form-grid{grid-template-columns:1fr 1fr}.plan-save{grid-column:1/-1}}@media (width<=700px){.account-summary{grid-template-columns:1fr}}@media (width<=500px){.fae-setup{padding:14px}.development-plan .form-grid{grid-template-columns:1fr}.plan-save{grid-column:auto}.inline-reason{grid-template-columns:1fr 1fr}.inline-reason input{grid-column:1/-1}.deliverable-info{grid-template-columns:1fr;padding-left:12px}.contract-warning{margin-left:12px}}@media (width<=800px){.notification-wrap .notification-btn{display:inline-grid}.notification-panel{position:fixed;top:62px;right:8px}.notification-item p{max-height:58px;overflow:hidden}}.sow-other{gap:8px;margin:16px 0;display:grid}.sow-other textarea{box-sizing:border-box;width:100%}.sow-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.sow-item-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sow-item-head>label:first-child{flex:1;align-items:center;gap:8px;min-width:180px;display:flex}.sow-item-head input[type=checkbox]{flex:none;width:16px;height:16px}.sow-item{display:block}.sow-item-files{margin:8px 0 0 24px}.sow-other-notes{box-sizing:border-box;width:100%;margin-top:8px}.sow-legacy-files{margin-top:16px}.sow-checklist>.privacy-note,.sow-checklist>.sow-actions,.sow-checklist>.sow-legacy-files,.sow-checklist>[role=status]{grid-column:1/-1}.risk-card{border:1px solid var(--border,#e4e7ec);border-radius:10px;padding:14px}.risk-card details{margin:12px 0}.risk-card summary{cursor:pointer}.risk-description{white-space:pre-wrap;overflow-wrap:anywhere}.project-modal .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.project-modal .form-field{gap:6px;min-width:0}.project-modal .form-field>label{color:var(--ink);font-size:13px;font-weight:700;line-height:20px;display:block}.project-modal .form-field input,.project-modal .form-field select,.project-modal .form-field textarea,.project-modal .multi-select summary{font-family:inherit;font-size:14px;font-weight:400;line-height:20px}.project-modal .form-field input:not([type=checkbox]),.project-modal .form-field select{min-height:42px}.project-modal .form-field input:not(:disabled),.project-modal .form-field select,.project-modal .form-field textarea,.project-modal .multi-select summary{color:var(--ink);background:#fff}.project-modal .multi-select{min-height:42px}.project-modal .multi-select summary{min-height:40px}.project-modal .form-field small{color:var(--muted);font-size:12px;font-weight:400}.project-modal .customer-stars{min-height:42px}@media (width<=500px){.project-modal .form-grid{grid-template-columns:minmax(0,1fr)}}.customer-stars{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.customer-stars button,.customer-stars>span{color:#c5cbd3;background:0 0;border:0;padding:0 2px;font-size:27px;line-height:1.2}.customer-stars button{cursor:pointer}.customer-stars .lit{color:#f5bb13}.customer-stars small{color:var(--muted);margin-left:5px;font-weight:400}.mini-info .customer-stars{gap:2px;display:flex}.mini-info .customer-stars>span{flex:none;padding:0;font-size:20px}.mini-info .customer-stars small{flex-basis:100%;margin-left:0}.customer-image-picker,.customer-product-gallery{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-top:10px;display:grid}.customer-image-picker figure{gap:6px;margin:0;display:grid}.customer-image-picker img,.customer-product-gallery img{object-fit:contain;border:1px solid var(--line);background:#f4f6f9;border-radius:7px;width:100%;height:110px}.customer-image-picker figcaption,.customer-product-gallery small{overflow-wrap:anywhere;font-size:11px;display:block}.customer-image-picker .removed{opacity:.45}.project-profile .mini-info b,.project-profile .mini-info a{overflow-wrap:anywhere;white-space:pre-wrap}.project-profile .side-copy{white-space:pre-wrap;overflow-wrap:anywhere}.project-profile h4{margin-bottom:8px;font-size:12px}.business-detail{grid-template-columns:minmax(230px,.8fr) minmax(0,1.4fr)}.business-progress form{gap:8px;margin:14px 0;display:grid}.business-progress .form-field{color:var(--ink);font-size:13px;font-weight:700}.business-progress .form-field textarea{font:inherit;font-weight:400}.business-progress-copy{white-space:pre-wrap;overflow-wrap:anywhere}.business-progress small{color:var(--muted)}.business-progress article{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.table-tools .filter-group{flex-wrap:wrap;gap:8px}.table-tools{gap:12px}.business-detail .project-profile{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-error{color:#b42318;padding:12px 24px}@media (width<=1100px){.business-detail .project-profile{grid-template-columns:1fr}}@media (width<=800px){.business-detail{grid-template-columns:1fr}}.aftersales-plan{margin-bottom:16px}.aftersales-date-row{grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto;align-items:end;gap:14px;padding:0 19px 18px;display:grid}.aftersales-plan>.privacy-note,.aftersales-plan>.field-error{margin:0 19px 16px}.aftersales-section{margin-bottom:22px}.aftersales-section .multi-check input{opacity:1;pointer-events:auto;position:static}.aftersales-section>.btn{margin-top:12px}.stakeholder-group{border-top:1px solid var(--line);padding:14px 0}.stakeholder-group h4{margin:0}.stakeholder-row{grid-template-columns:minmax(90px,.75fr) minmax(110px,1fr) minmax(130px,1.5fr) auto;align-items:end;gap:10px;margin-bottom:12px;display:grid}.aftersales-approval{border-top:1px solid var(--line);overflow-wrap:anywhere;margin-top:16px}.aftersales-approval small{color:var(--muted)}.approval-buttons{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}@media (width<=900px){.stakeholder-row{grid-template-columns:1fr 1fr}}@media (width<=600px){.aftersales-date-row,.stakeholder-row{grid-template-columns:1fr}.aftersales-plan .panel-head{flex-direction:column;align-items:flex-start}}.account-notice{color:#126c57;background:#f0fbf7;border:1px solid #c6e9df;border-radius:9px;padding:12px 15px}.account-empty{color:var(--muted);text-align:center;padding:20px}.account-row-actions{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.account-modal{width:min(780px,100%)}.account-fieldset{border:0;min-width:0;margin:0;padding:0}.account-role-options{border:1px solid var(--line);border-radius:9px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;display:grid}.account-role-options label{align-items:center;gap:7px;font-size:12px;font-weight:500;display:flex}.account-role-options input,.account-head-option input{width:16px;height:16px;accent-color:var(--primary);margin:0}.account-head-option>span{align-items:center;gap:7px;display:flex}.account-modal textarea{min-height:64px}@media (width<=650px){.account-role-options{grid-template-columns:repeat(2,minmax(0,1fr))}.account-modal{padding:20px}}
