:root{--blue:#2d5bd1;--navy:#18233d;--pink:#e6428b;--bg:#f5f7fb;--line:#e6eaf2;--muted:#7b8499;--green:#1ca26b;--orange:#f28b35;--red:#e34f5f;--shadow:0 8px 30px rgba(33,56,112,.08);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--navy)}
*{box-sizing:border-box}body{margin:0;background:#fff;font-size:14px}.app{display:grid;grid-template-columns:220px 1fr;min-height:calc(100dvh - var(--demo-bar-height, 0px))}.sidebar{border-right:1px solid var(--line);padding:24px 14px;position:sticky;top:0;height:calc(100dvh - var(--demo-bar-height, 0px));background:#fff}.brand{font-size:24px;font-weight:800;color:var(--blue);padding:0 12px 26px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;text-align:left;padding:12px 14px;border-radius:9px;color:#3b455d;font-size:14px;cursor:pointer}.nav button:hover,.nav button.active{background:#edf2ff;color:var(--blue);font-weight:700}.nav .sep{height:1px;background:var(--line);margin:12px}.main{min-width:0;background:var(--bg)}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:0 26px;position:sticky;top:0;z-index:5}.topbar h1{font-size:21px;margin:0;white-space:nowrap}.search{flex:1;max-width:480px;border:1px solid var(--line);background:#fbfcff;border-radius:8px;padding:10px 13px;color:var(--muted)}.btn{border:0;border-radius:8px;padding:10px 16px;font-weight:700;cursor:pointer}.btn.primary{background:var(--blue);color:#fff}.btn.secondary{background:#fff;border:1px solid var(--line);color:#3d4961}.content{padding:22px 26px}.stagebar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:grid;grid-template-columns:repeat(7,1fr);box-shadow:0 3px 12px rgba(25,49,102,.03)}.stage{text-align:center;position:relative;color:var(--muted)}.stage:not(:last-child):after{content:"";height:2px;background:#e3e8f2;position:absolute;top:18px;left:66%;right:-34%}.stage .circle{width:36px;height:36px;border-radius:50%;background:#edf0f6;display:grid;place-items:center;margin:0 auto 8px;font-weight:700}.stage.active .circle,.stage.done .circle{background:var(--blue);color:#fff}.stage.active{color:var(--navy);font-weight:700}.stage small{display:block;margin-top:4px;font-size:11px}.toolbar{display:flex;justify-content:space-between;gap:12px;margin:18px 0}.filters{display:flex;gap:8px}.select,.input{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 11px;color:#556078}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.table{width:100%;border-collapse:collapse}.table th{font-size:12px;color:var(--muted);font-weight:600;text-align:left;padding:13px;background:#fafbfe}.table td{padding:14px 13px;border-top:1px solid var(--line)}.table tr{cursor:pointer}.table tbody tr:hover,.table tbody tr.selected{background:#f2f6ff}.tag{display:inline-flex;padding:4px 8px;border-radius:6px;font-size:12px;background:#eaf0ff;color:var(--blue)}.tag.pink{background:#fdeaf3;color:#d53578}.tag.green{background:#e7f8f1;color:#17885c}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.high{background:var(--red)}.mid{background:var(--orange)}.low{background:var(--green)}.progress{width:75px;height:4px;background:#e8ecf4;border-radius:4px;overflow:hidden;margin-top:5px}.progress i{display:block;height:100%;background:var(--blue)}.detail header{padding:18px;border-bottom:1px solid var(--line)}.detail h2{margin:8px 0 6px;font-size:18px}.meta{color:var(--muted);font-size:12px;display:flex;gap:16px}.tabs{display:flex;border-bottom:1px solid var(--line);padding:0 14px}.tabs button{border:0;background:#fff;padding:13px 10px;color:var(--muted);cursor:pointer}.tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue);font-weight:700}.detailbody{padding:17px}.section-title{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin:0 0 12px}.checklist{display:grid;gap:11px}.check{display:flex;align-items:center;gap:9px}.check input{accent-color:var(--blue)}.check span{flex:1}.file{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.fileicon{width:27px;height:30px;border-radius:5px;background:#edf2ff;color:var(--blue);display:grid;place-items:center;font-size:11px;font-weight:700}.muted{color:var(--muted);font-size:12px}.view{display:none}.view.active{display:block}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-head h2{margin:0;font-size:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:700;font-size:13px}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fff;font:inherit}.field textarea{min-height:100px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.column{background:#eef1f7;border-radius:12px;padding:12px}.column h3{font-size:14px;margin:3px 4px 12px}.card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px;margin-bottom:9px;box-shadow:0 2px 8px rgba(25,50,100,.04)}.card strong{display:block;margin-bottom:7px}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.library-item{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}.library-item h3{margin:0 0 8px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.metric{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}.metric b{font-size:27px;display:block;margin-top:9px}.empty{padding:55px;text-align:center;color:var(--muted)}.flow-note{margin-top:16px;padding:14px 16px;background:#edf2ff;border-left:4px solid var(--blue);border-radius:6px}.toast{position:fixed;right:24px;bottom:24px;background:#18233d;color:#fff;padding:12px 16px;border-radius:8px;box-shadow:var(--shadow);display:none}.toast.show{display:block}.doc-link{position:fixed;right:20px;top:78px;z-index:4;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 11px;color:var(--blue);text-decoration:none;font-weight:700}
@media(max-width:1050px){.app{grid-template-columns:78px 1fr}.brand{font-size:0}.brand:after{content:"BM";font-size:20px}.nav button{font-size:0;text-align:center}.nav button:before{content:attr(data-short);font-size:12px}.workspace{grid-template-columns:1fr}.detail{display:none}.stage small{display:none}.kanban,.library-grid,.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.app{display:block}.sidebar{display:none}.content{padding:14px}.topbar{padding:0 14px}.topbar .search{display:none}.stagebar{grid-template-columns:repeat(4,1fr);gap:15px}.stage:after{display:none}.form-grid,.kanban,.library-grid,.kpi-grid{grid-template-columns:1fr}.workspace{overflow:hidden}.workspace>.panel:first-child{overflow-x:auto}.table{min-width:760px}.doc-link{top:78px;right:14px}}

/* Knowledge base — preserve the existing BrightMax information architecture. */
.knowledge-home{max-width:1180px;margin:auto;color:#17233c}.kb-banner{height:126px;border-radius:16px;background:#eaf0ff;overflow:hidden;position:relative}.kb-art{position:absolute;right:12%;bottom:17px;width:310px;height:88px}.kb-art:before{content:"";position:absolute;left:66px;bottom:0;width:116px;height:10px;border-radius:2px;background:#295fc3;box-shadow:42px -10px 0 -1px #ed4387}.kb-art i{position:absolute;left:105px;top:4px;width:105px;height:65px;border:6px solid #2c63bd;border-radius:7px;background:#fff}.kb-art i:before,.kb-art i:after{content:"";position:absolute;left:18px;height:4px;border-radius:4px}.kb-art i:before{top:17px;width:55px;background:#eca1c0}.kb-art i:after{top:32px;width:72px;background:#cfd9eb}.kb-art b{position:absolute;right:5px;bottom:0;width:24px;height:63px;background:#e13f82;border-radius:4px;box-shadow:-34px 4px 0 #2857ad,-68px 8px 0 #356dc4}.kb-art span{position:absolute;left:15px;bottom:7px;width:55px;height:44px;border-bottom:8px solid #e64384}.knowledge-home>h2{font-size:30px;margin:16px 0 4px}.kb-subtitle{color:#68758d;margin:0 0 16px}.kb-welcome{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #dfe5f2;border-radius:12px;background:linear-gradient(100deg,#f4f6ff,#fff8fb);box-shadow:0 2px 9px rgba(47,78,140,.04)}.kb-avatar,.bluebox,.pinkbox{display:grid;place-items:center;color:#fff;font-weight:800}.kb-avatar{width:42px;height:42px;border-radius:50%;background:#3164c6;flex:none}.kb-welcome div:nth-child(2){flex:1}.kb-welcome p{margin:4px 0;color:#738097;font-size:13px}.kb-welcome b{font-size:12px;color:#315fb8}.kb-welcome button{align-self:flex-start;border:0;background:transparent;color:#8290a5;font-size:18px}.kb-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 20px}.kb-shortcut{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e0e6f0;border-radius:10px;padding:14px;min-width:0}.bluebox,.pinkbox{width:34px;height:34px;border-radius:6px;flex:none}.bluebox{background:#2e63c3}.pinkbox{background:#e44284}.kb-shortcut div{flex:1;min-width:0}.kb-shortcut strong,.kb-shortcut small{display:block}.kb-shortcut small,.kb-departments small{font-size:12px;color:#7a8699;margin-top:4px}.kb-shortcut>b{color:#738198}.kb-section-title{display:flex;align-items:center;justify-content:space-between}.kb-section-title h3{font-size:18px;margin:0 0 12px}.kb-section-title a{color:#2e62ba;font-size:12px}.kb-departments{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.kb-departments>div{display:flex;align-items:center;gap:10px;padding:14px 12px;background:#fff;border:1px solid #e1e6ef;border-radius:10px;min-width:0}.kb-departments section{min-width:0}.kb-departments strong,.kb-departments small{display:block}.kb-lists{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.kb-list{background:#fff;border:1px solid #dfe5ee;border-radius:10px;overflow:hidden}.kb-list header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px}.kb-list h3{display:flex;align-items:center;gap:8px;margin:0;font-size:16px}.kb-list h3 span{width:27px;height:27px}.kb-list header small{color:#8a95a8}.kb-row{display:grid;grid-template-columns:1fr 80px 150px;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid #edf0f5;font-size:12px}.kb-row b{font-weight:500}.kb-row span,.kb-row time{color:#8490a3}.kb-row.hot{grid-template-columns:24px 1fr 70px}.kb-row em{font-style:normal;text-align:center;border-radius:5px;background:#edf2ff;color:#2d60bb}.kb-row.hot:nth-of-type(2) em,.kb-row.hot:nth-of-type(3) em{background:#e84a89;color:#fff}.kb-list footer{border-top:1px solid #edf0f5;padding:12px 16px;color:#2c60ba;font-size:12px;font-weight:700}

/* AI tool marketplace — five internal tools with text-based icons. */
.tool-market{max-width:1210px;min-height:calc(calc(100dvh - var(--demo-bar-height, 0px)) - 112px);margin:auto;display:flex;flex-direction:column;color:#17233d}.tool-brand{text-align:center;padding:5px 0 24px}.tool-brand>span{font-size:10px;letter-spacing:2px;color:#e34486;font-weight:800}.tool-brand h2{font-size:32px;margin:7px 0 3px}.tool-brand p{color:#8a94a7;margin:0}.tool-tabs{display:flex;align-items:center;gap:9px}.tool-tabs button{border:0;border-radius:20px;background:#fff;padding:9px 17px;font-weight:700;color:#26344e;box-shadow:0 4px 12px rgba(32,51,92,.06)}.tool-tabs button.active{background:#e74285;color:#fff}.tool-tabs b{margin-left:auto;color:#4167c4}.tool-search{margin:14px 0 20px;border:1px solid #e4e8f0;background:#fff;border-radius:12px;padding:14px;color:#a0a9ba;box-shadow:0 5px 18px rgba(37,55,92,.04)}.tool-search span{float:right;color:#ed4387;font-size:23px;line-height:16px}.tool-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tool-card{display:flex;align-items:flex-start;gap:14px;min-height:140px;background:#fff;border:1px solid #e2e7ef;border-radius:14px;padding:22px;box-shadow:0 10px 25px rgba(37,52,88,.05)}.tool-logo{display:grid;place-items:center;flex:none;width:50px;height:50px;border:1px solid #dfe5ef;border-radius:10px;color:#2456ac;font-weight:900;background:linear-gradient(145deg,#fff,#f3f6fc)}.tool-card section{flex:1}.tool-card h3{font-size:17px;margin:3px 0 8px}.tool-card p{font-size:12px;line-height:1.6;color:#8791a4;margin:0 0 10px}.tool-card small{background:#f0f3f9;border-radius:10px;padding:4px 9px;color:#7a879c}.tool-card>b{color:#5274cb}.tool-footer{margin-top:auto;border-top:1px solid #e3e7ee;padding:20px 0 4px;display:flex;justify-content:space-between;color:#7f899b;font-size:11px}.tool-footer b{color:#31579d}
.role-switch{margin-left:auto;max-width:190px;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#fff;color:#26344d;font:inherit}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:16px}.dashboard-task-split{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-task-trio{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.dashboard-task-trio>.action-list{min-width:0;min-height:286px}.dashboard-grid-single{grid-template-columns:minmax(0,1fr)}.action-list,.quick-tools{padding:18px}.action-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.action-row>div{min-width:0}.action-row b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.priority-no{width:25px;height:25px;border-radius:50%;background:#edf2ff;color:var(--blue);display:grid;place-items:center;font-weight:800}.action-row small{display:block;overflow:hidden;color:var(--muted);margin-top:4px;text-overflow:ellipsis;white-space:nowrap}.section-count{min-width:26px;height:26px;padding:0 8px;border-radius:13px;background:#edf2ff;color:var(--blue);display:inline-grid;place-items:center;font-size:12px}.dashboard-empty{min-height:150px;display:grid;place-items:center;color:var(--muted);border-top:1px solid var(--line)}.project-summary-execution{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.quick-tools{display:grid;align-content:start;gap:9px}.quick-tools>.section-title{margin-bottom:2px}.quick-tools>button{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px;text-align:left;color:#23304a;font-weight:700;cursor:pointer}.quick-tools>button span{width:32px;height:32px;border-radius:7px;background:#edf2ff;color:var(--blue);display:grid;place-items:center}.quick-tools>button b{color:var(--blue)}.text-btn{border:0;background:transparent;color:var(--blue);cursor:pointer}.review-row{display:grid;grid-template-columns:32px minmax(260px,1fr) minmax(180px,.7fr) auto;gap:12px;align-items:center;padding:15px 18px;border-top:1px solid var(--line)}.review-row:first-child{border-top:0}.review-people{font-size:12px;color:var(--muted)}
.archive-note{display:grid;grid-template-columns:1fr auto;gap:4px 12px;background:#f1f5ff;border:1px solid #dce5fb;border-radius:8px;padding:11px 12px;margin-bottom:12px}.archive-note span{grid-column:1;color:#66748d;font-size:12px}.archive-note em{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;color:#237b58;background:#e4f7ef;border-radius:12px;padding:4px 8px;font-size:11px}
.archive-search{width:360px;max-width:45%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);padding:11px 13px}.archive-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.archive-summary span{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;color:var(--muted)}.archive-summary b{display:block;color:var(--navy);font-size:20px;margin-top:6px}.archive-table tr{cursor:default}.archive-table tbody tr:hover{background:#fafcff}.archive-open{white-space:nowrap}
.subpage-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:18px}.subpage-head>div{flex:1;background:linear-gradient(110deg,#eef3ff,#fff4f8);border:1px solid var(--line);border-radius:12px;padding:18px}.subpage-head h2{margin:9px 0 6px;font-size:24px}.review-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:16px}.review-document,.review-opinion{padding:20px}.review-checklist{display:grid;gap:12px;margin-top:22px}.review-checklist>b{margin-bottom:2px}.review-opinion textarea{width:100%;min-height:170px;border:1px solid var(--line);border-radius:9px;padding:12px;resize:vertical;font:inherit}.review-links{display:flex;justify-content:flex-end;gap:14px;margin-top:18px}.archive-detail-summary{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:12px;margin-bottom:16px}.archive-detail-summary>span{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;color:var(--muted)}.archive-detail-summary b{display:block;color:var(--navy);margin-top:5px}.archive-detail-summary>.btn{align-self:stretch}.archive-file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.archive-file-grid>.panel{padding:18px}.archive-file-button{width:100%;border-width:1px 0 0;background:#fff;text-align:left;color:inherit;cursor:pointer}.archive-file-button:hover{background:#f7f9ff}.archive-file-button>span{color:var(--blue);font-size:12px}
.ai-assistant{margin:16px 0;border:2px solid #3262d5;border-radius:15px;background:linear-gradient(135deg,#f1f5ff 0,#fff 58%,#fff3f8 100%);box-shadow:0 14px 34px rgba(41,83,177,.15);overflow:hidden}.ai-assistant>header{display:flex;align-items:center;gap:13px;padding:17px 19px;background:linear-gradient(100deg,#285ccb,#4778e1);color:#fff}.ai-orb{width:45px;height:45px;border-radius:13px;display:grid;place-items:center;background:#fff;color:#2e62cf;font-size:17px;font-weight:900;box-shadow:0 5px 15px rgba(15,40,100,.25)}.ai-assistant header>div:nth-child(2){flex:1}.ai-assistant h3{margin:0 0 3px;font-size:19px}.ai-assistant h3 span{font-size:10px;background:#ff4b91;padding:3px 7px;border-radius:10px;margin-left:6px;vertical-align:3px}.ai-assistant header p{margin:0;color:#e8efff;font-size:12px}.ai-online{font-size:11px;background:rgba(255,255,255,.15);padding:7px 10px;border-radius:14px}.ai-dialog{min-height:88px;max-height:230px;overflow:auto;padding:16px 19px}.ai-message{width:78%;background:#fff;border:1px solid #dae3f5;border-radius:3px 12px 12px 12px;padding:12px 14px;box-shadow:0 3px 10px rgba(39,68,130,.06)}.ai-message p{margin:5px 0 0;color:#68768e;line-height:1.55}.user-message{max-width:70%;margin:0 0 10px auto;background:#3467d7;color:#fff;border-radius:12px 3px 12px 12px;padding:10px 13px}.ai-sources{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid #edf0f6;margin-top:10px;padding-top:9px;font-size:11px}.ai-sources a{color:#285fc7;background:#edf3ff;border-radius:5px;padding:4px 7px}.ai-suggestions{display:flex;gap:8px;padding:0 19px 11px;flex-wrap:wrap}.ai-suggestions button{border:1px solid #cad7f1;background:#fff;color:#315aa9;border-radius:15px;padding:6px 10px;cursor:pointer;font-size:11px}.ai-input{display:flex;gap:9px;padding:12px 19px;background:#fff;border-top:1px solid #e0e6f1}.ai-input input{flex:1;border:1px solid #ced8ea;border-radius:8px;padding:11px 13px;font:inherit;outline:none}.ai-input input:focus{border-color:#3266d4;box-shadow:0 0 0 3px rgba(50,102,212,.1)}.ai-input button{border:0;border-radius:8px;background:#e64285;color:#fff;font-weight:800;padding:0 20px;cursor:pointer}.ai-warning{display:block;background:#fff;padding:0 19px 12px;color:#8792a4}
.product-library{max-width:1220px;margin:auto}.product-ai{border-radius:16px;overflow:hidden;background:#fff;border:2px solid #315fd0;box-shadow:0 14px 34px rgba(39,81,174,.14)}.product-ai>header{display:flex;align-items:center;gap:14px;padding:18px 20px;color:#fff;background:linear-gradient(105deg,#2456c4,#4679e3 72%,#e34486)}.product-ai h3{margin:0 0 4px;font-size:20px}.product-ai h3 span{font-size:10px;background:rgba(255,255,255,.18);border-radius:12px;padding:4px 8px;margin-left:6px;vertical-align:3px}.product-ai header p{margin:0;color:#e8efff;font-size:12px}.product-ai-body{padding:16px 20px;background:linear-gradient(130deg,#f2f6ff,#fff 60%,#fff4f9)}.product-ai-answer{background:#fff;border:1px solid #dce4f3;border-radius:10px;padding:13px 15px;min-height:70px}.product-ai-answer p{margin:5px 0;color:#6e7b91}.product-query{display:inline-block;background:#2e63d1;color:#fff;border-radius:10px;padding:7px 10px;margin-bottom:9px}.product-prompts{display:flex;gap:8px;flex-wrap:wrap;margin:11px 0}.product-prompts button{border:1px solid #cad7f0;border-radius:16px;background:#fff;color:#3159a8;padding:7px 11px;cursor:pointer}.product-ai-input{display:flex;gap:9px}.product-ai-input input{flex:1;border:1px solid #cbd7ea;border-radius:9px;padding:12px;font:inherit}.product-ai-input button{border:0;border-radius:9px;background:#e53f82;color:#fff;font-weight:800;padding:0 19px;cursor:pointer}.product-controls{display:grid;grid-template-columns:1fr repeat(3,160px);gap:10px;align-items:center;margin:18px 0 12px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:11px}.product-controls b,.product-controls small{display:block}.product-controls small{margin-top:4px;color:var(--muted)}.product-controls select{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;font:inherit;color:#3c4860}.product-result-head{display:flex;justify-content:space-between;align-items:end;margin:14px 0 10px}.product-result-head b{font-size:18px}.product-result-head span{margin-left:8px;background:#eaf0ff;color:#2d60c2;border-radius:12px;padding:4px 9px;font-size:11px}.product-result-head small{color:var(--muted)}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.product-card{background:#fff;border:1px solid #dfe5ef;border-radius:12px;overflow:hidden;box-shadow:0 5px 14px rgba(35,58,102,.04)}.product-photo{height:112px;display:flex;align-items:end;justify-content:space-between;padding:13px;background:linear-gradient(140deg,#dfe9ff,#f6f8fd 55%,#fbe9f1);color:#315ba9;font-size:20px;font-weight:800}.product-photo em{font-style:normal;background:#fff;color:#18815b;border-radius:13px;padding:5px 8px;font-size:10px}.product-info{padding:14px}.product-code{font-size:11px;color:#738099}.product-info h3{margin:5px 0 3px;font-size:17px}.product-info>p{margin:0;color:#8791a3;font-size:12px}.product-tags{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.product-tags span{background:#edf2ff;color:#315fab;border-radius:5px;padding:4px 7px;font-size:10px}.product-tags span:last-child{background:#fdebf3;color:#cc3975}.product-info dl{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;border-top:1px solid #edf0f5;padding-top:10px;margin:0 0 12px}.product-info dt{color:#8a95a8;font-size:10px}.product-info dd{margin:3px 0 0;font-size:11px;font-weight:700}.product-empty{grid-column:1/-1}.product-card .btn{width:100%}
.kpi-period{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px;margin-bottom:15px}.kpi-period button{border:0;background:transparent;color:#657188;border-radius:7px;padding:9px 18px;font-weight:700;cursor:pointer}.kpi-period button.active{background:#2f62cf;color:#fff;box-shadow:0 3px 9px rgba(47,98,207,.22)}.kpi-period>span{margin-left:auto;color:var(--muted);padding-right:9px}.metric small{display:block;color:var(--muted);margin-top:6px}.kpi-team-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,.7fr);gap:15px}.kpi-team>header,.personal-kpi>header{display:flex;justify-content:space-between;padding:15px 17px;border-bottom:1px solid var(--line)}.kpi-team>header span,.personal-kpi>header span{color:var(--muted);font-size:12px}.kpi-person{display:grid;grid-template-columns:38px minmax(125px,.8fr) 68px minmax(130px,1fr) minmax(165px,1.2fr) auto;gap:12px;align-items:center;padding:13px 16px;border-top:1px solid var(--line)}.kpi-person:first-of-type{border-top:0}.kpi-person.risk{background:#fffafa}.person-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eaf0ff;color:#2f61c5;font-weight:800}.kpi-person small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.kpi-score b{font-size:20px}.kpi-progress>div{display:flex;justify-content:space-between;font-size:11px}.kpi-progress em{font-style:normal;color:#18815a}.kpi-progress>i{display:block;height:6px;background:#e7ebf2;border-radius:6px;overflow:hidden;margin-top:7px}.kpi-progress>i b{display:block;height:100%;background:linear-gradient(90deg,#2e60ca,#5b85e5)}.kpi-person.risk .kpi-progress>i b{background:#ec5965}.kpi-dims{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.kpi-dims span{font-size:10px;background:#f0f3f8;color:#68758a;border-radius:4px;padding:4px 6px}.kpi-dims em{font-style:normal;color:#2e61c8}.kpi-guide{padding:18px}.kpi-guide h3{margin:0 0 8px}.kpi-guide>p{color:var(--muted);line-height:1.6}.kpi-guide>div:not(.flow-note){display:grid;gap:4px;padding:13px 0;border-top:1px solid var(--line)}.kpi-guide span{font-size:12px;color:var(--muted)}.kpi-settings{background:#fff;border:1px solid #dce3ef;border-radius:12px;box-shadow:0 9px 28px rgba(33,57,105,.1);overflow:hidden;align-self:start}.kpi-settings>header{display:flex;justify-content:space-between;padding:16px 18px;color:#fff;background:linear-gradient(100deg,#2c5fc9,#4779df)}.kpi-settings h3{margin:0 0 4px}.kpi-settings header p{margin:0;color:#e6edff;font-size:11px}.kpi-settings header button{border:0;background:transparent;color:#fff;font-size:22px;cursor:pointer}.kpi-setting-note{padding:11px 15px;background:#eef3ff;color:#52688f;font-size:11px;line-height:1.5}.kpi-setting-row{display:grid;grid-template-columns:1fr 80px 80px;gap:9px;align-items:center;padding:13px 15px;border-top:1px solid var(--line)}.kpi-setting-row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.kpi-setting-row label{font-size:10px;color:var(--muted)}.kpi-setting-row input{width:100%;border:1px solid var(--line);border-radius:6px;padding:7px;margin-top:4px}.kpi-setting-row label:last-child{position:relative}.kpi-setting-row label:last-child span{position:absolute;right:6px;bottom:7px}.kpi-setting-actions{display:flex;align-items:center;gap:8px;padding:13px 15px;border-top:1px solid var(--line)}.kpi-setting-actions>span{margin-right:auto;color:var(--muted);font-size:11px}.kpi-setting-actions .bad{color:var(--red)}.personal-kpi>div{display:grid;grid-template-columns:1fr 90px minmax(180px,.6fr) 50px;gap:14px;align-items:center;padding:16px;border-top:1px solid var(--line)}.personal-kpi section small{display:block;color:var(--muted);margin-top:4px}.mini-progress{height:7px;background:#e7ebf2;border-radius:7px;overflow:hidden}.mini-progress i{display:block;height:100%;background:#3467d6}
@media(max-width:1050px){.kb-shortcuts{grid-template-columns:repeat(2,1fr)}.kb-departments{grid-template-columns:repeat(3,1fr)}.tool-cards{grid-template-columns:1fr}.tool-card{min-height:110px}}
@media(max-width:1050px){.dashboard-grid{grid-template-columns:1fr}.review-row{grid-template-columns:32px 1fr auto}.review-people{display:none}.review-detail-grid{grid-template-columns:1fr}.archive-detail-summary{grid-template-columns:repeat(3,1fr)}.archive-detail-summary>.btn{grid-column:1/-1}.product-controls{grid-template-columns:1fr repeat(3,130px)}.product-grid{grid-template-columns:repeat(2,1fr)}.kpi-team-layout{grid-template-columns:1fr}.kpi-person{grid-template-columns:38px 1fr 65px 130px auto}.kpi-dims{display:none}}
@media(max-width:700px){.kb-banner{height:90px}.kb-art{transform:scale(.7);transform-origin:right bottom;right:4%}.knowledge-home>h2,.tool-brand h2{font-size:24px}.kb-shortcuts,.kb-departments,.kb-lists{grid-template-columns:1fr}.kb-row{grid-template-columns:1fr 65px}.kb-row time{display:none}.tool-tabs{flex-wrap:wrap}.tool-tabs b{width:100%;margin:4px 0}.tool-card{padding:16px}.tool-footer{gap:15px;flex-wrap:wrap}.role-switch{max-width:145px}.action-row{grid-template-columns:28px 1fr}.action-row button{grid-column:2}.review-row{grid-template-columns:32px 1fr}.review-row button{grid-column:2;justify-self:start}.subpage-head{display:grid}.archive-search{display:none}.archive-summary,.archive-detail-summary{grid-template-columns:1fr}.archive-file-grid{grid-template-columns:1fr}.archive-table{min-width:680px}.ai-assistant>header{align-items:flex-start}.ai-online{display:none}.ai-message{width:100%}.ai-input{padding:10px}.ai-input button{padding:0 14px}.ai-suggestions{padding-left:10px;padding-right:10px}.product-ai>header{align-items:flex-start}.product-ai-input{display:grid}.product-ai-input button{padding:11px}.product-controls{grid-template-columns:1fr}.product-result-head{display:block}.product-result-head small{display:block;margin-top:7px}.product-grid{grid-template-columns:1fr}.kpi-period{flex-wrap:wrap}.kpi-period button{flex:1;padding:8px}.kpi-period>span{width:100%;margin:5px 0}.kpi-person{grid-template-columns:34px 1fr 48px}.kpi-progress{grid-column:2/4}.kpi-person>button{grid-column:2/4}.kpi-settings{margin-top:0}.kpi-setting-row{grid-template-columns:1fr 70px}.kpi-setting-row label:last-child{grid-column:2}.kpi-setting-actions{flex-wrap:wrap}.personal-kpi>div{grid-template-columns:1fr 60px}.personal-kpi .mini-progress{grid-column:1}.personal-kpi>div>strong{grid-column:2;grid-row:2}}
.tool-card h3{min-height:24px;margin:3px 0 8px;font-size:17px;line-height:24px;font-weight:700;white-space:nowrap}
.kb-banner{display:none}
.tool-brand h2{font-size:0}
.tool-brand h2::after{content:"AI工具平台";font-size:26px;line-height:1.25}
.page-head h2,.knowledge-home>h2,.tool-brand h2::after{font-size:26px;line-height:1.25;font-weight:700;letter-spacing:0;margin-top:0}
.knowledge-home>h2{padding-top:4px}

.app.embedded-mode{height:calc(100dvh - var(--demo-bar-height, 0px));min-height:0}
.app.embedded-mode .main{height:calc(100dvh - var(--demo-bar-height, 0px));min-height:0;overflow:hidden}
.app.embedded-mode .topbar,.app.embedded-mode .doc-link{display:none}
.app.embedded-mode .content{height:calc(100dvh - var(--demo-bar-height, 0px));padding:0;overflow:hidden}
.workspace-embed{display:block;width:100%;height:100%;border:0;background:var(--bg)}

body.permissions-loading #app{visibility:hidden}
.topbar-account{margin-left:auto;display:flex;align-items:center;gap:22px}.session-user{min-width:118px;display:grid;gap:2px;padding-left:14px;border-left:1px solid var(--line)}
.session-user strong{font-size:13px;color:var(--navy);white-space:nowrap}
.session-user small{font-size:11px;color:var(--muted);white-space:nowrap}
.logout-button{border:0;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;padding:7px 0}
.logout-button:hover{color:var(--blue)}
.permission-heading{margin-bottom:14px}
.permission-role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.permission-role-card{display:flex;align-items:flex-start;gap:12px;min-height:108px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:12px}
.permission-role-card>span{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;flex:none;background:#edf2ff;color:var(--blue);font-weight:800}
.permission-role-card.rd_member>span{background:#e9f7f1;color:#16845a}
.permission-role-card.business_requester>span{background:#fdebf3;color:#cf3878}
.permission-role-card h3{margin:2px 0 6px;font-size:15px}
.permission-role-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.permission-layout{display:grid;grid-template-columns:minmax(620px,1.45fr) minmax(320px,.65fr);gap:16px;align-items:start}
.permission-list-panel>header,.permission-form-panel>header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}
.permission-list-panel>header h3,.permission-form-panel>header h3{margin:0 0 4px;font-size:16px}
.permission-list-panel>header span,.permission-form-panel>header span{font-size:11px;color:var(--muted)}
.permission-table-wrap{overflow:auto}
.permission-table{min-width:760px}
.permission-table thead{position:sticky;top:0;z-index:2}
.permission-table thead th{box-shadow:0 1px 0 var(--line)}
.permission-table tr{cursor:default}
.permission-table td:first-child strong,.permission-table td:first-child small{display:block}
.permission-table td:first-child small{margin-top:4px;color:var(--muted)}
.permission-table td:nth-child(4){max-width:260px;color:var(--muted);font-size:12px;line-height:1.45}
.permission-role{display:inline-flex;align-items:center;border-radius:13px;padding:5px 9px;background:#edf2ff;color:var(--blue);font-size:11px;font-weight:700;white-space:nowrap}
.permission-role.rd_member{background:#e9f7f1;color:#16845a}
.permission-role.rd_member.structure-display{background:#edf2ff;color:var(--blue)}
.permission-role.rd_member.electronic-display{background:#fff3cd;color:#a66a00}
.permission-role.business_requester{background:#fdebf3;color:#cf3878}
.account-state{display:inline-flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}
.account-state:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.account-state.inactive{color:var(--muted)}
.account-state.inactive:before{background:#a8b0bf}
.permission-empty{text-align:center!important;padding:48px!important;color:var(--muted)!important}
.permission-empty.error{color:var(--red)!important}
.permission-form-panel form{display:grid;gap:14px;padding:18px}
.permission-form-panel .field small{color:var(--muted);font-size:11px;line-height:1.45}
.permission-check{display:flex;align-items:center;gap:8px;padding:3px 0;color:#3a465f}
.permission-check input{accent-color:var(--blue)}
.permission-form-error{margin:0;padding:10px 12px;border-radius:7px;background:#fff0f2;color:var(--red);font-size:12px}
.permission-form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:3px}
.permission-row-actions{display:flex;align-items:center;gap:2px;white-space:nowrap}
.text-btn.danger{color:var(--red)}
.btn.danger{background:var(--red);color:#fff}
.text-btn:disabled{cursor:not-allowed;opacity:.38;transform:none}
.app.permission-mode,.app.permission-mode .main{height:calc(100dvh - var(--demo-bar-height, 0px));min-height:0;overflow:hidden}
.permission-content{display:flex;flex-direction:column;height:calc(calc(100dvh - var(--demo-bar-height, 0px)) - 68px);min-height:0;overflow:hidden}
.permission-content>.permission-heading,.permission-content>.permission-role-grid{flex:0 0 auto}
.permission-content>.permission-layout{flex:1;min-height:0;align-items:stretch}
.permission-content .permission-list-panel{display:flex;min-height:0;flex-direction:column;overflow:hidden}
.permission-content .permission-table-wrap{flex:1;min-height:0;overflow:auto}
.permission-content .permission-form-panel{align-self:start}
.permission-delete-backdrop{position:fixed;z-index:40;inset:0;display:grid;place-items:center;padding:24px;background:rgba(20,31,55,.28)}
.permission-delete-dialog{width:min(420px,100%);padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 22px 60px rgba(25,40,70,.24);text-align:center}
.permission-delete-dialog>span{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 12px;border-radius:10px;background:#fff0f2;color:var(--red);font-weight:800}
.permission-delete-dialog h3{margin:0;font-size:18px}
.permission-delete-dialog p{margin:10px 0 20px;color:#5e6b82;font-size:13px;line-height:1.65}
.permission-delete-dialog>div{display:flex;justify-content:center;gap:10px}
.access-denied{max-width:520px;margin:80px auto;padding:42px;text-align:center}
.access-denied>span{width:48px;height:48px;margin:0 auto 14px;border-radius:12px;background:#edf2ff;color:var(--blue);display:grid;place-items:center;font-size:20px;font-weight:800}
.access-denied h2{margin:0 0 8px}
.access-denied p{margin:0 0 20px;color:var(--muted)}
.permission-startup-error{max-width:520px;margin:120px auto;padding:35px;border:1px solid var(--line);border-radius:12px;text-align:center}
.permission-startup-error button{border:0;border-radius:8px;background:var(--blue);color:#fff;padding:10px 18px;cursor:pointer}
.project-empty-state{padding:64px 24px;text-align:center}
.project-empty-state>span{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:12px;background:#edf2ff;color:var(--blue);font-weight:800;font-size:18px}
.project-empty-state h3{margin:0 0 7px;font-size:18px}
.project-empty-state p{margin:0 auto 18px;color:var(--muted)}
.archive-empty-state{padding:62px 24px;text-align:center}
.archive-empty-state>span{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:12px;background:#fdeaf3;color:var(--pink);font-weight:800;font-size:18px}
.archive-empty-state h3{margin:0 0 7px;font-size:18px}
.archive-empty-state p{margin:0;color:var(--muted)}
@media(max-width:1180px){.permission-layout{grid-template-columns:1fr}.permission-form-panel{order:-1}.permission-role-grid{grid-template-columns:1fr}}
@media(max-width:700px){.topbar-account{gap:10px}.session-user{margin-left:0;min-width:0;padding-left:0;border-left:0}.session-user strong{max-width:72px;overflow:hidden;text-overflow:ellipsis}.logout-button{display:none}.permission-layout{display:block}.permission-form-panel{margin-bottom:14px}.permission-heading{align-items:flex-start}.permission-heading .btn{white-space:nowrap}.permission-role-card{min-height:auto}.permission-table{min-width:720px}}

/* Project assignment workflow */
.project-queue-tabs{display:flex;align-items:center;gap:7px;margin:0 0 14px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:10px;width:max-content;max-width:100%;overflow:auto}.project-queue-tabs button{display:flex;align-items:center;gap:7px;border:0;border-radius:7px;background:transparent;color:#647188;padding:8px 12px;font:700 12px/1.2 inherit;cursor:pointer;white-space:nowrap}.project-queue-tabs button b{min-width:20px;padding:3px 6px;border-radius:11px;background:#eef2f8;color:#748097;font-size:10px}.project-queue-tabs button.active{background:#2f62cf;color:#fff;box-shadow:0 3px 9px rgba(47,98,207,.2)}.project-queue-tabs button.active b{background:rgba(255,255,255,.2);color:#fff}
.project-table-panel{overflow:auto}.project-table{min-width:820px}.project-table td:first-child b,.project-table td:first-child small,.project-owner,.owner-source{display:block}.queue-state{width:max-content;margin-top:5px;padding:3px 7px;border-radius:10px;background:#edf2ff;color:#3160bd;font-size:10px;font-weight:700;white-space:nowrap}.queue-state.unassigned{background:#fff0f4;color:#d73779}.queue-state.review{background:#fff5e9;color:#b66a10}.queue-state.completed{background:#e8f7f0;color:#148158}.project-owner.pending{color:#d73779}.owner-source{margin-top:4px;color:var(--muted);font-size:10px}.project-row-pending{background:#fffafd}.project-row-pending.selected{background:#fff0f6}.project-queue-empty{text-align:center!important;padding:48px!important;color:var(--muted)!important}
.app.project-mode,.app.project-mode .main{height:calc(100dvh - var(--demo-bar-height, 0px));min-height:0;overflow:hidden}.project-content{display:flex;flex-direction:column;height:calc(calc(100dvh - var(--demo-bar-height, 0px)) - 68px);min-height:0;overflow:hidden}.project-content>.project-queue-tabs,.project-content>.workflow-stage-panel{flex:0 0 auto}.project-content>.assignment-project-workspace{flex:1;min-height:0;margin-top:14px;overflow:hidden}.project-content .project-table-panel{height:100%;min-height:0;overflow:auto}.project-content .assignment-project-workspace>.detail{height:100%;min-height:0;overflow:hidden}.project-content .project-table thead{position:sticky;top:0;z-index:2}.project-content .project-table thead th{box-shadow:0 1px 0 var(--line)}
.detail-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.detail-title-row .queue-state{margin:0}.assignment-detail header{padding:16px}.assignment-detail h2{margin:8px 0 0}.assignment-detail .detailbody{padding:16px}.project-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:9px}.project-overview-grid>div{min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fafcff}.project-overview-grid span{display:block;color:var(--muted);font-size:10px}.project-overview-grid b{display:block;margin-top:4px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.requirement-overview-section+.requirement-overview-section{margin-top:14px}.requirement-overview-section h3{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:13px}.requirement-overview-section h3 small{display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#edf2ff;color:var(--blue);font-size:10px}.requirement-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.requirement-overview-grid>div{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fafcff}.requirement-overview-grid span{display:block;color:var(--muted);font-size:10px}.requirement-overview-grid b{display:block;margin-top:4px;color:#172743;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.requirement-summary{padding:12px;border-radius:8px;background:#f4f7fd}.requirement-summary p{margin:0;color:#5f6d84;font-size:12px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.requirement-attachment-list{display:grid;gap:6px}.requirement-attachment-list span{padding:8px 10px;border:1px solid #dce4f2;border-radius:7px;background:#fff;color:#31518b;font-size:11px;overflow-wrap:anywhere}
.assignment-form{margin:0;background:#fff}.assignment-form-heading{padding:0 0 11px;border-bottom:1px solid var(--line)}.assignment-form-heading h3{margin:0;font-size:14px}.assignment-form>.field,.assignment-form-grid{margin:12px 0 0}.assignment-form-grid{display:grid;grid-template-columns:1fr;gap:10px}.assignment-form-grid .field{min-width:0}.assignment-form .field label{font-size:11px}.assignment-form .field input,.assignment-form .field select,.assignment-form .field textarea{padding:9px 10px;font-size:12px}.assignment-form .field textarea{min-height:54px;resize:none}.assignment-collaborator-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.assignment-collaborator-heading label{margin:0}.assignment-collaborator-heading span{color:#6d7b94;font-size:10px}.assignment-collaborators{display:grid;grid-template-columns:1fr;gap:6px}.assignment-collaborators label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;cursor:pointer}.assignment-collaborators input{width:auto;padding:0;accent-color:var(--blue)}.assignment-collaborators span{min-width:0}.assignment-roster-note{margin:7px 0 0;padding:7px 9px;border-radius:7px;background:#eef4ff;color:#315baf;font-size:10px;line-height:1.45}.assignment-no-user{padding:8px;border-radius:7px;background:#fff7e9;color:#95651b;font-size:11px;line-height:1.4}.assignment-error{margin:10px 0 0;padding:8px;border-radius:7px;background:#fff0f2;color:var(--red);font-size:11px}.assignment-form-actions{padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}.assignment-form-actions .btn{width:100%;white-space:nowrap}.responsibility-card{margin-top:14px;padding:14px;border:1px solid #cfe0f8;border-radius:9px;background:#f2f7ff}.responsibility-card.requester{border-color:#ead7e1;background:#fff7fa}.responsibility-card p{margin:7px 0;color:#63718a;font-size:12px;line-height:1.6}.responsibility-card small{display:block;color:#506484}
.assignment-collaborator-select{position:relative}.assignment-collaborator-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#172743;font:500 13px/1.35 inherit;text-align:left;cursor:pointer}.assignment-collaborator-toggle:hover,.assignment-collaborator-toggle.open{border-color:#8da9e8}.assignment-collaborator-toggle:focus-visible{outline:2px solid rgba(47,98,207,.2);outline-offset:1px}.assignment-collaborator-toggle span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-collaborator-toggle i{flex:0 0 auto;width:7px;height:7px;border-right:1.5px solid #55657e;border-bottom:1.5px solid #55657e;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease}.assignment-collaborator-toggle.open i{transform:rotate(225deg) translate(-1px,-1px)}.assignment-collaborator-select .assignment-collaborators{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;margin:0;padding:6px;border:1px solid #dce4f1;border-radius:8px;background:#fff;box-shadow:0 10px 24px rgba(28,47,83,.16)}.assignment-collaborator-select .assignment-collaborators[hidden]{display:none}
.assignment-detail-initial header{padding:14px 16px}.assignment-detail-initial h2{margin:5px 0 0;font-size:19px;line-height:1.4}.assignment-detail-initial .detailbody{padding:14px 16px}.assignment-requirement-brief{margin:0 0 18px}.assignment-requirement-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.assignment-requirement-heading h3{margin:0;color:#142544;font-size:14px;line-height:1.4}.assignment-requirement-brief dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;overflow:hidden;border:1px solid #dfe6f2;border-radius:9px;background:#dfe6f2}.assignment-requirement-brief dl>div{min-width:0;padding:9px 11px;background:#f9fbff}.assignment-requirement-brief dt{color:#66758e;font-size:11px;line-height:1.35}.assignment-requirement-brief dd{margin:4px 0 0;color:#142544;font-size:13px;font-weight:700;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-requirement-brief dd a{display:block;overflow:hidden;color:#245edb;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.assignment-requirement-brief dd a:hover{text-decoration:underline}.assignment-requirement-copy,.assignment-requirement-attachments{margin-top:8px;padding:10px 11px;border-radius:9px;background:#f2f6fd}.assignment-requirement-copy>span,.assignment-requirement-attachments>span{color:#52627d;font-size:12px;font-weight:700;line-height:1.4}.assignment-requirement-copy p{margin:5px 0 0;color:#1f3151;font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.assignment-requirement-copy small{display:inline;margin-left:6px;color:#61779f;font-size:11px}.assignment-requirement-attachments>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.assignment-requirement-attachments>div span,.assignment-requirement-attachments>div a{max-width:100%;padding:5px 8px;overflow:hidden;border:1px solid #d8e2f2;border-radius:6px;background:#fff;color:#315baf;font-size:11px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.assignment-requirement-attachments>div a:hover{border-color:#9eb5e3;background:#f7f9ff}.assignment-requirement-attachments em{color:#7a879d;font-size:12px;font-style:normal}.assignment-form-stack{display:grid;gap:14px}.assignment-form-initial .field{gap:7px;min-width:0}.assignment-form-initial .field label{font-size:13px;line-height:1.4}.assignment-form-initial .field input,.assignment-form-initial .field select,.assignment-form-initial .assignment-collaborator-toggle{min-width:0;min-height:42px;padding:10px 11px;font-size:14px}.assignment-form-initial .assignment-collaborators{grid-template-columns:1fr;max-height:168px;overflow:auto}.assignment-form-initial .assignment-collaborators label{min-width:0;padding:9px 10px;font-size:13px}.assignment-form-initial .assignment-collaborators span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-form-initial .assignment-form-actions{padding-top:12px;margin-top:14px}.assignment-form-initial .assignment-form-actions .btn{min-height:42px;padding:10px 12px;font-size:14px}
.assignment-requirement-attachments>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.assignment-reference-card{min-width:0;overflow:hidden;border:1px solid #d8e2f2;border-radius:8px;background:#fff;color:#315baf;text-decoration:none}.assignment-reference-card.image{display:grid;grid-template-rows:104px auto}.assignment-reference-card.image button{display:block;width:100%;height:104px;padding:0;overflow:hidden;border:0;border-bottom:1px solid #e5ebf5;background:#f7f9fd;cursor:zoom-in}.assignment-reference-card.image button:focus-visible{outline:3px solid rgba(47,98,207,.28);outline-offset:-3px}.assignment-reference-card.image img{display:block;width:100%;height:100%;object-fit:contain}.assignment-reference-card.image>span,.assignment-reference-card.document>span{display:block;min-width:0;max-width:none;padding:7px 8px;overflow:hidden;border:0;border-radius:0;background:transparent;color:#315baf;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.assignment-reference-card.document{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;min-height:58px}.assignment-reference-card.document>b{display:grid;place-items:center;align-self:stretch;background:#eaf0ff;color:#2f62cf;font-size:10px}.assignment-reference-card.document:hover{border-color:#9eb5e3;background:#f7f9ff}.assignment-requirement-attachments em{grid-column:1/-1}
.assignment-requirement-attachments.sampling-model-attachments>div{grid-template-columns:1fr}.assignment-reference-card.document.sampling-model-card{grid-template-columns:42px minmax(0,1fr) auto}.sampling-model-card .sampling-model-download{min-width:44px;margin-right:8px;padding:6px 10px;border-color:#aec1e7;border-radius:6px;background:#f4f7ff;color:#245edb;font-weight:700;text-align:center}.sampling-model-card .sampling-model-download:hover{border-color:#7397dd;background:#eaf0ff}.sampling-model-card>em{grid-column:auto;margin-right:8px;color:#7a879d;font-size:10px;font-style:normal;white-space:nowrap}.sampling-image-attachments{margin-top:8px}
.stage-execution-title small,.stage-history-title small{color:var(--muted);font-size:10px;font-weight:500}.stage-execution-card{border:1px solid #d5def0;border-radius:10px;overflow:hidden;background:#fff}.stage-execution-card>header{display:flex;align-items:center;gap:10px;padding:13px 14px;background:#f6f8fd;border:0}.stage-execution-card>header>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800}.stage-execution-card>header>div{flex:1;min-width:0}.stage-execution-card h3{margin:0;font-size:14px}.stage-execution-card header p{margin:4px 0 0;color:var(--muted);font-size:11px}.stage-execution-card header .queue-state{margin:0;font-style:normal}.stage-action-form{padding:14px}.stage-action-form .field textarea{min-height:72px;resize:vertical}.stage-action-form .field+.field{margin-top:12px}.stage-action-form .field small{color:var(--muted);font-size:10px;line-height:1.45}.stage-action-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px}.stage-action-footer span{margin-right:auto;color:var(--muted);font-size:10px;line-height:1.5}.stage-action-message{margin:14px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fafcff}.stage-action-message.pending{border-color:#f2d5df;background:#fff8fa}.stage-action-message.completed{border-color:#cce7da;background:#f5fbf8}.stage-action-message.leader{border-color:#d8e2f6;background:#f7f9fe}.stage-action-message b{font-size:12px}.stage-action-message p{margin:6px 0;color:#61708a;font-size:11px;line-height:1.55}.stage-action-message .btn{margin-top:6px}.final-file-list{display:grid;gap:5px;margin-top:9px}.final-file-list span{padding:7px 9px;border-radius:6px;background:#fff;color:#3c516f;font-size:11px}.leader-reopen-action{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 14px 14px;padding:11px 12px;border:1px dashed #cbd7ed;border-radius:8px;color:#61708a;font-size:10px}.stage-history-title{margin-top:18px}.stage-history-list{display:grid;gap:10px}.stage-history-item{display:grid;grid-template-columns:12px 1fr;gap:8px;position:relative}.stage-history-item:not(:last-child):after{content:"";position:absolute;left:4px;top:13px;bottom:-12px;width:1px;background:#dce3f0}.stage-history-item>i{width:9px;height:9px;margin-top:3px;border-radius:50%;background:var(--blue)}.stage-history-item b,.stage-history-item span{display:block}.stage-history-item b{font-size:11px}.stage-history-item span{margin-top:3px;color:var(--muted);font-size:9px}.stage-history-item p{margin:5px 0 0;color:#53637d;font-size:10px;line-height:1.5}.stage-history-empty{padding:14px;border-radius:8px;background:#f7f9fc;color:var(--muted);font-size:11px;text-align:center}
.final-file-list a{padding:7px 9px;border-radius:6px;background:#fff;color:#3c516f;font-size:11px;text-decoration:none}.final-file-list a:hover{color:var(--blue);background:#f1f5ff}
@media(max-width:1050px){.assignment-project-workspace{grid-template-columns:1fr}.assignment-project-workspace .detail{display:block}.assignment-detail{max-width:none}}
@media(max-width:1050px){.project-content>.assignment-project-workspace{display:block;overflow:auto}.project-content .project-table-panel,.project-content .assignment-project-workspace>.detail{height:auto;overflow:visible}.project-content .project-table-panel{margin-bottom:16px;overflow-x:auto}}
@media(max-width:700px){.project-center-heading{align-items:flex-start}.assignment-principle{display:none}.project-queue-tabs{width:100%}.assignment-project-workspace{overflow:visible}.assignment-project-workspace>.panel:first-child{overflow-x:auto}.project-overview-grid{grid-template-columns:1fr}.assignment-form-grid,.assignment-collaborators{grid-template-columns:1fr}.assignment-form-heading{display:block}.assignment-form-heading em{display:block;max-width:none;margin-top:5px;text-align:left}.assignment-form-actions{align-items:stretch;flex-direction:column}.assignment-form-actions>span{margin:0}.assignment-form-actions .btn{width:100%}.stage-action-footer,.leader-reopen-action{align-items:stretch;flex-direction:column}.stage-action-footer span{margin:0}.stage-action-footer .btn,.leader-reopen-action .btn{width:100%}}

/* Typed demand center and per-project workflows */
.request-content{padding:18px 24px 24px}.request-status-row{display:flex;justify-content:flex-end;margin-bottom:8px;min-height:22px}.request-status-row>.tag{padding:4px 8px;font-size:11px}.request-type-section{margin-bottom:12px}
.request-type-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.request-type-option{display:grid;grid-template-columns:38px minmax(0,1fr) 22px;align-items:center;gap:11px;min-height:60px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.request-type-option:hover{border-color:#aabfe9;transform:translateY(-1px)}.request-type-option:focus{outline:0}.request-type-option:focus-visible{outline:2px solid #2f62cf;outline-offset:2px}.request-type-option.active{border-color:#5e84dc;background:#f7f9ff;box-shadow:0 6px 18px rgba(45,91,192,.08)}.request-type-option>span{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:#eaf0ff;color:var(--blue);font-size:14px;font-weight:800}.request-type-option[data-request-type="sampling"]>span{background:#fdeaf3;color:#d73779}.request-type-option>strong{min-width:0;font-size:14px}.request-type-option>b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#edf2ff;color:var(--blue);font-size:10px}
.request-form-panel{overflow:hidden}.request-form-heading{display:flex;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid var(--line);background:#f7f9ff}.request-form-heading>span{display:grid;place-items:center;width:40px;height:40px;border-radius:9px;background:#eaf0ff;color:var(--blue);font-weight:800}.request-form-heading>div{display:grid;gap:4px}.request-form-heading strong{font-size:16px}.request-form-heading small{color:var(--muted);font-size:12px}.request-form-body{padding:24px}.request-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:18px}.request-form-grid .field{gap:7px}.request-form-grid .field label{font-size:13px}.request-form-grid .field input,.request-form-grid .field select,.request-form-grid .field textarea{padding:11px 12px;font-size:13px}.request-form-grid textarea{min-height:140px;resize:vertical}.request-form-grid input[type="file"]{padding:10px 11px}.request-form-panel .form-actions{margin-top:22px}.request-form-panel .btn{padding:10px 16px}
.request-attachments-field{align-items:stretch}.request-attachment-picker{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.request-attachment-picker>label{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:32px;margin:0;padding:6px 13px;border-radius:6px;background:#2f62cf;color:#fff!important;font-size:12px!important;font-weight:700;cursor:pointer}.request-attachment-picker>label:hover{background:#2757bd}.request-attachment-picker>label:focus-within{outline:2px solid rgba(47,98,207,.22);outline-offset:2px}.request-attachment-picker input{position:absolute;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.request-attachment-picker>span{min-width:0;color:#66758e;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-attachment-list{display:grid;grid-template-columns:repeat(auto-fill,148px);gap:12px;min-height:52px}.request-attachment-item{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;width:148px;height:148px;overflow:hidden;border:1px solid #dce4f2;border-radius:9px;background:#fff;box-shadow:0 2px 8px rgba(24,53,105,.05)}.request-attachment-thumbnail{display:grid;place-items:center;width:100%;min-width:0;min-height:0;padding:0;overflow:hidden;border:0;border-bottom:1px solid #e8edf5;background:#f4f7fc}.request-attachment-thumbnail.image{cursor:zoom-in}.request-attachment-thumbnail.image:focus-visible{outline:3px solid rgba(47,98,207,.3);outline-offset:-3px}.request-attachment-thumbnail img{display:block;width:100%;height:100%;object-fit:contain;background:#f4f7fc}.request-attachment-thumbnail.file b{display:grid;place-items:center;width:54px;height:62px;border-radius:8px;background:#eaf0ff;color:#2f62cf;font-size:14px;letter-spacing:.04em}.request-attachment-meta{display:grid;gap:2px;min-width:0;padding:7px 30px 8px 9px}.request-attachment-meta span{min-width:0;color:#1d3152;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-attachment-meta small{color:#71809a;font-size:9px}.request-attachment-remove{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid rgba(211,59,94,.2);border-radius:50%;background:rgba(255,255,255,.94);color:#d33b5e;font:700 17px/1 Arial,sans-serif;cursor:pointer;box-shadow:0 2px 7px rgba(18,39,79,.12)}.request-attachment-remove:hover{border-color:#d33b5e;background:#fff0f4}.request-attachment-remove:focus-visible{outline:2px solid rgba(211,59,94,.28);outline-offset:2px}.request-attachment-empty{display:grid;grid-column:1/-1;place-items:center;min-height:52px;border:1px dashed #d6dfed;border-radius:8px;color:#7a879c;font-size:12px}
@media(max-width:700px){.request-attachment-list{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.request-attachment-item{width:100%;height:auto;aspect-ratio:1/1}}
.request-attachment-thumbnail.document b{display:grid;place-items:center;width:54px;height:62px;border-radius:8px;background:#eaf0ff;color:#2f62cf;font-size:14px;letter-spacing:.04em}
.sampling-request-form .request-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:16px}.sampling-request-form .field.span-2{grid-column:span 2}.sampling-request-form .field>small{color:var(--muted);font-size:10px;line-height:1.4}.sampling-request-form textarea{min-height:70px}
.workflow-stage-panel{margin-top:2px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(25,49,102,.03);overflow:hidden}.workflow-stage-panel>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px 3px}.workflow-stage-panel>header>div{display:flex;align-items:center;gap:10px;min-width:0}.workflow-stage-panel>header strong{color:#536079;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-stage-panel>header>small{color:var(--muted);font-size:10px;white-space:nowrap}.request-type-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:6px;background:#eef2f8;color:#617087;font-size:11px;font-weight:800;white-space:nowrap}.request-type-badge.appearance{background:#fdeaf3;color:#d73779}.request-type-badge.sampling{background:#eaf0ff;color:#2e61c8}.workflow-stage-panel>.stagebar{grid-template-columns:repeat(var(--workflow-columns),minmax(0,1fr));border:0;border-radius:0;box-shadow:none;padding-top:10px}.project-customer-line{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.request-kind-mini{padding:2px 5px;border-radius:4px;background:#eef2f8;color:#657188;font-size:9px;font-weight:700}.request-kind-mini.appearance{background:#fdeaf3;color:#d73779}.request-kind-mini.sampling{background:#eaf0ff;color:#2e61c8}.project-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.demo-case-mini{padding:2px 5px;border-radius:4px;background:#fff4d9;color:#a46800;font-size:9px;font-weight:800}
@media(max-width:900px){.project-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-stage-panel>.stagebar{overflow-x:auto;grid-template-columns:repeat(var(--workflow-columns),minmax(140px,1fr))}}
@media(max-width:900px){.request-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.sampling-request-form .request-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.request-content{padding:10px 14px 14px}.request-status-row>.tag{max-width:150px;white-space:normal}.request-type-selector,.request-form-grid{grid-template-columns:1fr}.request-form-body{padding:14px}.workflow-stage-panel>header{align-items:flex-start}.workflow-stage-panel>header>div{display:grid;gap:6px}.workflow-stage-panel>header strong{white-space:normal}.workflow-stage-panel>.stagebar{grid-template-columns:repeat(var(--workflow-columns),minmax(126px,1fr));overflow-x:auto}.project-overview-grid{grid-template-columns:1fr}}

/* Unified branched project process */
.workflow-process-panel{display:flex;align-items:center;min-height:100px;padding:8px 18px;box-shadow:0 3px 12px rgba(25,49,102,.03)}
.process-map-scroll{display:flex;align-items:center;width:100%;max-width:100%;min-height:82px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.process-map{position:relative;width:100%;min-width:1460px;height:164px;margin-inline:auto;color:#10244a}
.process-track{position:absolute;left:0;right:0;display:grid;align-items:start;z-index:2}
.process-track-top{top:9px;grid-template-columns:repeat(5,88px minmax(104px,1fr)) 88px}
.process-track-bottom{top:107px;grid-template-columns:repeat(5,88px minmax(104px,1fr)) 88px}
.process-node{display:flex;min-width:0;flex-direction:column;align-items:center;text-align:center;color:#687790}
.process-node-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid #d5e0f1;border-radius:50%;background:#f6f8fc;color:#8796ae;font-size:14px;font-weight:800;line-height:1;transition:box-shadow .16s ease,transform .16s ease}
.process-node-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.process-node-label{max-width:100%;margin-top:8px;color:inherit;font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}
.process-node-note,.process-decision-note{display:block;min-width:120px;margin-top:3px;color:#526078;font-size:11px;font-weight:600;line-height:1.45;white-space:nowrap}
.process-node.complete,.process-node.active{color:#10244a}
.process-node.complete .process-node-icon{border-color:#2f62cf;background:#2f62cf;color:#fff}
.process-node.active .process-node-icon,.process-node.top-tone.active .process-node-icon{border-color:#2f62cf;background:#2f62cf;color:#fff;box-shadow:0 0 0 4px #fff,0 0 0 6px rgba(47,98,207,.18);transform:scale(1.05)}
.process-node.inspectable{width:100%;padding:0;border:0;background:transparent;font:inherit;cursor:pointer}
.process-node.inspectable:hover .process-node-icon{box-shadow:0 0 0 5px rgba(47,98,207,.12);transform:translateY(-2px)}
.process-node.inspectable:focus-visible{outline:2px solid #2f62cf;outline-offset:5px;border-radius:8px}
.process-node.inspectable.viewing .process-node-icon{box-shadow:0 0 0 4px #fff,0 0 0 6px rgba(47,98,207,.22)}
.process-node.inspectable.viewing .process-node-label{color:#2f62cf}
.process-arrow{position:relative;display:block;height:40px;color:#a9bfe8}
.process-arrow:before{content:"";position:absolute;left:8px;right:8px;top:19px;height:1px;border-radius:2px;background:currentColor}
.process-arrow:after{display:none}
.process-arrow em{position:absolute;left:50%;top:-1px;z-index:1;padding:1px 5px;border-radius:7px;background:#fff;color:#72819a;font-size:9px;font-style:normal;white-space:nowrap;transform:translateX(-50%)}
.process-decision{display:flex;min-width:0;flex-direction:column;align-items:center;color:#687790;text-align:center}
.process-decision-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid #d5e0f1;border-radius:50%;background:#f6f8fc;color:#8796ae;font-size:14px;font-weight:800;line-height:1}
.process-decision strong{margin-top:8px;color:inherit;font-size:12px;line-height:1.4;white-space:nowrap}
.process-decision.complete{color:#10244a}.process-decision.complete .process-decision-icon{border-color:#2f62cf;background:#2f62cf;color:#fff}
.process-decision.active{color:#10244a}.process-decision.active .process-decision-icon{border-color:#2f62cf;background:#2f62cf;color:#fff;box-shadow:0 0 0 4px #fff,0 0 0 6px rgba(47,98,207,.18);transform:scale(1.05)}
.process-branch{position:absolute;inset:0;z-index:1;color:#a9bfe8;pointer-events:none}
.process-branch i{position:absolute;display:block}
.process-branch-vertical{left:78.22%;top:47px;height:45px;border-left:1.5px solid currentColor}
.process-branch-horizontal{left:2.97%;right:21.78%;top:91px;border-top:1.5px solid currentColor}
.process-branch-drop{left:2.97%;top:91px;height:13px;border-left:1.5px solid currentColor}
.process-branch-drop:after{content:"";position:absolute;left:-3px;bottom:0;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.process-branch-yes{position:absolute;left:calc(78.22% + 7px);top:58px;padding:1px 4px;border-radius:7px;background:#fff;color:#72819a;font-size:9px}
.process-map-inline{height:82px}
.process-track-main{top:50%;grid-template-columns:repeat(9,minmax(72px,96px) minmax(28px,1fr)) minmax(72px,96px);transform:translateY(-50%)}
.sampling-process .process-track-main{grid-template-columns:repeat(6,minmax(72px,96px) minmax(28px,1fr)) minmax(72px,96px)}
.sampling-process .process-map{min-width:900px}
.appearance-short-process .process-track-main{grid-template-columns:repeat(4,minmax(72px,96px) minmax(28px,1fr)) minmax(72px,96px)}
.appearance-short-process .process-map{min-width:660px}
.sampling-request-tabs{display:flex;gap:10px;padding:14px 24px;border-bottom:1px solid var(--line)}
.sampling-request-tabs .btn{flex:0 1 180px}
.sampling-request-panel .request-form-grid{align-items:start}
.sampling-request-panel .field{align-content:start}
.sampling-request-panel .field>input:not([type=file]),.sampling-request-panel .field>select{height:var(--control-height,42px)}
.sampling-request-attachments{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;min-width:0}
.sampling-request-attachments .request-attachments-field{min-width:0}
@media(max-width:1050px){.sampling-request-attachments{grid-template-columns:minmax(0,1fr);gap:12px}}
.sampling-parameter-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:20px}
@media(max-width:700px){.sampling-parameter-fields{grid-template-columns:1fr}}
.sampling-type-label{display:block;color:var(--blue);margin-top:5px}
@media(max-width:900px){.workflow-process-panel{padding-right:8px;padding-left:8px}.process-map-scroll{padding-bottom:4px}}

.request-submit-success{min-height:520px;border:1px solid #d9e3f8;border-radius:14px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px}.request-submit-success-icon{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:#e8f8f1;color:#16875d;font-size:34px;font-weight:800}.request-submit-success h2{margin:20px 0 8px;font-size:26px;color:var(--navy)}.request-submit-success p{margin:0;color:var(--muted)}.request-submit-success strong{margin-top:14px;padding:9px 16px;border-radius:8px;background:#edf2ff;color:var(--blue);font-size:18px}.request-submit-success span{margin-top:12px;color:var(--muted);font-size:12px}.request-submit-success-actions{margin-top:24px}

@media(max-width:700px){.request-submit-success{min-height:420px;padding:28px}}
@media(max-width:700px){.sampling-request-form .request-form-grid{grid-template-columns:1fr}.sampling-request-form .field.span-2{grid-column:auto}}

.sample-decision-card{display:grid;gap:4px;margin:14px;padding:12px;border:1px solid #cddaf1;border-radius:8px;background:#f5f8ff}.sample-decision-card span{color:var(--muted);font-size:10px}.sample-decision-card b{color:#173365;font-size:14px}.sample-decision-card small{color:#5e6f89;font-size:10px;line-height:1.5}.sample-decision-form .stage-action-footer{display:grid;grid-template-columns:1fr;align-items:stretch}.sample-decision-form .stage-action-footer .btn{width:100%;white-space:normal}.process-node.skipped{color:#8b98ac}.process-node.skipped .process-node-icon{border-color:#d5e0f1;background:#f6f8fc;color:#8796ae}
.sample-decision-paths{display:grid;grid-template-columns:1fr;gap:8px;margin:14px}.sample-decision-paths>div{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:3px 10px;padding:10px 11px;border:1px solid #dce4f2;border-radius:8px;background:#fbfcff}.sample-decision-paths span{grid-row:1/3;display:grid;place-items:center;align-self:stretch;border-radius:7px;background:#edf2ff;color:var(--blue);font-size:11px;font-weight:800}.sample-decision-paths b{color:#172743;font-size:11px}.sample-decision-paths small{color:#64728a;font-size:10px;line-height:1.4}.sample-decision-choice{display:grid;grid-template-columns:1fr;gap:8px;margin:14px 0;padding:0;border:0}.sample-decision-choice legend{margin-bottom:7px;color:#172743;font-size:12px;font-weight:800}.sample-decision-choice label{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #dce4f2;border-radius:8px;background:#fff;cursor:pointer}.sample-decision-choice label:has(input:checked){border-color:#8ca9e7;background:#f5f8ff}.sample-decision-choice input{margin-top:2px;accent-color:var(--blue)}.sample-decision-choice label>span{display:grid;gap:3px}.sample-decision-choice label b{font-size:11px}.sample-decision-choice label small{color:#687790;font-size:10px;line-height:1.4}.sample-parameter-panel,.sample-parameter-summary{margin:14px 0;padding:12px;border:1px solid #cddaf1;border-radius:9px;background:#f8faff}.sample-parameter-panel[hidden]{display:none}.sample-parameter-panel h4,.sample-parameter-summary h4{margin:0 0 10px;color:#173365;font-size:12px}.sample-parameter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sample-parameter-grid .field{min-width:0}.sample-parameter-grid .field.full{grid-column:1/-1}.sample-parameter-grid .field label{font-size:10px}.sample-parameter-grid .field input,.sample-parameter-grid .field select,.sample-parameter-grid .field textarea{width:100%;min-width:0;padding:8px 9px;font-size:11px}.sample-parameter-grid .field textarea{min-height:58px}.sample-parameter-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.sample-parameter-summary-grid>div{min-width:0;padding:8px;border:1px solid #dce4f2;border-radius:7px;background:#fff}.sample-parameter-summary-grid span,.sample-parameter-summary-grid b{display:block}.sample-parameter-summary-grid span{color:#74819a;font-size:9px}.sample-parameter-summary-grid b{margin-top:3px;color:#172743;font-size:11px;overflow-wrap:anywhere}.sample-decision-form .sample-approval-actions{grid-template-columns:1fr}.sample-approval-actions .btn.secondary{color:#4e5d76}
@media(max-width:700px){.sample-parameter-grid,.sample-parameter-summary-grid{grid-template-columns:1fr}.sample-parameter-grid .field.full{grid-column:auto}}
.stage-overview-hero{padding:13px;border:1px solid #cfdbf2;border-radius:10px;background:#f5f8ff}.stage-overview-hero>span{color:#4569b8;font-size:9px;font-weight:800}.stage-overview-hero h3{margin:4px 0;font-size:16px}.stage-overview-hero p{margin:0;color:#596982;font-size:10px;line-height:1.5}.stage-overview-hero>div{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:8px;margin-top:9px}.stage-overview-hero>div>b{font-size:12px}.stage-overview-hero>div>i{height:4px;border-radius:4px;background:#dce4f3;overflow:hidden}.stage-overview-hero>div>i>em{display:block;height:100%;border-radius:4px;background:var(--blue)}.stage-overview-hero>div>small{color:#5f6f88;font-size:9px}.stage-overview-section{margin-top:10px}.stage-overview-section h4{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:11px}.stage-overview-section h4 small{display:grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:#edf2ff;color:var(--blue);font-size:9px}.stage-focus-list{display:grid;grid-template-columns:1fr;gap:4px}.stage-focus-list span{display:flex;align-items:center;gap:7px;min-width:0;padding:6px 8px;border:1px solid #e1e6f0;border-radius:7px;color:#33435f;font-size:10px}.stage-focus-list i{display:grid;place-items:center;flex:0 0 17px;width:17px;height:17px;border-radius:50%;background:#edf2ff;color:var(--blue);font-size:8px;font-style:normal;font-weight:800}.stage-file-list{display:grid;gap:4px}.stage-file-list>span{display:grid;grid-template-columns:33px minmax(0,1fr);align-items:center;gap:7px;padding:6px 8px;border:1px solid #e1e6f0;border-radius:7px;color:#40506a;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-file-list>span>b{display:grid;place-items:center;height:20px;border-radius:5px;background:#edf2ff;color:var(--blue);font-size:8px}.compact-requirement{margin-top:10px!important;padding-top:9px;border-top:1px solid var(--line)}.compact-requirement .requirement-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.compact-requirement .requirement-overview-grid>div{padding:6px 8px}.compact-requirement .requirement-summary{margin-top:6px;padding:8px}.compact-requirement .requirement-summary p{display:-webkit-box;overflow:hidden;font-size:10px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.sample-compact-grid{margin-top:5px}.stage-review-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.stage-review-preview>div{padding:8px;border:1px solid #dce4f2;border-radius:8px;background:#fbfcff}.stage-review-preview span,.stage-review-preview b{display:block}.stage-review-preview span{color:#6c7890;font-size:8px}.stage-review-preview b{margin-top:3px;color:#1d335c;font-size:10px}.stage-latest-outcome{margin-top:8px;padding:8px 9px;border:1px solid #cfe2d8;border-radius:8px;background:#f4fbf7}.stage-latest-outcome.returned{border-color:#f0ccd5;background:#fff6f8}.stage-latest-outcome span{color:#168259;font-size:9px;font-weight:800}.stage-latest-outcome.returned span{color:#c13a5b}.stage-latest-outcome p{margin:3px 0 0;color:#52627c;font-size:9px;line-height:1.4}.review-material-panel{margin-bottom:10px;border:1px solid #dbe3f1;border-radius:9px;overflow:hidden}.review-material-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:9px 10px;background:#f6f8fd}.review-material-panel header div{display:grid;gap:2px}.review-material-panel header span{color:#65738b;font-size:9px}.review-material-panel header b{font-size:10px;line-height:1.4}.review-material-panel header em{padding:3px 6px;border-radius:8px;background:#eaf0ff;color:var(--blue);font-size:8px;font-style:normal;font-weight:800}.review-material-panel>div{display:grid}.review-material-panel>div>span{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px 9px;border-top:1px solid #edf0f5}.review-material-panel>div i{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#edf2ff;color:var(--blue);font-size:8px;font-style:normal}.review-material-panel>div b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.review-material-panel>div small{color:#7b8699;font-size:8px}.review-decision-routes{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}.review-decision-routes>div{padding:8px;border:1px solid #cfe2d8;border-radius:8px;background:#f5fbf8}.review-decision-routes>div.reject{border-color:#f0ccd5;background:#fff7f9}.review-decision-routes span,.review-decision-routes b,.review-decision-routes small{display:block}.review-decision-routes span{color:#168259;font-size:9px;font-weight:800}.review-decision-routes .reject span{color:#c13a5b}.review-decision-routes b{margin-top:3px;font-size:10px}.review-decision-routes small{margin-top:2px;color:#6d7890;font-size:8px;line-height:1.35}.review-stage-form .field textarea{min-height:54px}.review-reject-panel{padding:11px;border:1px solid #efc7d1;border-radius:9px;background:#fff7f9}.review-reject-panel[hidden],.review-pass-panel[hidden]{display:none}.review-reject-panel header{display:flex;align-items:center;justify-content:space-between;gap:8px}.review-reject-panel header b{color:#a92f4f;font-size:12px}.review-reject-panel header button{border:0;background:transparent;color:#64718a;font-size:9px;cursor:pointer}.review-reject-panel>p{margin:5px 0 9px;color:#6d5a63;font-size:9px;line-height:1.45}.review-reject-panel .field label{font-size:10px}.review-reject-confirm{width:100%;margin-top:9px;background:#d64267;color:#fff}.approval-result-card{padding:14px;border:1px solid #cfe2d8;border-radius:10px;background:#f5fbf8}.approval-result-card.returned{border-color:#f0ccd5;background:#fff6f8}.approval-result-card.idle{border-color:#dce3ef;background:#f8faff}.approval-result-card>span{color:#168259;font-size:9px;font-weight:800}.approval-result-card.returned>span{color:#c13a5b}.approval-result-card.idle>span{color:#63718a}.approval-result-card h3{margin:5px 0;font-size:15px}.approval-result-card p{margin:0;color:#56657e;font-size:10px;line-height:1.5}.approval-result-card>small{display:block;margin-top:7px;color:#6d7990;font-size:9px}
.stage-overview-hero{padding:9px 10px}.stage-overview-hero h3{margin:2px 0;font-size:14px}.stage-overview-hero p{display:-webkit-box;overflow:hidden;font-size:9px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.stage-overview-hero>div{margin-top:6px}.stage-overview-columns{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.stage-overview-columns .stage-overview-section{min-width:0;margin:0}.stage-overview-columns .stage-overview-section h4{margin-bottom:4px;font-size:10px}.stage-overview-columns .stage-focus-list,.stage-overview-columns .stage-file-list{gap:3px}.stage-overview-columns .stage-focus-list span{gap:4px;padding:3px 5px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-overview-columns .stage-focus-list i{flex-basis:13px;width:13px;height:13px;font-size:7px}.stage-overview-columns .stage-file-list>span{grid-template-columns:24px minmax(0,1fr);gap:4px;padding:3px 5px;font-size:8px}.stage-overview-columns .stage-file-list>span>b{height:14px;font-size:6px}.stage-overview-columns .stage-overview-section h4 small{min-width:14px;height:14px;font-size:7px}.stage-latest-outcome{margin-top:6px;padding:5px 7px}.stage-latest-outcome p{display:-webkit-box;overflow:hidden;margin-top:2px;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:1}.stage-review-preview{gap:5px;margin-top:6px}.stage-review-preview>div{padding:5px 7px}.stage-review-preview b{margin-top:2px;font-size:9px}.compact-requirement{margin-top:7px!important;padding-top:6px}.compact-requirement h3{margin-bottom:4px}.compact-requirement .requirement-summary{margin-top:0;padding:6px 7px}.compact-requirement .requirement-summary p{font-size:9px;line-height:1.35}.compact-requirement .requirement-summary small{display:block;margin-top:3px;color:#758198;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sample-parameter-strip{display:flex;gap:4px;margin-top:4px}.sample-parameter-strip span{padding:2px 5px;border-radius:5px;background:#edf2ff;color:#315eb8;font-size:7px;font-weight:700}
.stage-requirement-inline{display:block;margin-top:4px;color:#69768c;font-size:8px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-requirement-inline>b{margin-right:5px;color:#294a87;font-size:8px}
.review-stage-form{padding:9px}.review-stage-form .review-material-panel{margin-bottom:7px}.review-stage-form .review-material-panel>header{padding:6px 8px}.review-stage-form .review-material-panel>div>span{padding:5px 7px}.review-stage-form .review-decision-routes{gap:5px;margin-bottom:7px}.review-stage-form .review-decision-routes>div{padding:5px 6px}.review-stage-form .review-decision-routes small{display:none}.review-stage-form .field{gap:4px}.review-stage-form .field textarea{min-height:42px;padding:7px 8px;font-size:10px}.review-stage-form .stage-action-footer{gap:7px;margin-top:7px}.review-stage-form .stage-action-footer .btn{padding:7px 8px;font-size:9px}.review-stage-form .review-reject-panel{padding:8px}.review-stage-form .review-reject-panel>p{margin:3px 0 6px}.review-stage-form .review-reject-panel .review-reject-confirm{margin-top:6px;padding:8px;font-size:10px}.review-stage-form .review-reject-panel textarea{min-height:48px}.stage-execution-card>header{padding:9px 10px}.stage-execution-card>header>span{width:27px;height:27px;font-size:11px}.stage-execution-card h3{font-size:12px}.stage-execution-card header p{margin-top:2px;font-size:9px}
.review-only-card{border-color:#d7e0f0}.review-only-card .review-material-panel>div{grid-template-columns:repeat(3,minmax(0,1fr))}.review-only-card .review-material-panel>div>span{display:block;min-width:0;border-top:1px solid #edf0f5;border-left:1px solid #edf0f5;text-align:center}.review-only-card .review-material-panel>div>span:first-child{border-left:0}.review-only-card .review-material-panel>div i{margin:0 auto 3px}.review-only-card .review-material-panel>div b{display:block}.review-only-card .review-material-panel>div small{display:none}
.review-only-card .review-material-panel>header{align-items:center;padding:4px 7px}.review-only-card .review-material-panel header b{display:none}.review-only-card .review-material-panel header span{color:#263a60;font-size:9px;font-weight:800}.review-only-card .review-material-panel>div>span{padding:3px 5px}.review-only-card .review-material-panel>div i{width:13px;height:13px;margin-bottom:2px;font-size:6px}.review-only-card .review-material-panel>div b{font-size:7px}
.review-only-card .review-reject-panel>p{display:none}.review-only-card .review-reject-panel textarea{min-height:38px}.review-only-card .review-reject-panel .review-reject-confirm{padding:6px}.review-only-card .review-reject-panel header{margin-bottom:5px}
.review-decision-routes[hidden]{display:none}

/* Global interaction design system */
:root{
  --font-body:14px;
  --font-label:13px;
  --font-meta:12px;
  --font-section:16px;
  --font-page:24px;
  --line-body:1.55;
  --control-height:40px;
  --radius-control:8px;
  --radius-panel:12px;
  --focus-ring:0 0 0 3px rgba(45,91,209,.16);
  --text-primary:#18233d;
  --text-secondary:#56657e;
  --text-muted:#6c7890;
}
html{font-size:16px}
body,button,input,select,textarea{font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC",Arial,sans-serif}
body{color:var(--text-primary);font-size:var(--font-body);line-height:var(--line-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font-size:var(--font-body);line-height:1.45}
button{white-space:nowrap}
button,.btn,.text-btn,.nav button,.tabs button,.project-queue-tabs button,.request-type-option{transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .1s ease}
button:active,.btn:active,.text-btn:active,.nav button:active,.tabs button:active,.project-queue-tabs button:active,.request-type-option:active{transform:translateY(1px)}

.dashboard-task-scroll{max-height:284px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px}
.dashboard-task-scroll-wide{max-height:420px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
input:focus,select:focus,textarea:focus{border-color:#7f9fe3;box-shadow:var(--focus-ring)}
input::placeholder,textarea::placeholder{color:#748098;opacity:1}

/* Page hierarchy */
.topbar h1{font-size:22px;line-height:1.35}
.content{padding:24px 28px}
.page-head{margin-bottom:20px}
.page-head h2,.permission-heading h2{font-size:var(--font-page);line-height:1.35;letter-spacing:-.01em}
.page-head p,.subpage-head p,.permission-heading p{font-size:13px;line-height:1.6}
.subpage-head h2{font-size:var(--font-page);line-height:1.35}
.section-title,.quick-tools>.section-title{font-size:var(--font-section);line-height:1.4}
.panel{border-radius:var(--radius-panel)}
.panel>header,.permission-list-panel>header,.permission-form-panel>header,.kpi-team>header,.personal-kpi>header{min-height:52px}
.permission-list-panel>header h3,.permission-form-panel>header h3,.kpi-team>header b,.personal-kpi>header b{font-size:var(--font-section);line-height:1.4}
.muted,.meta,.session-user small,.permission-list-panel>header span,.permission-form-panel>header span,.kpi-team>header span,.personal-kpi>header span{font-size:var(--font-meta);line-height:1.5;color:var(--text-muted)}

/* Navigation and actions */
.nav button{font-size:var(--font-body);line-height:1.4}
.nav button{position:relative;display:flex;align-items:center;gap:8px}
.nav button>span{min-width:0}
.nav-new-dot,.workbench-new-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ef3340;box-shadow:0 0 0 2px #fff;flex:none}
.nav-new-dot{margin-left:auto}
.nav button.active .nav-new-dot{box-shadow:0 0 0 2px #edf2ff}
.workbench-new-dot{margin-left:8px;vertical-align:1px}
.action-row.has-new-task{background:linear-gradient(90deg,rgba(239,51,64,.035),transparent 72%)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:9px 16px;border-radius:var(--radius-control);font-size:var(--font-body);line-height:1.2}
.text-btn{min-height:36px;padding:7px 8px;border-radius:var(--radius-control);font-size:var(--font-body);font-weight:700}
.logout-button{min-height:36px;padding:7px 8px;font-size:var(--font-meta)}
.tabs button{min-height:44px;padding:11px 12px;font-size:var(--font-body);line-height:1.35}
.project-queue-tabs button,.kpi-period button,.tool-tabs button{min-height:36px;font-size:13px}
.quick-tools>button{min-height:52px;padding:12px;font-size:var(--font-body)}

/* Forms */
.field{gap:8px}
.field label,.assignment-form .field label,.assignment-form-initial .field label,.request-form-grid .field label,.sample-parameter-grid .field label,.review-reject-panel .field label{font-size:var(--font-label);line-height:1.4}
.field input,.field select,.field textarea,.assignment-form .field input,.assignment-form .field select,.assignment-form .field textarea,.request-form-grid .field input,.request-form-grid .field select,.request-form-grid .field textarea,.sample-parameter-grid .field input,.sample-parameter-grid .field select,.sample-parameter-grid .field textarea,.kpi-setting-row input,.role-switch,.product-controls select,.product-ai-input input,.ai-input input{min-height:var(--control-height);padding:9px 11px;border-radius:var(--radius-control);font-size:var(--font-body);color:var(--text-primary)}
.field textarea,.assignment-form .field textarea,.request-form-grid .field textarea,.sample-parameter-grid .field textarea{line-height:1.55}
.field small,.permission-form-panel .field small,.sampling-request-form .field>small,.stage-action-form .field small{font-size:var(--font-meta);line-height:1.5;color:var(--text-muted)}
.permission-check{min-height:36px;padding:7px 0;font-size:var(--font-body)}
.permission-check input,.assignment-collaborators input,.sample-decision-choice input{width:16px;height:16px}
.assignment-form-stack{gap:16px}
.assignment-form-initial .assignment-form-actions{margin-top:16px;padding-top:14px}
.assignment-form-initial .assignment-form-actions .btn{min-height:42px;font-size:var(--font-body)}

/* Tables and lists */
.table th{padding:13px 14px;font-size:var(--font-label);line-height:1.4;color:#657188}
.table td{padding:14px;font-size:var(--font-body);line-height:1.5}
.table td small,.owner-source,.action-row small,.permission-table td:first-child small,.review-people{font-size:var(--font-meta);line-height:1.45}
.action-list,.quick-tools{padding:20px}
.action-row{min-height:66px;padding:14px 0}
.action-row b{font-size:var(--font-body);line-height:1.45}
.priority-no{width:28px;height:28px;font-size:13px}
.dashboard-empty,.project-queue-empty,.permission-empty,.empty{font-size:var(--font-body);line-height:1.6}
.archive-summary span,.archive-detail-summary>span{font-size:var(--font-body);line-height:1.5}
.archive-summary b{font-size:22px}

/* Status and metadata */
.tag,.queue-state,.permission-role,.account-state,.request-type-badge,.request-kind-mini,.demo-case-mini,.product-tags span,.product-photo em,.product-result-head span,.archive-note em{font-size:11px;line-height:1.35}
.queue-state{padding:4px 8px}
.project-queue-tabs button b,.section-count{font-size:11px}
.owner-source{margin-top:4px}
.archive-note span,.archive-file-button>span{font-size:var(--font-meta);line-height:1.5}

/* Dashboard and metrics */
.metric{min-height:104px;padding:18px 20px}
.metric>span,.metric>small{font-size:13px;line-height:1.45}
.metric b{font-size:28px;line-height:1.2}
.dashboard-task-trio>.action-list{min-height:304px}

/* Demand center */
.request-type-option{min-height:64px;padding:12px 15px}
.request-type-option>strong{font-size:15px;line-height:1.4}
.request-type-option>b{font-size:11px}
.request-form-heading strong{font-size:17px}
.request-form-heading small{font-size:var(--font-meta);line-height:1.5}
.request-form-grid{row-gap:20px}
.request-form-grid .field{gap:8px}
.request-status-row>.tag{font-size:11px}

/* Project center and right detail */
.workflow-stage-panel>header{padding:14px 18px 5px}
.workflow-stage-panel>header strong{font-size:13px;line-height:1.45;color:var(--text-secondary)}
.workflow-stage-panel>header>small{font-size:var(--font-meta)}
.process-node-label{font-size:12px;line-height:1.4}
.process-node-note,.process-decision-note{font-size:11px;line-height:1.4}
.process-arrow em,.process-branch-yes{font-size:11px}
.assignment-detail header{padding:16px 18px}
.assignment-detail h2{font-size:19px;line-height:1.4}
.assignment-detail .detailbody{padding:16px 18px}
.project-overview-grid{gap:8px;margin-bottom:12px}
.project-overview-grid>div{padding:10px}
.project-overview-grid span,.requirement-overview-grid span{font-size:11px;line-height:1.4}
.project-overview-grid b,.requirement-overview-grid b{font-size:13px;line-height:1.45}
.requirement-overview-section h3{font-size:var(--font-label)}
.requirement-overview-section h3 small{font-size:11px}
.requirement-summary p,.responsibility-card p{font-size:var(--font-meta);line-height:1.65}
.requirement-attachment-list span,.assignment-roster-note,.assignment-no-user,.assignment-error{font-size:var(--font-meta);line-height:1.5}
.assignment-collaborator-toggle{min-height:var(--control-height);font-size:var(--font-body)}
.assignment-collaborators label{min-height:40px;padding:9px 10px;font-size:var(--font-body)}

/* Stage overview and execution */
.stage-overview-hero{padding:12px 13px}
.stage-overview-hero>span,.stage-overview-hero>div>small{font-size:11px;line-height:1.4}
.stage-overview-hero h3{margin:4px 0;font-size:16px;line-height:1.4}
.stage-overview-hero p{display:block;font-size:var(--font-meta);line-height:1.55;-webkit-line-clamp:unset}
.stage-overview-hero>div{margin-top:9px}
.stage-overview-section{margin-top:12px}
.stage-overview-section h4,.stage-overview-columns .stage-overview-section h4{margin-bottom:7px;font-size:var(--font-label);line-height:1.4}
.stage-overview-section h4 small,.stage-overview-columns .stage-overview-section h4 small{min-width:18px;height:18px;font-size:10px}
.stage-focus-list,.stage-file-list,.stage-overview-columns .stage-focus-list,.stage-overview-columns .stage-file-list{gap:5px}
.stage-focus-list span,.stage-overview-columns .stage-focus-list span{min-height:32px;padding:6px 8px;font-size:var(--font-meta);line-height:1.4}
.stage-focus-list i,.stage-overview-columns .stage-focus-list i{flex-basis:18px;width:18px;height:18px;font-size:10px}
.stage-file-list>span,.stage-overview-columns .stage-file-list>span{min-height:32px;padding:6px 8px;font-size:var(--font-meta);line-height:1.4}
.stage-file-list>span>b,.stage-overview-columns .stage-file-list>span>b{height:20px;font-size:10px}
.stage-execution-summary{display:grid;gap:5px;margin:0}
.stage-execution-summary>div{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;min-height:32px;padding:6px 8px;border:1px solid #e1e6f0;border-radius:7px;background:#fff}
.stage-execution-summary dt{color:#687790;font-size:11px;line-height:1.4}
.stage-execution-summary dd{min-width:0;margin:0;color:#172743;font-size:var(--font-meta);font-weight:700;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-execution-summary dd small{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:8px;background:#edf5ff;color:#315fb8;font-size:10px;font-weight:700;vertical-align:1px}
.stage-execution-summary dd small.completed,.stage-execution-summary dd small.normal{background:#eaf8f1;color:#168259}
.stage-execution-summary dd small.due-soon{background:#fff4e4;color:#b56809}
.stage-execution-summary dd small.overdue{background:#fff0f3;color:#c43c5c}
.stage-execution-summary dd small.pending{background:#f1f3f7;color:#68758c}
.direction-deliverable-list{display:grid;gap:10px}
.direction-deliverable-card{overflow:hidden;border:1px solid #dce4f2;border-radius:10px;background:#fff}
.direction-deliverable-image{position:relative;overflow:hidden;aspect-ratio:4/3;background:#f3f6fb}
.direction-deliverable-image.empty{background:#fff}
.direction-deliverable-image svg,.direction-deliverable-image img{display:block;width:100%;height:100%;object-fit:contain;background:#f7f9fd}
.direction-deliverable-image-button{width:100%;padding:0;border:0;cursor:zoom-in}
.direction-deliverable-image-button:focus-visible{outline:3px solid rgba(47,99,218,.28);outline-offset:-3px}
.direction-deliverable-image>span{position:absolute;top:8px;left:8px;padding:3px 7px;border-radius:10px;background:rgba(18,35,66,.82);color:#fff;font-size:10px;font-weight:800}
.direction-deliverable-copy{padding:9px 10px 10px}
.direction-deliverable-copy h4{margin:0;color:#172743;font-size:var(--font-label);line-height:1.4}
.direction-deliverable-copy p{margin:5px 0 0;color:#52617a;font-size:var(--font-meta);line-height:1.55}
.direction-deliverable-copy p b{margin-right:6px;color:#294d91;font-size:11px}
.direction-deliverable-empty{display:grid;place-items:center;min-height:120px;border:1px dashed #d9e1ee;border-radius:10px;background:#fbfcfe;color:#8a95a8;font-size:var(--font-meta)}
.direction-deliverables.review{margin-bottom:10px;padding:9px;border:1px solid #dbe3f1;border-radius:9px;background:#f8faff}
.direction-deliverables.review .direction-deliverable-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.direction-deliverables.review .direction-deliverable-image{aspect-ratio:4/3}
.direction-deliverables.review .direction-deliverable-copy{padding:7px 8px 8px}
.direction-deliverables.review .direction-deliverable-copy p{display:-webkit-box;overflow:hidden;font-size:11px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.direction-deliverables.review .direction-deliverable-empty{min-height:72px;background:#fff}
.simple-review-form{padding:14px}
.simple-review-form .field{gap:7px}
.simple-review-form .field label{font-size:var(--font-label)}
.simple-review-form .field textarea{min-height:108px;padding:10px 11px;font-size:var(--font-body);line-height:1.5}
.simple-review-actions{margin-top:12px}
.simple-review-actions .btn{flex:1;min-height:40px;font-size:var(--font-label)}
.simple-review-actions #confirmRejectReview{border-color:#e2a9b7;color:#b83252}
.design-deliverables{display:grid;gap:8px}
.design-deliverable-block{overflow:hidden;border:1px solid #dce4f2;border-radius:10px;background:#fff}
.design-deliverable-block>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid #e8edf5;background:#fafcff}
.design-deliverable-block>header h3{margin:0;color:#172743;font-size:var(--font-label);line-height:1.4}
.design-deliverable-block>header span{color:#6b7890;font-size:11px}
.design-image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px}
.design-image-grid:has(>figure:only-child){grid-template-columns:1fr}
.design-image-grid figure{min-width:0;margin:0;overflow:hidden;border:1px solid #e1e6ef;border-radius:8px;background:#f7f9fc}
.design-image-preview-button{display:block;width:100%;padding:0;border:0;background:#f7f9fc;cursor:zoom-in}
.design-image-preview-button:focus-visible{outline:3px solid rgba(47,99,218,.28);outline-offset:-3px}
.design-image-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f7f9fd}
.design-image-grid figcaption{overflow:hidden;padding:6px 7px;color:#465672;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.design-deliverable-empty{display:grid;place-items:center;min-height:48px;color:#8b96a8;font-size:var(--font-meta)}
.ppt-deliverable{padding:8px}
.ppt-preview-frame{overflow:hidden;border:1px solid #e1e6ef;border-radius:8px;background:#f7f9fc}
.ppt-preview-frame>img,.ppt-preview-frame .ppt-preview-button img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#f7f9fd}
.ppt-preview-frame .design-deliverable-empty{min-height:112px}
.ppt-preview-unavailable{display:grid;place-items:center;align-content:center;gap:5px;min-height:112px;padding:14px;text-align:center;background:linear-gradient(145deg,#f7f9fd,#eef3fb)}
.ppt-preview-unavailable>span{display:grid;place-items:center;width:46px;height:54px;border-radius:7px;background:#e9573f;color:#fff;font-size:13px;font-weight:800;letter-spacing:.5px;box-shadow:0 5px 14px rgba(183,57,38,.16)}
.ppt-preview-unavailable>strong{color:#33435f;font-size:12px}
.ppt-preview-unavailable>small{color:#7a879c;font-size:11px}
.ppt-deliverable>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px}
.ppt-deliverable>footer>div{min-width:0}
.ppt-deliverable>footer b,.ppt-deliverable>footer span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppt-deliverable>footer b{color:#172743;font-size:var(--font-label)}
.ppt-deliverable>footer span{margin-top:2px;color:#758198;font-size:11px}
.ppt-deliverable>footer .btn{flex:0 0 auto;padding:8px 11px;text-decoration:none;font-size:var(--font-meta)}
.stp-deliverable{padding:2px}
.electronic-deliverables{display:grid;gap:10px}
.stp-deliverable-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid #dce4f2;border-radius:10px;background:#fff}
.stp-file-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:9px;background:#eaf1ff;color:#285fcf;font-size:12px;font-weight:800;letter-spacing:.4px}
.stp-deliverable-card>div{min-width:0}
.stp-deliverable-card b,.stp-deliverable-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stp-deliverable-card b{color:#172743;font-size:var(--font-label)}
.stp-deliverable-card small{margin-top:4px;color:#758198;font-size:var(--font-meta)}
.stp-deliverable-card .btn{padding:8px 12px;text-decoration:none;font-size:var(--font-meta)}
.stp-file-state{color:#4e678b;font-size:var(--font-meta)}
.stp-deliverable-empty{display:grid;place-items:center;min-height:96px;border:1px dashed #d7dfec;border-radius:10px;color:#8b96a8;font-size:var(--font-meta)}
.design-deliverable-block .stp-deliverable{padding:8px}
.design-deliverable-block .stp-deliverable-card{padding:10px}
@media(max-width:520px){.direction-deliverables.review .direction-deliverable-list{grid-template-columns:1fr}}
.direction-image-lightbox{width:min(94vw,1200px);max-width:none;max-height:94vh;padding:0;overflow:visible;background:transparent;border:0}
.direction-image-lightbox[open]{display:grid;place-items:center}
.direction-image-lightbox::backdrop{background:rgba(8,18,35,.8);backdrop-filter:blur(3px)}
.direction-image-lightbox figure{position:relative;display:grid;max-width:94vw;max-height:92vh;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.36)}
.direction-image-lightbox img{display:block;width:auto;height:auto;max-width:94vw;max-height:84vh;object-fit:contain;background:#f7f9fd}
.direction-image-lightbox figcaption{padding:11px 48px 12px 14px;color:#172743;background:#fff;font-size:13px;font-weight:700;line-height:1.4}
.direction-image-lightbox-close{position:absolute;z-index:1;top:10px;right:10px;display:grid;place-items:center;width:34px;height:34px;padding:0;color:#fff;background:rgba(12,27,53,.78);border:1px solid rgba(255,255,255,.28);border-radius:50%;font-size:24px;line-height:1;cursor:pointer}
.direction-image-lightbox-close:hover{background:#17376f}
.direction-image-lightbox-close:focus-visible{outline:3px solid rgba(255,255,255,.7);outline-offset:2px}
.stage-latest-outcome,.compact-requirement{margin-top:10px}
.stage-latest-outcome span,.stage-latest-outcome p,.stage-requirement-inline,.stage-requirement-inline>b{font-size:11px;line-height:1.45}
.stage-review-preview span{font-size:11px}
.stage-review-preview b{font-size:var(--font-meta)}
.compact-requirement .requirement-summary p{display:block;font-size:var(--font-meta);line-height:1.5;-webkit-line-clamp:unset}
.compact-requirement .requirement-summary small,.sample-parameter-strip span{font-size:11px}
.stage-execution-card>header{padding:12px 13px}
.stage-execution-card>header>span{width:32px;height:32px;font-size:13px}
.stage-execution-card h3{font-size:var(--font-section)}
.stage-execution-card header p{margin-top:3px;font-size:var(--font-meta);line-height:1.45}
.stage-action-form{padding:14px}
.stage-action-form .field textarea{min-height:72px}
.stage-action-footer span,.stage-action-message p,.stage-history-item p,.stage-history-item span,.leader-reopen-action{font-size:var(--font-meta);line-height:1.5}
.stage-action-message b,.stage-history-item b,.final-file-list span,.final-file-list a{font-size:var(--font-label)}

/* Sampling and approvals */
.sample-decision-card span,.sample-decision-card small,.sample-decision-paths small,.sample-decision-choice label small{font-size:var(--font-meta);line-height:1.5}
.sample-decision-paths b,.sample-decision-choice label b,.sample-decision-choice legend,.sample-parameter-panel h4,.sample-parameter-summary h4{font-size:var(--font-label);line-height:1.4}
.sample-decision-paths span{font-size:12px}
.sample-decision-choice label{min-height:48px;padding:11px 12px}
.sample-parameter-grid{gap:12px}
.sample-parameter-summary-grid span{font-size:11px}
.sample-parameter-summary-grid b{font-size:var(--font-label)}
.sample-info-detail header{padding:13px 18px}
.sample-info-detail h2{margin-top:6px}
.sample-info-detail .detailbody{padding:12px 18px}
.sample-info-entry{display:grid;gap:10px}
.sample-info-back-button{justify-self:start;padding:0;border:0;background:transparent;color:var(--blue);font-size:var(--font-meta);font-weight:700;line-height:1.4;cursor:pointer}
.sample-info-back-button:hover{text-decoration:underline}
.sample-info-stp{display:grid;gap:6px}
.sample-info-stp h4{margin:0;color:#172743;font-size:var(--font-label)}
.sample-info-stp .stp-deliverable-card{grid-template-columns:38px minmax(0,1fr) auto;gap:9px;padding:9px 10px}
.sample-info-stp .stp-file-icon{width:38px;height:38px;border-radius:8px}
.sample-info-stp .stp-deliverable-card small{margin-top:2px}
.sample-info-form{display:grid;gap:10px}
.sample-info-form fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 10px;min-width:0;margin:0;padding:0;border:0}
.sample-info-form .field{min-width:0;margin:0;gap:5px}
.sample-info-form .sample-owner-field,.sample-info-form .field:nth-child(4){grid-column:1/-1}
.sample-info-form .field label{font-size:12px;line-height:1.4}
.sample-info-form .field input,.sample-info-form .field select,.sample-info-form .field textarea{width:100%;min-width:0;padding:8px 9px;font-size:13px}
.sample-info-form .field textarea{min-height:58px;resize:none}
.sample-info-form fieldset:disabled input,.sample-info-form fieldset:disabled select,.sample-info-form fieldset:disabled textarea{background:#f7f9fc;color:#64718a;opacity:1}
.sample-info-form .stage-action-footer{padding:0;border:0}
.sample-info-form .stage-action-footer .btn{width:100%}
@media(max-width:420px){.sample-info-form fieldset{grid-template-columns:1fr}.sample-info-form .sample-owner-field,.sample-info-form .field:nth-child(4){grid-column:auto}}
.appearance-confirmation-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px}.appearance-confirmation-status>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:10px;border:1px solid #dce4f2;border-radius:8px;background:#fafcff}.appearance-confirmation-status span{grid-column:1/-1;color:#687790;font-size:11px}.appearance-confirmation-status b{min-width:0;color:#172743;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appearance-confirmation-status em{color:#b66a10;font-size:11px;font-style:normal;font-weight:700}.appearance-confirmation-status>div.done{border-color:#cce7da;background:#f5fbf8}.appearance-confirmation-status>div.done em{color:#148158}@media(max-width:420px){.appearance-confirmation-status{grid-template-columns:1fr}}
.review-material-panel>header{padding:10px 11px}
.review-material-panel header span,.review-material-panel header b,.review-material-panel header em{font-size:11px;line-height:1.4}
.review-material-panel>div>span{min-height:36px;padding:8px 10px}
.review-material-panel>div i{width:20px;height:20px;font-size:10px}
.review-material-panel>div b{font-size:var(--font-meta)}
.review-material-panel>div small{font-size:11px}
.review-decision-routes>div{padding:10px}
.review-decision-routes span{font-size:11px}
.review-decision-routes b{font-size:var(--font-label)}
.review-decision-routes small{font-size:11px;line-height:1.4}
.review-stage-form{padding:12px}
.review-stage-form .field textarea{min-height:64px;padding:9px 10px;font-size:var(--font-body)}
.review-stage-form .stage-action-footer .btn{min-height:38px;padding:8px 11px;font-size:13px}
.design-sample-review-actions{gap:7px}
.design-sample-review-actions .btn{flex:1;min-width:0;white-space:nowrap}
.design-sample-review-actions .decision-no-sample{border-color:#9db5e7;background:#f5f8ff;color:var(--blue)}
.review-reject-panel header b{font-size:var(--font-label)}
.review-reject-panel header button,.review-reject-panel>p{font-size:var(--font-meta);line-height:1.5}
.approval-result-card>span,.approval-result-card p,.approval-result-card>small{font-size:var(--font-meta);line-height:1.5}
.approval-result-card h3{font-size:var(--font-section)}
.sample-approval-complete .btn{margin-top:12px}
.sample-decision-adjustment{display:grid;gap:14px}
.sample-decision-adjustment>div>span{display:block;color:#536584;font-size:var(--font-meta);line-height:1.4}
.sample-decision-adjustment>div>h3{margin:4px 0 0;color:#102241;font-size:var(--font-section);line-height:1.4}
.sample-decision-adjustment .sample-decision-choice{margin:0}
.sample-decision-adjustment .stage-action-footer{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;padding-top:12px}
.sample-decision-adjustment .stage-action-footer .btn{width:100%;min-width:0}
.review-only-card .review-material-panel header span,.review-only-card .review-material-panel>div b{font-size:11px}
.review-only-card .review-material-panel>div i{width:18px;height:18px;font-size:9px}

/* Knowledge, AI tools and products */
.kb-welcome p,.kb-shortcut small,.kb-departments small,.kb-section-title a,.kb-row,.kb-list footer{font-size:var(--font-meta);line-height:1.5}
.kb-welcome b{font-size:var(--font-label)}
.kb-list h3{font-size:var(--font-section)}
.tool-brand>span{font-size:11px}
.tool-card h3{font-size:18px}
.tool-card p{font-size:13px;line-height:1.65}
.tool-card small,.tool-footer{font-size:var(--font-meta)}
.ai-assistant h3 span,.product-ai h3 span{font-size:11px}
.ai-assistant header p,.product-ai header p,.ai-sources,.ai-warning{font-size:var(--font-meta);line-height:1.5}
.ai-suggestions button,.product-prompts button{min-height:36px;padding:8px 11px;font-size:13px}
.product-code{font-size:var(--font-meta)}
.product-info>p{font-size:13px;line-height:1.5}
.product-tags span{padding:4px 7px}
.product-info dt{font-size:11px}
.product-info dd{font-size:13px}

/* KPI and permission management */
.kpi-person small,.kpi-progress>div,.kpi-dims span,.kpi-settings header p,.kpi-setting-note,.kpi-setting-row small,.kpi-setting-row label,.kpi-setting-actions>span{font-size:var(--font-meta);line-height:1.45}
.kpi-setting-row input{padding:9px 10px}
.permission-role-card h3{font-size:var(--font-section)}
.permission-role-card p{font-size:13px;line-height:1.6}
.permission-role-card{min-height:116px;padding:18px}

@media(max-width:1050px){
  .nav button{font-size:0}
  .nav button:before{font-size:12px}
  .nav button>span{display:none}
  .nav-new-dot{position:absolute;right:11px;top:9px}
}
@media(max-width:700px){
  .content{padding:16px}
  .page-head h2,.permission-heading h2,.subpage-head h2{font-size:21px}
  .btn{min-height:40px}
  .table th{font-size:12px}
  .process-node-label{font-size:12px}
}

/* Page-specific readability corrections */
.project-table{min-width:1040px}
.project-table th,.project-table td{white-space:nowrap;vertical-align:middle}
.project-table td:nth-child(2){min-width:220px;white-space:normal}
.project-table td:first-child b{white-space:nowrap}
.project-table .tag,.project-table .queue-state{white-space:nowrap}
.dashboard-task-trio .action-row b{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.stage-execution-title small{font-size:var(--font-meta);line-height:1.4;color:var(--text-muted)}

/* Whole-site minimum readable type scale */
.main small,
.sidebar small,
.topbar small{font-size:var(--font-meta)!important;line-height:1.45}
.tag,
.queue-state,
.permission-role,
.account-state,
.request-type-badge,
.request-kind-mini,
.demo-case-mini,
.product-tags span,
.product-photo em,
.product-result-head span,
.archive-note em,
.project-queue-tabs button b,
.section-count,
.process-node-note,
.process-decision-note,
.process-arrow em,
.process-branch-yes,
.project-overview-grid span,
.requirement-overview-grid span,
.requirement-overview-section h3 small,
.stage-overview-hero>span,
.stage-overview-hero>div>small,
.stage-overview-section h4 small,
.stage-overview-columns .stage-overview-section h4 small,
.stage-latest-outcome span,
.stage-latest-outcome p,
.stage-requirement-inline,
.stage-requirement-inline>b,
.stage-review-preview span,
.compact-requirement .requirement-summary small,
.sample-parameter-strip span,
.sample-parameter-summary-grid span,
.review-material-panel header span,
.review-material-panel header b,
.review-material-panel header em,
.review-material-panel>div small,
.review-decision-routes span,
.review-decision-routes small,
.review-only-card .review-material-panel header span,
.review-only-card .review-material-panel>div b,
.tool-brand>span,
.ai-assistant h3 span,
.product-ai h3 span,
.product-info dt{font-size:var(--font-meta)!important;line-height:1.4}
.assignment-requirement-brief dt{font-size:var(--font-meta)!important;line-height:1.4}
.assignment-collaborator-select .assignment-collaborators{gap:0;max-height:184px;padding:4px;overflow-y:auto}
.assignment-collaborator-select .assignment-collaborator-option{position:relative;display:flex;align-items:center;min-height:38px;padding:8px 34px 8px 11px;border:0;border-radius:5px;background:#fff;color:var(--text-primary);font-size:var(--font-body);line-height:1.4;cursor:pointer}
.assignment-collaborator-select .assignment-collaborator-option:hover{background:#f2f5fb}
.assignment-collaborator-option input{position:absolute;width:1px!important;height:1px!important;margin:0;opacity:0;pointer-events:none}
.assignment-collaborator-option span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.assignment-collaborator-option>i{position:absolute;right:12px;top:50%;width:8px;height:13px;border-right:2px solid transparent;border-bottom:2px solid transparent;transform:translateY(-58%) rotate(45deg)}
.assignment-collaborator-option:has(input:checked){background:var(--blue);color:#fff}
.assignment-collaborator-option:has(input:checked):hover{background:#2858bd}
.assignment-collaborator-option:has(input:checked)>i{border-color:#fff}
.assignment-collaborator-option:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:-2px}
.assignment-form-initial .assignment-collaborator-select .assignment-collaborators{gap:0;max-height:168px;padding:4px;border-color:#b8c2d3;border-radius:6px;box-shadow:0 6px 16px rgba(28,47,83,.14)}
.assignment-form-initial .assignment-collaborator-select .assignment-collaborator-option{min-height:32px;padding:5px 32px 5px 10px;border:0;border-radius:3px;font-size:14px;font-weight:400;line-height:1.4}
.assignment-form-initial .assignment-collaborator-select .assignment-collaborator-option span{font-weight:400}
.project-table{min-width:1080px;table-layout:fixed}
.project-table th:nth-child(1),.project-table td:nth-child(1){width:150px}
.project-table th:nth-child(2),.project-table td:nth-child(2){width:118px;min-width:0}
.project-table th:nth-child(3),.project-table td:nth-child(3){width:158px}
.project-table th:nth-child(4),.project-table td:nth-child(4){width:116px}
.project-table th:nth-child(5),.project-table td:nth-child(5){width:150px}
.project-table th:nth-child(6),.project-table td:nth-child(6){width:112px}
.project-table th:nth-child(7),.project-table td:nth-child(7){width:100px}
.project-table .project-action-column{position:sticky;right:0;width:104px;min-width:104px;text-align:center;z-index:1;background:#fff;box-shadow:-1px 0 0 var(--line)}
.project-table thead .project-action-column{z-index:3;background:#fafbfe}
.project-table tbody tr:hover .project-action-column,.project-table tbody tr.selected .project-action-column{background:#f2f6ff}
.project-table tbody tr.project-row-pending .project-action-column{background:#fffafd}
.project-table.project-table-with-actions th:nth-child(-n+7),.project-table.project-table-with-actions td:nth-child(-n+7){width:calc((100% - 104px)/7);min-width:0}.project-table:not(.project-table-with-actions) th:nth-child(-n+7),.project-table:not(.project-table-with-actions) td:nth-child(-n+7){width:14.2857%;min-width:0}.project-table tbody td{padding-top:16px;padding-bottom:16px;vertical-align:top;line-height:1.4}.project-table tbody tr{height:78px}.project-table tbody .project-action-column{padding-top:14px;vertical-align:top}.project-table td:nth-child(2),.project-table td:nth-child(3){white-space:normal;overflow-wrap:anywhere}
.project-table thead th:not(:first-child){text-align:center}
.project-table tbody td:not(:first-child){text-align:center;vertical-align:middle}
.project-table tbody .project-action-column{padding-top:16px;vertical-align:middle}
.project-table tbody td:nth-child(7) .progress{width:min(76px,100%);margin:5px auto 0}
.project-table-image-button{display:grid;place-items:center;width:72px;height:54px;margin:0 auto;padding:0;overflow:hidden;border:1px solid #dbe3f0;border-radius:8px;background:#f5f7fb;cursor:zoom-in}
.project-table-image-button:hover{border-color:#9eb5e3;background:#f8faff}
.project-table-image-button:focus-visible{outline:3px solid rgba(47,98,207,.3);outline-offset:2px}
.project-table-image-button img{display:block;width:100%;height:100%;object-fit:contain;background:#f5f7fb;opacity:0;transition:opacity .18s ease}
.project-table-image-button.loaded img{opacity:1}
.project-table-image-button.pending::before{content:"加载中";position:absolute;color:#8a96a9;font-size:11px}
.project-table-image-button{position:relative}
.project-table-image-empty{display:grid;place-items:center;width:72px;height:54px;margin:0 auto;border:1px dashed #d7dfec;border-radius:8px;color:#8a96a9;background:#fafbfe;font-size:11px;line-height:1.3}
.project-column-filter{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:28px;color:inherit;font-weight:inherit;cursor:pointer}.project-column-filter>i{width:8px;height:8px;margin-top:-4px;border-right:2px solid #70809b;border-bottom:2px solid #70809b;transform:rotate(45deg);transition:border-color .15s ease}.project-column-filter:hover>i,.project-column-filter:focus-within>i,.project-column-filter.active>i{border-color:#2f62cf}.project-column-filter.active{color:#2f62cf}.project-column-filter select{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.project-column-filter:focus-within{outline:3px solid rgba(47,98,207,.22);outline-offset:2px;border-radius:5px}.project-due-sort{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:28px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;cursor:pointer}.project-sort-arrows{display:inline-flex;align-items:center;gap:0;color:#8794a8;font-size:15px;line-height:1}.project-sort-arrows i{font-style:normal;font-weight:700}.project-due-sort:hover .project-sort-arrows,.project-due-sort:focus-visible .project-sort-arrows{color:#526886}.project-due-sort[data-sort="asc"] .sort-up,.project-due-sort[data-sort="desc"] .sort-down{color:#2f62cf}.project-due-sort:focus-visible{outline:3px solid rgba(47,98,207,.25);outline-offset:2px;border-radius:5px}
.project-delete-button{min-width:52px;min-height:32px;padding:5px 10px;border:1px solid #efb7c5;border-radius:6px;background:#fff;color:#c83c61;font:600 13px/1.2 inherit;cursor:pointer}
.project-delete-button:hover{border-color:#d84a6d;background:#fff3f6}
.project-delete-confirm{display:flex;justify-content:center;gap:5px}
.project-delete-confirm button{min-height:30px;padding:4px 7px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#536079;font:600 12px/1.2 inherit;cursor:pointer}
.project-delete-confirm button:first-child{border-color:#d64267;background:#d64267;color:#fff}
.project-table .project-action-column{position:static;right:auto;width:94px;min-width:94px;box-shadow:none}

/* Executor deliverable submission */
.executor-submission-view{display:grid;gap:12px}
.executor-submission-view>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 10px;border-bottom:1px solid var(--line)}
.executor-submission-view>header h3{margin:0;color:var(--navy);font-size:16px;line-height:1.4}
.executor-submission-view>header span{color:var(--blue);font-size:13px;font-weight:700}
.executor-return-notice{display:grid;gap:7px;padding:12px 14px;border:1px solid #efc4cf;border-radius:10px;background:#fff6f8}
.executor-return-notice>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.executor-return-notice>header span{color:#b83255;font-size:13px;font-weight:800}
.executor-return-notice>header b{color:#6f4250;font-size:12px;font-weight:700}
.executor-return-notice p{margin:0;color:#35242a;font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.executor-return-notice small{color:#765d66;font-size:11px;line-height:1.4}
.executor-deliverable-form{display:grid;gap:12px;min-width:0}
.executor-direction-grid,.executor-upload-grid,.executor-single-upload{display:grid;gap:14px}
.executor-direction-grid{grid-template-columns:1fr;gap:12px}
.executor-direction-item{display:grid;gap:9px;min-width:0;padding:12px;border:1px solid #dfe5f0;border-radius:10px;background:#fbfcff}
.executor-direction-item h4{margin:0;color:var(--navy);font-size:14px;line-height:1.4}
.executor-direction-item-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.executor-direction-remove{border:0;background:transparent;color:#e5485f;font:inherit;font-size:13px;cursor:pointer;padding:3px 0}
.executor-direction-remove:hover{text-decoration:underline}
.executor-direction-add{justify-self:stretch;min-height:40px;border-style:dashed}
.detail-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.detail-heading-row h2{min-width:0}
.detail-withdraw-button{flex:0 0 auto;border:0;background:transparent;color:#e5485f;font:inherit;font-size:13px;cursor:pointer;padding:4px 0}
.detail-withdraw-button:hover{text-decoration:underline}
.executor-file-field{min-width:0}
.executor-file-field input[type=file]{display:block;width:100%;max-width:100%;padding:7px;background:#fff;color:#34415c;font-size:12px;line-height:1.4;overflow:hidden}
.executor-existing-images,.executor-selected-images{display:grid;gap:7px}
.executor-existing-images>span{color:#5d6b84;font-size:12px;font-weight:700;line-height:1.4}
.executor-existing-images>div,.executor-selected-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.executor-existing-images>div{display:grid}
.executor-existing-images figure,.executor-selected-images figure{display:grid;min-width:0;margin:0;overflow:hidden;border:1px solid #dce4f2;border-radius:8px;background:#f8faff}
.executor-image-preview-button{display:block;width:100%;padding:0;border:0;background:#f4f7fc;cursor:zoom-in}
.executor-existing-images img,.executor-selected-images img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f4f7fc}
.executor-existing-images figcaption,.executor-selected-images figcaption{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;padding:6px 8px;color:#34415c;font-size:11px;line-height:1.4}
.executor-existing-images figcaption span,.executor-selected-images figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.executor-existing-images button,.executor-selected-images button,.executor-existing-file button{flex:0 0 auto;border:0;background:transparent;color:#e23b55;font:inherit;font-weight:700;cursor:pointer}
.executor-selected-images[hidden]{display:none}
.executor-existing-file{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #dfe6f4;border-radius:7px;background:#f3f6fc}
.executor-existing-file>div{display:grid;gap:3px;min-width:0}
.executor-existing-file span{color:#74819a;font-size:12px;line-height:1.4}
.executor-existing-file b{overflow:hidden;color:#263654;font-size:13px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.executor-existing-file-actions{display:flex!important;grid-auto-flow:column;align-items:center;gap:10px!important}
.executor-existing-file-actions a{color:#285ed9;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}
.executor-ppt-preview,.executor-selected-ppt{min-width:0}
.executor-ppt-preview{overflow:hidden;border:1px solid #dfe6f4;border-radius:8px;background:#fff}
.executor-ppt-preview-media{display:grid;place-items:center;min-height:112px;background:#f4f7fc}
.ppt-preview-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.ppt-preview-button img{display:block;width:100%;height:auto;object-fit:contain}
.executor-ppt-preview-media img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain}
.executor-ppt-preview-empty,.executor-ppt-preview-loading{display:grid;place-items:center;min-height:112px;padding:12px;color:#74819a;font-size:12px;text-align:center}
.executor-ppt-preview-media>.ppt-preview-unavailable{width:100%}
.executor-ppt-preview footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-top:1px solid #e4e9f2}
.executor-ppt-preview footer>div:first-child{display:grid;gap:2px;min-width:0}
.executor-ppt-preview footer b,.executor-ppt-preview footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.executor-ppt-preview footer b{color:#263654;font-size:13px}
.executor-ppt-preview footer span{color:#74819a;font-size:11px}
.executor-selected-ppt[hidden]{display:none}
.executor-deliverable-form textarea{min-height:68px;resize:none}
.executor-submit-actions{display:flex;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--line)}
.executor-submit-actions .btn{width:100%;min-height:42px;font-size:14px}
@media(min-width:1051px){.project-content .assignment-project-workspace>.assignment-detail{display:flex;flex-direction:column}.project-content .assignment-project-workspace>.assignment-detail>header,.project-content .assignment-project-workspace>.assignment-detail>.tabs{flex:0 0 auto}.project-content .assignment-project-workspace>.assignment-detail>.detailbody{flex:1;min-height:0;overflow-y:auto}.assignment-detail:has(.executor-submission-view) header{padding:13px 16px}.assignment-detail:has(.executor-submission-view) h2{margin-top:6px}.assignment-detail:has(.executor-submission-view) .detailbody{padding:13px 16px}}
.final-sample-deliverables{display:grid;gap:16px}
.final-sample-deliverables>article{display:grid;gap:11px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.final-sample-deliverables h3{margin:0;font-size:14px;line-height:1.4}
.final-sample-deliverables p{margin:0;color:#44516a;font-size:13px;line-height:1.65;white-space:pre-wrap}
.final-sample-deliverables figure{margin:0}
.full-flow-case-mini,.full-flow-case-badge{display:inline-flex;align-items:center;width:max-content;border-radius:5px;background:#eaf0ff;color:#2f62cf;font-size:10px;font-weight:700;line-height:1;padding:3px 6px}
.full-flow-case-mini{margin-left:6px}
.detail-title-row .full-flow-case-badge{margin-left:8px;margin-right:auto}
.detail-title-row .full-flow-case-badge+.queue-state{margin-left:0}
.history-stage-view{display:grid;gap:12px}
.history-stage-back{justify-self:start;padding:0;border:0;background:transparent;color:var(--blue);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.history-stage-back:hover{text-decoration:underline}
.history-stage-back:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}
.history-stage-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:13px;border:1px solid #cfdcf4;border-radius:10px;background:#f5f8ff}
.history-stage-hero>div small{color:#5270ae;font-size:10px;font-weight:700}
.history-stage-hero h3{margin:4px 0 0;color:#142544;font-size:17px}
.history-stage-hero em{align-self:start;padding:4px 7px;border-radius:9px;background:#e7eefc;color:#315eb8;font-size:9px;font-style:normal;font-weight:800}
.history-stage-hero p{grid-column:1/-1;margin:3px 0 0;color:#52627c;font-size:11px;line-height:1.55}
.history-stage-hero>span{grid-column:1/-1;color:#758198;font-size:9px}
.history-stage-section-title{margin:2px 0 -4px;padding-top:2px;border-top:1px solid #edf0f5}
.history-stage-section-title span{padding-top:10px}
.history-stage-empty{padding:18px;border:1px dashed #d7deeb;border-radius:9px;color:var(--muted);font-size:11px;text-align:center}
.history-stage-view .assignment-requirement-brief{margin:0}
.history-stage-view .direction-deliverables,.history-stage-view .design-deliverables,.history-stage-view .stp-deliverable,.history-stage-view .final-sample-deliverables{margin:0}

/* Project table equal column rhythm */
.project-table thead th:first-child,
.project-table tbody td:first-child{
  padding-left:12px;
  padding-right:12px;
  text-align:center;
}
.project-table tbody td:first-child b{
  width:100%;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.5;
}
.project-table tbody td:first-child .queue-state{
  width:max-content;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}
.project-table.project-table-with-actions th:nth-child(-n+8),
.project-table.project-table-with-actions td:nth-child(-n+8){
  width:12.5%;
  min-width:0;
}
.project-table.project-table-with-actions .project-action-column{
  width:12.5%;
  min-width:0;
  padding-left:12px;
  padding-right:12px;
  text-align:center;
}

/* My submissions: request information only, without project workflow exposure */
.own-submissions-page{display:flex;flex-direction:column;gap:14px;min-height:0}
.own-submissions-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:#fff}
.own-submissions-heading h2{margin:0;color:var(--navy);font-size:22px;line-height:1.35}
.own-submissions-heading p{margin:6px 0 0;color:#66738c;font-size:13px;line-height:1.55}
.own-submission-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.own-submission-stats>div{display:flex;align-items:center;justify-content:space-between;min-height:78px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:#fff}
.own-submission-stats span{color:#586780;font-size:13px;font-weight:600}
.own-submission-stats strong{color:var(--navy);font-size:25px;line-height:1}
.own-submission-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-height:0}
.own-submission-layout:has(.own-submission-editor){grid-template-columns:minmax(0,1fr) 390px}
.own-submission-list{min-height:260px;padding:0;overflow:hidden}
.own-submission-table-wrap{max-height:calc(calc(100dvh - var(--demo-bar-height, 0px)) - 350px);overflow:auto}
.own-submission-table{width:100%;table-layout:fixed}
.own-submission-table th,.own-submission-table td{padding:14px 12px;text-align:center;vertical-align:middle}
.own-submission-table th:first-child,.own-submission-table td:first-child{text-align:left}
.own-submission-table td strong,.own-submission-table td small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.own-submission-table td strong{color:var(--navy);font-size:14px}
.own-submission-table td small{margin-top:5px;color:#7b879d;font-size:11px}
.own-submission-actions{display:flex;align-items:center;justify-content:center;gap:8px}
.own-submission-actions .btn{min-height:32px;padding:6px 10px;font-size:12px}
.own-submission-locked{color:#8490a5;font-size:12px}
.own-submission-empty{display:flex;min-height:300px;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.own-submission-empty>span{display:grid;width:48px;height:48px;place-items:center;border-radius:12px;background:#edf3ff;color:var(--blue);font-size:20px;font-weight:800}
.own-submission-empty h2{margin:14px 0 0;color:var(--navy);font-size:18px}
.own-submission-empty p{margin:7px 0 16px;color:#74819a;font-size:13px}
.own-submission-editor{max-height:calc(calc(100dvh - var(--demo-bar-height, 0px)) - 245px);padding:18px;overflow:auto}
.own-submission-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:-2px 0 16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.own-submission-editor>header small{color:#71809a;font-size:11px}
.own-submission-editor>header h2{margin:4px 0 0;color:var(--navy);font-size:18px}
.own-submission-close{border:0;background:transparent;color:#66758e;font:400 24px/1 inherit;cursor:pointer}
.own-submission-editor form{display:grid;gap:14px}
.own-submission-form-grid{display:grid;grid-template-columns:1fr;gap:14px}
.own-submission-editor textarea{min-height:100px;resize:vertical}
.own-submission-edit-note{margin:0;color:#7a879d;font-size:12px;line-height:1.5}
.own-submission-editor-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.own-submission-dialog-backdrop{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:20px;background:rgba(15,30,55,.42)}
.own-submission-dialog{width:min(420px,100%);padding:22px;border-radius:12px;background:#fff;box-shadow:0 18px 55px rgba(17,35,68,.24)}
.own-submission-dialog h3{margin:0;color:var(--navy);font-size:18px}
.own-submission-dialog p{margin:10px 0 20px;color:#596880;font-size:13px;line-height:1.65}
.own-submission-dialog>div{display:flex;justify-content:flex-end;gap:10px}
@media(max-width:900px){.own-submissions-heading{align-items:flex-start;flex-direction:column}.own-submission-stats{grid-template-columns:1fr}.own-submission-layout:has(.own-submission-editor){grid-template-columns:1fr}.own-submission-editor{max-height:none}.own-submission-table-wrap{overflow-x:auto}.own-submission-table{min-width:850px}}

/* Keep request entry and submit actions in one viewport; only long input text
   and the attachment list have their own scroll area. */
.app.request-mode{height:calc(100dvh - var(--demo-bar-height, 0px));min-height:0;overflow:hidden}
.request-mode>.main{min-height:0;height:100%;display:flex;flex-direction:column}
.request-mode .topbar{flex:0 0 68px}
.request-mode .request-content{flex:1;min-height:0;display:flex;padding:12px 24px;overflow:hidden}
.request-mode .request-form-panel{width:100%;min-height:0;display:flex;flex-direction:column}
.request-mode .sampling-request-tabs{flex:none;padding:10px 20px}
.request-mode .request-form-heading{flex:none;padding:10px 20px}
.request-mode .request-form-heading>span{width:32px;height:32px}
.request-mode .request-form-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:14px 20px;gap:10px}
.request-mode .request-form-grid{flex:1;min-height:0;align-content:start;align-items:start;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px;column-gap:24px}
.request-mode .sampling-parameter-fields{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px;column-gap:24px}
.request-mode .request-form-grid .field{align-content:start;min-width:0;gap:5px}
.request-mode .request-form-grid .field>input:not([type=file]),.request-mode .request-form-grid .field>select{height:36px;min-height:36px;padding:6px 10px;width:100%;min-width:0}
.request-mode .request-form-grid .field>textarea{height:60px;min-height:60px;padding:6px 10px;resize:none;overflow:auto}
.request-mode .request-attachments-field{display:grid;grid-template-columns:180px minmax(0,1fr);column-gap:12px}
.request-mode .request-attachments-field>label{grid-column:1/-1}
.request-mode .request-attachment-picker{align-self:start;min-height:48px;padding:6px;gap:6px;flex-wrap:wrap}
.request-mode .request-attachment-picker>label{min-height:28px;padding:4px 8px}
.request-mode .request-attachment-list{min-height:48px;max-height:100px;overflow:auto;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.request-mode .request-attachment-item{width:100%;height:48px;aspect-ratio:auto;grid-template-columns:40px minmax(0,1fr);grid-template-rows:1fr;box-shadow:none}
.request-mode .request-attachment-thumbnail{border-bottom:0;border-right:1px solid var(--line)}
.request-mode .request-attachment-thumbnail.file b{width:32px;height:32px;font-size:11px}
.request-mode .request-attachment-meta{align-content:center;padding:4px 30px 4px 8px}
.request-mode .request-attachment-remove{top:11px;right:5px;width:22px;height:22px}
.request-mode .request-attachment-empty{min-height:48px}
.request-mode .request-form-panel .form-actions{flex:none;margin:0;padding:0}
.request-mode .request-form-panel .btn{padding:8px 14px}
@media(max-height:850px){
  .request-mode .request-content{padding:8px 18px}
  .request-mode .sampling-request-tabs{padding:6px 16px}
  .request-mode .request-form-heading{padding:6px 16px}
  .request-mode .request-form-heading>span{width:28px;height:28px}
  .request-mode .request-form-body{padding:8px 16px;gap:8px}
  .request-mode .request-form-grid,.request-mode .sampling-parameter-fields{row-gap:8px}
  .request-mode .request-form-grid .field{gap:4px}
  .request-mode .request-form-grid .field>input:not([type=file]),.request-mode .request-form-grid .field>select{height:32px;min-height:32px;padding:4px 8px}
  .request-mode .request-form-grid .field>textarea{height:48px;min-height:48px}
  .request-mode .request-attachment-list{max-height:48px}
}
@media(max-width:700px){
  .request-mode .request-content{padding:8px}
  .request-mode .request-form-body{padding:10px;gap:8px}
  .request-mode .request-form-grid,.request-mode .sampling-parameter-fields{column-gap:10px;row-gap:8px}
  .request-mode .request-form-grid .field label{font-size:12px}
  .request-mode .request-attachments-field{grid-template-columns:110px minmax(0,1fr);column-gap:8px}
  .request-mode .request-attachment-list{grid-template-columns:minmax(0,1fr);max-height:68px}
  .request-mode .request-attachment-picker{min-height:48px;flex-wrap:wrap}
}
/* Completed appearance projects start a separate revision, preserving the archive. */
.detail .tabs .project-revision-button{margin-left:auto;align-self:center;flex:none;border:1px solid #d8e2fa;border-radius:6px;background:#f3f6ff;color:#2f5fd4;padding:6px 14px;line-height:20px}
.project-revision-dialog{box-sizing:border-box;width:min(520px,calc(100vw - 32px));max-height:calc(calc(100dvh - var(--demo-bar-height, 0px)) - 40px);margin:auto;border:1px solid #dce4f5;border-radius:14px;padding:24px;color:#10294d;background:white;box-shadow:0 24px 80px #0d265a33;overflow:auto}
.project-revision-dialog::backdrop{background:#0c1d4055}
.project-revision-dialog header,.project-revision-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.project-revision-dialog h2{font-size:20px;margin:0}
.project-revision-dialog header button{border:0;background:none;font-size:26px;color:#7383a3;cursor:pointer}
.project-revision-dialog .revision-source-name{font-size:13px;color:#687da3;overflow-wrap:anywhere;margin:12px 0 22px}
.project-revision-dialog .field{display:flex;flex-direction:column;gap:8px;margin:0 0 18px}
.project-revision-dialog label{font-size:13px;font-weight:600}
.project-revision-dialog textarea,.project-revision-dialog input{box-sizing:border-box;width:100%;min-width:0;border:1px solid #dce4f5;border-radius:8px;padding:10px 12px;font:inherit;color:inherit;background:white}
.project-revision-dialog textarea{height:150px;resize:vertical}
.project-revision-dialog input{height:42px}
.project-revision-dialog footer{justify-content:flex-end;margin-top:24px}
.project-revision-dialog .revision-error{color:#d73753;font-size:13px}
.project-revision-brief{padding:12px;border:1px solid #dce4f5;border-radius:10px;margin-bottom:12px;background:#f6f8ff;font-size:12px}
.project-revision-brief p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin:8px 0}
.project-revision-brief span{display:block;color:#637da4;margin:8px 0}
.project-revision-brief button{font-size:12px;max-width:100%;white-space:normal}
.platform-delete-dialog{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(440px,calc(100vw - 32px));max-height:calc(calc(100dvh - var(--demo-bar-height, 0px)) - 40px);padding:24px;border:1px solid #dce4f5;border-radius:16px;background:#fff;color:#10294d;box-shadow:0 24px 80px #0d265a33;overflow:auto}
.platform-delete-dialog::backdrop{background:rgba(15,30,55,.46)}
.platform-delete-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.platform-delete-dialog .delete-dialog-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#fff0ef;color:#c43232;font-size:24px;font-weight:700}
.platform-delete-dialog header button{border:0;background:transparent;color:#71809a;font-size:26px;cursor:pointer;padding:4px 8px}
.platform-delete-dialog h2{margin:0;font-size:20px;line-height:1.4}
.platform-delete-dialog .delete-dialog-target{margin:12px 0;padding:12px;background:#f5f7fc;border:1px solid #e5eaf4;border-radius:8px;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.platform-delete-dialog .delete-dialog-message{margin:12px 0 0;font-size:13px;line-height:1.75;color:#62728b;overflow-wrap:anywhere}
.platform-delete-dialog .delete-dialog-error{font-size:13px;color:#b42318;overflow-wrap:anywhere}
.platform-delete-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.platform-delete-dialog footer .btn{min-width:88px;min-height:40px}
.platform-delete-dialog footer .danger{color:white;background:#d73753;border-color:#d73753}
.platform-delete-dialog button:focus-visible{outline:3px solid #91b1ff;outline-offset:3px}
.platform-delete-dialog button:disabled{opacity:.6;cursor:wait}
@media(min-width:1101px){.kpi-grid.workbench-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
