:root{--navy:#183153;--navy-2:#24466f;--blue:#eaf1f8;--teal:#0f8f83;--teal-bg:#e4f5f2;--orange:#d77927;--orange-bg:#fff0df;--red:#bb3e3e;--red-bg:#fdeaea;--green:#34865f;--green-bg:#eaf6ef;--ink:#172033;--muted:#6b7485;--line:#e3e8ef;--bg:#f4f7fa;--white:#fff;--shadow:0 12px 35px rgba(24,49,83,.11);font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC",system-ui,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:16px}.app-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:#fff;padding:28px 18px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:12px;align-items:center;padding:0 10px 28px}.brand strong{display:block;font-size:1.08rem}.brand small{display:block;margin-top:3px;color:#9fb2c9;font-size:.68rem;letter-spacing:.08em}.brand-mark{width:36px;height:36px;border-radius:10px;background:#fff;display:flex;flex-direction:column;gap:4px;justify-content:center;padding:8px}.brand-mark span{height:3px;background:var(--navy);border-radius:3px}.brand-mark span:nth-child(2){width:70%;background:#1bb4a3}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#cbd8e8;display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border-radius:10px;font-size:.93rem;cursor:pointer;text-align:left}.nav-item:hover,.nav-item.active{background:#29476b;color:#fff}.nav-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.08);font-size:.76rem;font-weight:700}.nav-item b{margin-left:auto;min-width:22px;padding:2px 6px;border-radius:99px;background:#e97b4d;color:#fff;text-align:center;font-size:.72rem}.sidebar-note{margin-top:auto;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:14px;background:rgba(255,255,255,.05)}.sidebar-note span,.sidebar-note small{display:block;color:#aebed0;font-size:.72rem}.sidebar-note strong{display:block;margin:5px 0;font-size:.9rem}.workspace{min-width:0;padding:0 34px 40px}.topbar{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);margin-bottom:24px}.topbar h1{margin:0;font-size:1.55rem;letter-spacing:-.02em}.topbar p{margin:6px 0 0;color:var(--muted);font-size:.88rem}.top-actions{display:flex;align-items:end;gap:12px}.week-select{display:grid;gap:5px;color:var(--muted);font-size:.72rem}.week-select select,.field input,.field select,.field textarea,.search input{font:inherit;border:1px solid #d8dee7;border-radius:9px;background:#fff;color:var(--ink);padding:10px 12px;outline:none}.week-select select:focus,.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{border-color:#7193ba;box-shadow:0 0 0 3px rgba(50,104,161,.11)}.btn{border:0;border-radius:9px;padding:10px 15px;font:inherit;font-size:.88rem;font-weight:650;cursor:pointer;white-space:nowrap}.btn.primary{background:var(--navy);color:#fff}.btn.primary:hover{background:#0f2746}.btn.secondary{background:var(--blue);color:var(--navy)}.btn.ghost{background:#f1f4f7;color:#4f5b6a}.btn.danger{background:var(--red-bg);color:var(--red)}.mobile-menu{display:none;border:0;background:none;font-size:1.35rem}.view{display:none}.view.active{display:block}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin-bottom:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;min-height:106px}.kpi .label{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.78rem}.kpi .value{display:block;margin:12px 0 4px;font-size:1.75rem;line-height:1;font-weight:750;letter-spacing:-.04em}.kpi small{color:var(--muted);font-size:.72rem}.kpi.alert{border-color:#f1c2c2;background:#fffafa}.kpi.alert .value{color:var(--red)}.overview-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-bottom:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 1px 1px rgba(23,32,51,.02)}.panel.flush{overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 14px}.panel-head h2{margin:0;font-size:1rem}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:.78rem}.text-btn{border:0;background:none;color:#2c6599;font-weight:650;cursor:pointer}.attention-list{padding:0 12px 12px}.attention-item{display:flex;align-items:center;gap:12px;padding:12px 8px;border-top:1px solid #edf0f4}.attention-symbol{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:.75rem;font-weight:750}.attention-symbol.red{background:var(--red-bg);color:var(--red)}.attention-symbol.orange{background:var(--orange-bg);color:var(--orange)}.attention-symbol.blue{background:var(--blue);color:var(--navy)}.attention-copy{min-width:0;flex:1}.attention-copy strong{display:block;font-size:.88rem}.attention-copy span{display:block;color:var(--muted);font-size:.75rem;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.small-action{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;font-size:.75rem;cursor:pointer}.capacity-brief{padding-bottom:11px}.capacity-row{padding:8px 20px}.capacity-meta{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:7px}.capacity-meta span:last-child{color:var(--muted)}.bar{height:8px;border-radius:99px;background:#e9eef4;overflow:hidden}.bar i{display:block;height:100%;border-radius:99px;background:var(--green)}.bar i.pressure{background:#e0a344}.bar i.over{background:#d24f4f}.recent-panel{margin-bottom:16px}.legend{display:flex;gap:15px;color:var(--muted);font-size:.73rem}.legend span{display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%;background:#8fa0b4}.dot.navy{background:var(--navy)}.dot.orange{background:var(--orange)}.dot.teal{background:var(--teal)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:860px}th{text-align:left;color:#667181;background:#f7f9fb;font-size:.73rem;font-weight:650;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 14px;border-bottom:1px solid #edf0f4;font-size:.82rem;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfe}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#566274;font-size:.75rem}.project-name{font-weight:650}.subline{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}.pill{display:inline-flex;align-items:center;border-radius:99px;padding:4px 8px;font-size:.7rem;font-weight:650;white-space:nowrap}.pill.review{background:var(--orange-bg);color:#a55b16}.pill.confirmed{background:var(--blue);color:#285c8b}.pill.progress{background:var(--teal-bg);color:#08776d}.pill.done{background:var(--green-bg);color:#27734d}.pill.missing{background:var(--red-bg);color:var(--red)}.type-tag{display:inline-flex;align-items:center;gap:5px;font-size:.75rem}.type-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--navy)}.type-tag.extra:before{background:var(--orange)}.type-tag.new:before{background:var(--teal)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.segmented{display:flex;background:#e9edf2;padding:4px;border-radius:10px;overflow:auto}.segmented button{border:0;background:none;padding:8px 12px;border-radius:7px;color:#687384;font:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap}.segmented button.active{background:#fff;color:var(--navy);font-weight:650;box-shadow:0 2px 8px rgba(30,50,80,.08)}.search{position:relative}.search span{position:absolute;left:11px;top:8px;color:#7d8795}.search input{padding-left:31px;width:250px}.schedule-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.summary-chip{background:#fff;border:1px solid var(--line);padding:13px 15px;border-radius:11px;display:flex;justify-content:space-between;align-items:center}.summary-chip span{font-size:.78rem;color:var(--muted)}.summary-chip strong{font-size:1.15rem}.kanban{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:14px;overflow:auto;padding-bottom:8px}.kanban-col{background:#edf1f5;border-radius:13px;padding:12px;min-height:430px}.kanban-title{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:700;padding:4px 3px 12px}.kanban-title span{color:var(--muted);font-weight:500}.task-card{background:#fff;border:1px solid #dfe5ec;border-radius:11px;padding:13px;margin-bottom:10px;box-shadow:0 2px 7px rgba(30,50,80,.04)}.task-card strong{font-size:.86rem}.task-card p{font-size:.73rem;color:var(--muted);margin:6px 0 11px}.task-foot{display:flex;justify-content:space-between;align-items:center;font-size:.72rem}.avatar{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700}.capacity-callout{display:flex;justify-content:space-between;align-items:center;background:var(--navy);color:#fff;border-radius:13px;padding:15px 18px;margin-bottom:16px}.capacity-callout strong{display:block;font-size:.9rem}.capacity-callout span{display:block;color:#bfcde0;font-size:.76rem;margin-top:3px}.load-cell{min-width:190px}.load-numbers{display:flex;justify-content:space-between;margin-bottom:6px;font-size:.75rem}.load-scale{height:9px;background:linear-gradient(90deg,#deefe4 0 80%,#fff0d9 80% 100%);border-radius:99px;overflow:hidden}.load-scale i{display:block;height:100%;background:var(--green);border-radius:99px}.load-scale i.pressure{background:#e0a344}.load-scale i.over{background:#d24f4f}.project-stats{display:flex;gap:10px}.project-stat{background:#fff;border:1px solid var(--line);padding:9px 12px;border-radius:9px;font-size:.76rem;color:var(--muted)}.project-stat b{color:var(--ink);margin-left:6px}.modal-backdrop{position:fixed;inset:0;background:rgba(10,24,42,.42);opacity:0;pointer-events:none;transition:.2s;z-index:80}.modal-backdrop.show{opacity:1;pointer-events:auto}.drawer{position:fixed;right:0;top:0;width:min(520px,100%);height:100vh;background:#fff;z-index:90;transform:translateX(102%);transition:.25s ease;box-shadow:-20px 0 50px rgba(14,30,52,.18);display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}.drawer-head small{color:var(--muted)}.drawer-head h2{margin:4px 0 0;font-size:1.2rem}.icon-btn{border:0;background:#f1f4f7;width:34px;height:34px;border-radius:9px;font-size:1.25rem;cursor:pointer}.drawer form{display:flex;flex-direction:column;min-height:0;flex:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:22px 24px;overflow:auto}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field span{font-size:.77rem;color:#5e6978;font-weight:650}.field textarea{resize:vertical}.drawer-foot{margin-top:auto;padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.review-only{display:none}.drawer.reviewing .review-only{display:grid}.drawer.reviewing .drawer-foot .review-only{display:inline-block}.dialog{position:fixed;left:50%;top:50%;width:min(420px,calc(100% - 30px));transform:translate(-50%,-45%) scale(.97);background:#fff;border-radius:14px;z-index:95;box-shadow:var(--shadow);padding:20px;opacity:0;pointer-events:none;transition:.18s}.dialog.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{margin:0;font-size:1.05rem}.dialog form{display:grid;gap:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,30px);background:#172d49;color:#fff;padding:11px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;z-index:110;font-size:.84rem}.toast.show{opacity:1;transform:translate(-50%,0)}.empty{padding:32px;text-align:center;color:var(--muted)}
@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.overview-grid{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(4,270px)}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;transform:translateX(-102%);transition:.2s;width:230px}.sidebar.open{transform:translateX(0)}.workspace{padding:0 15px 28px}.topbar{align-items:flex-start;padding:17px 0;min-height:auto}.topbar h1{font-size:1.2rem}.topbar p{display:none}.top-actions{flex-direction:column;align-items:stretch}.mobile-menu{display:block}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi{min-height:94px}.toolbar{align-items:stretch;flex-direction:column}.search input{width:100%}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.schedule-summary{grid-template-columns:repeat(2,1fr)}.capacity-callout{align-items:flex-start;gap:12px}.legend{display:none}}
.schedule-policy{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(135deg,#183153,#244d76);color:#fff;border-radius:13px;padding:17px 20px;margin-bottom:16px}.schedule-policy strong{display:block;font-size:.92rem}.schedule-policy p{margin:5px 0 0;color:#c8d6e6;font-size:.76rem;line-height:1.55}.schedule-policy .btn{background:#fff;color:var(--navy)}.task-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.lock-tag{font-size:.66rem;color:#687384;background:#edf1f5;border-radius:99px;padding:3px 7px;white-space:nowrap}.toolbar-actions{display:flex;align-items:center;gap:10px}.project-table{min-width:1380px}.note-cell{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wide-dialog{width:min(680px,calc(100% - 30px));max-height:90vh;overflow:auto}.schedule-dialog{width:min(780px,calc(100% - 30px));max-height:88vh;overflow:auto}.dialog-head small{display:block;color:var(--muted);font-size:.7rem;margin-bottom:4px}.dialog-head h2{margin:0}.compact-grid{padding:0;overflow:visible}.proposal-note{background:var(--blue);color:#355c80;border-radius:9px;padding:10px 12px;font-size:.78rem;margin-bottom:12px}.schedule-dialog table{min-width:650px}.btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.schedule-policy{align-items:flex-start;flex-direction:column}.schedule-policy .btn{width:100%}.toolbar-actions{align-items:stretch;flex-direction:column}.wide-dialog,.schedule-dialog{max-height:94vh}.compact-grid{grid-template-columns:1fr}}
.role-console{display:grid;grid-template-columns:auto 260px 1fr;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px;margin-bottom:14px}.role-switch{display:flex;background:#e9edf2;padding:4px;border-radius:10px}.role-switch button{border:0;background:transparent;color:#687384;padding:9px 14px;border-radius:7px;font:inherit;font-size:.84rem;cursor:pointer;white-space:nowrap}.role-switch button.active{background:var(--navy);color:#fff;box-shadow:0 3px 9px rgba(24,49,83,.18)}.identity-select{display:flex;align-items:center;gap:9px}.identity-select span{font-size:.78rem;color:var(--muted);white-space:nowrap}.identity-select select{width:100%;border:1px solid #d8dee7;border-radius:9px;background:#fff;padding:9px 11px;font:inherit;color:var(--ink)}.role-hint{text-align:right;color:var(--muted);font-size:.78rem}.role-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.role-kpis article{background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 15px}.role-kpis article>span{display:block;color:var(--muted);font-size:.76rem;margin-bottom:8px}.role-kpis strong{font-size:1.35rem}.role-kpis small{font-size:.72rem;color:var(--muted);margin-left:3px}.role-table-panel{overflow:hidden}.auto-pass{display:inline-flex;background:var(--green-bg);color:var(--green);border-radius:99px;padding:5px 9px;font-size:.72rem;font-weight:700}.role-table-scroll{max-height:58vh;overflow:auto}.role-table-scroll table{min-width:1120px}.role-table-scroll thead{position:sticky;top:0;z-index:2}.role-table-scroll tbody tr{height:62px}.demand-input{display:flex;align-items:center;gap:6px}.demand-input input{width:72px;border:1px solid #b9c6d5;border-radius:8px;padding:8px 7px;font:inherit;font-weight:750;text-align:center;color:var(--navy);background:#fafdff}.demand-input input:focus{outline:0;border-color:#4e7cab;box-shadow:0 0 0 3px rgba(50,104,161,.12)}.demand-input span,.muted-text{color:var(--muted);font-size:.74rem}.flip-status{position:relative;width:104px;height:34px;border:0;border-radius:8px;color:#fff;font:inherit;font-size:.72rem;font-weight:700;cursor:pointer;transform-style:preserve-3d;transition:transform .36s ease;box-shadow:0 3px 8px rgba(28,44,65,.12)}.flip-status.flipping{transform:rotateX(180deg)}.flip-status span{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden}.flip-status .flip-back{transform:rotateX(180deg)}.flip-status:disabled{cursor:default;opacity:.82}.wf-todo{background:#53677d}.wf-generated{background:#287a91}.wf-review{background:#d17a2b}.wf-approved{background:#6b5aa6}.wf-publish{background:#a14f76}.wf-done{background:#34865f}
.workspace-label{display:grid;gap:3px;min-width:150px}.workspace-label strong{font-size:.86rem}.workspace-label span{font-size:.7rem;color:var(--muted)}.ops-load-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.load-panel{overflow:hidden}.mini-table-wrap{max-height:330px;overflow:auto}.mini-table-wrap table{min-width:520px}.mini-table-wrap thead{position:sticky;top:0;z-index:1}.schedule-table-panel{overflow:hidden;margin-bottom:16px}.schedule-table-scroll{max-height:360px;overflow:auto}.schedule-table-scroll table{min-width:1120px}.schedule-table-scroll thead{position:sticky;top:0;z-index:2}.task-filter-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#183153,#315b7f);color:#fff;border-radius:13px;padding:15px 18px;margin-bottom:14px}.task-filter-bar strong{font-size:.92rem}.task-filter-bar p{margin:5px 0 0;color:#c9d8e7;font-size:.76rem}.task-filter-bar .identity-select span{color:#dce7f1}.task-filter-bar .identity-select select{min-width:180px}.writing-panel{overflow:hidden}.writing-table-scroll{max-height:64vh;overflow:auto}.writing-table-scroll table{min-width:1380px}.writing-table-scroll thead{position:sticky;top:0;z-index:2}
.risk-row{background:#fff8f4!important;box-shadow:inset 4px 0 0 #d9544d}.risk-stack{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.urge-btn{border:1px solid #e1b5b0;background:#fff;color:#a6463e;border-radius:7px;padding:5px 8px;font-size:.7rem;cursor:pointer}.urge-btn.active{background:#c94f45;color:#fff;border-color:#c94f45}.kb-status{display:inline-flex;border-radius:99px;padding:4px 8px;background:#eef1f5;color:#566274;font-size:.7rem;white-space:nowrap}.kb-status.ready{background:var(--green-bg);color:var(--green)}.urgent-card{border-color:#e09a94;box-shadow:inset 3px 0 0 #d9544d,0 2px 7px rgba(30,50,80,.04)}
.urge-btn.publish{border-color:#d7b7ca;color:#8f456d}.urge-btn.publish.active{background:#9a4e76;color:#fff;border-color:#9a4e76}.urgent-badge{display:inline-flex;margin-left:7px;padding:3px 6px;border-radius:6px;background:#c94f45;color:#fff;font-size:.65rem;font-weight:700;vertical-align:middle}.status-editor{display:flex;align-items:center;gap:5px;white-space:nowrap}.status-arrow{width:27px;height:32px;border:1px solid #d8dee7;background:#fff;border-radius:7px;color:var(--navy);font-size:1.1rem;line-height:1;cursor:pointer}.status-arrow:disabled{opacity:.3;cursor:not-allowed}.status-editor .flip-status{width:96px}.workload-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.workload-summary article{background:#fff;border:1px solid var(--line);border-radius:11px;padding:13px 15px}.workload-summary article>span{display:block;color:var(--muted);font-size:.76rem;margin-bottom:8px}.workload-summary strong{font-size:1.35rem}.workload-summary small{font-size:.72rem;color:var(--muted);margin-left:3px}.workload-panel{margin-top:0}.formula-note{font-size:.7rem;color:var(--muted);background:#f1f4f7;padding:5px 8px;border-radius:99px}
.publishing-rule{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#183153,#315b7f);color:#fff;border-radius:13px;padding:16px 19px;margin-bottom:14px}.publishing-rule strong{display:block;font-size:.92rem}.publishing-rule p{margin:5px 0 0;color:#c9d8e7;font-size:.76rem}.publishing-rule>span{white-space:nowrap;background:rgba(255,255,255,.12);padding:7px 10px;border-radius:8px;font-size:.72rem}.publishing-panel{margin-top:14px}.publishing-scroll{max-height:62vh;overflow:auto}.publishing-scroll table{min-width:1350px}.publishing-scroll thead{position:sticky;top:0;z-index:2}.assignment-editor{display:flex;align-items:center;gap:5px}.assignment-card{width:104px;height:38px;border:0;border-radius:8px;background:#2f6e83;color:#fff;display:grid;place-items:center;padding:3px 6px;cursor:pointer;transition:transform .3s ease}.assignment-card.flipping{transform:rotateX(180deg)}.assignment-card.unassigned{background:#f1e7dc;color:#975b24}.assignment-card span{font-size:.75rem;font-weight:750}.assignment-card small{font-size:.6rem;opacity:.8}.fixed-publisher{display:grid;gap:2px}.fixed-publisher strong{font-size:.78rem}.fixed-publisher span{font-size:.66rem;color:var(--muted)}.urgent-badge.standalone{margin-left:0}
@media(max-width:1100px){.ops-load-grid{grid-template-columns:1fr 1fr}.load-panel:last-child{grid-column:1/-1}}
@media(max-width:900px){.role-console{grid-template-columns:1fr 1fr}.role-hint{grid-column:1/-1;text-align:left}.role-kpis,.workload-summary{grid-template-columns:repeat(2,1fr)}.ops-load-grid{grid-template-columns:1fr}.load-panel:last-child{grid-column:auto}}
@media(max-width:600px){.role-console{grid-template-columns:1fr}.role-switch{overflow:auto}.identity-select{width:100%}.role-hint{grid-column:auto}.role-kpis{grid-template-columns:repeat(2,1fr)}.role-table-scroll{max-height:62vh}.publishing-rule,.task-filter-bar{align-items:flex-start;flex-direction:column}.publishing-rule>span{white-space:normal}.task-filter-bar .identity-select select{min-width:0}}
.filter-strip{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:14px}.filter-strip.compact{margin:0 0 14px}.filter-strip label,.task-filters label{display:grid;gap:5px;color:var(--muted);font-size:.72rem}.filter-strip input,.filter-strip select,.task-filters input,.task-filters select,.inline-select,.person-row input,.calendar-form input,.calendar-form select,.inline-record-form input,.inline-record-form select,.inline-record-form textarea,.feedback-actions input,.feedback-actions select{font:inherit;border:1px solid #d8dee7;border-radius:8px;background:#fff;color:var(--ink);padding:8px 10px;outline:none}.filter-strip input,.filter-strip select{min-width:150px}.expedite-panel{overflow:hidden;margin-bottom:16px}.expedite-panel table{min-width:900px}.day-col{min-height:300px}.task-filters{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.task-filters label>span{color:#dce7f1}.task-filters input,.task-filters select{min-width:125px}.inline-select{min-width:118px;max-width:165px;padding:7px 8px}.inline-note{width:190px;min-height:56px;border:1px solid #d8dee7;border-radius:8px;padding:7px 8px;font:inherit;font-size:.75rem;resize:vertical}.note-stack{display:grid;gap:6px;min-width:200px}.note-stack>span{font-size:.72rem;color:var(--muted);line-height:1.45}.writing-table-scroll table{min-width:1720px}.publishing-scroll table{min-width:1540px}.role-table-scroll table{min-width:1640px}.project-table{min-width:1580px}.settings-callout{background:linear-gradient(135deg,#183153,#315b7f);color:#fff;border-radius:13px;padding:16px 19px;margin-bottom:16px}.settings-callout strong,.settings-callout span{display:block}.settings-callout span{margin-top:5px;color:#c9d8e7;font-size:.78rem}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:16px}.people-panel{overflow:hidden}.people-list{display:grid;gap:8px;padding:0 14px 15px;max-height:360px;overflow:auto}.person-row{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;align-items:center;gap:8px}.person-row label{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.72rem;white-space:nowrap}.person-row button,.calendar-rule button{border:0;background:#f7eaea;color:#a84242;border-radius:7px;padding:7px 8px;cursor:pointer}.calendar-panel{padding-bottom:15px}.calendar-form{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:0 20px 15px}.calendar-rules{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px}.calendar-rule{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:8px 9px;background:#fafbfd;font-size:.76rem}.records-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.record-panel{overflow:hidden}.inline-record-form{display:grid;grid-template-columns:140px 140px 1fr auto;gap:8px;padding:0 18px 16px}.inline-record-form textarea{grid-column:1/-2;min-height:68px;resize:vertical}.inline-record-form .btn{grid-column:-2/-1}.record-list{display:grid;gap:10px;padding:0 18px 18px;max-height:62vh;overflow:auto}.record-card{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fbfcfe}.record-card>div:first-child{display:flex;align-items:center;gap:8px}.record-card p{margin:9px 0;color:#4f5b6a;font-size:.8rem;line-height:1.6}.record-card footer{margin-top:9px;color:var(--muted);font-size:.68rem}.reply-list{display:grid;gap:5px}.reply-list span{background:#eef3f8;border-radius:7px;padding:7px 9px;font-size:.73rem;color:#4e6073}.feedback-actions{display:grid;grid-template-columns:110px 1fr auto;gap:7px;margin-top:9px}.feedback-actions input,.feedback-actions select{min-width:0}.record-card .small-action{white-space:nowrap}
.architecture-panel{margin-top:16px;overflow:hidden}.architecture-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 18px 18px}.architecture-grid article{display:grid;gap:6px;border:1px solid var(--line);border-radius:10px;padding:13px;background:#f8fafc}.architecture-grid strong{font-size:.82rem}.architecture-grid span{font-size:.73rem;color:var(--muted);line-height:1.55}
@media(max-width:1180px){.people-grid{grid-template-columns:1fr 1fr}.people-panel:last-child{grid-column:1/-1}.records-grid{grid-template-columns:1fr}.task-filters{width:100%}.architecture-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.filter-strip,.task-filters{align-items:stretch;flex-direction:column}.filter-strip label,.task-filters label,.filter-strip input,.filter-strip select,.task-filters input,.task-filters select{width:100%;min-width:0}.people-grid{grid-template-columns:1fr}.people-panel:last-child{grid-column:auto}.inline-record-form{grid-template-columns:1fr}.inline-record-form textarea,.inline-record-form .btn{grid-column:auto}.feedback-actions{grid-template-columns:1fr}.calendar-form{align-items:stretch;flex-direction:column}.calendar-form>*{width:100%}.architecture-grid{grid-template-columns:1fr}}
.list-controls{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.compact-search input{width:190px;padding-top:8px;padding-bottom:8px}.list-controls>select,.toolbar-actions>select{border:1px solid #d8dee7;border-radius:8px;background:#fff;padding:8px;font:inherit;color:var(--ink)}.pager{display:flex;justify-content:center;align-items:center;gap:12px;padding:13px;border-top:1px solid var(--line);background:#fbfcfe;color:var(--muted);font-size:.76rem}.pager button{border:1px solid #cfd8e3;background:#fff;color:var(--navy);border-radius:7px;padding:6px 11px;cursor:pointer}.pager button:disabled{opacity:.35;cursor:not-allowed}.progress-block{display:grid;gap:7px;min-width:150px}.progress-block>strong{font-size:.82rem;color:#15243a}.role-table-scroll .pill.wf-todo,.role-table-scroll .pill.wf-generated,.role-table-scroll .pill.wf-review,.role-table-scroll .pill.wf-approved,.role-table-scroll .pill.wf-publish,.role-table-scroll .pill.wf-done,.recent-panel .pill.wf-todo,.recent-panel .pill.wf-generated,.recent-panel .pill.wf-review,.recent-panel .pill.wf-approved,.recent-panel .pill.wf-publish,.recent-panel .pill.wf-done{color:#fff!important;border:1px solid rgba(0,0,0,.12);font-size:.73rem;padding:5px 9px}.expedite-dialog{width:min(680px,calc(100% - 30px));padding:24px}.expedite-dialog form{display:grid;gap:15px}.expedite-dialog textarea{min-height:170px;font-size:.92rem;line-height:1.65}.expedite-dialog .dialog-actions{margin-top:4px}.date-cell{border:1px solid #d8dee7;border-radius:8px;padding:7px 8px;font:inherit;min-width:138px}.stats-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;background:linear-gradient(135deg,#183153,#315b7f);color:#fff;border-radius:13px;padding:16px 19px;margin-bottom:14px}.stats-toolbar strong{font-size:.92rem}.stats-toolbar p{margin:5px 0 0;color:#c9d8e7;font-size:.76rem}.stats-filters{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.stats-filters label{display:grid;gap:5px;color:#dce7f1;font-size:.72rem}.stats-filters input,.stats-filters select{border:1px solid #6e89a5;border-radius:8px;padding:8px 9px;background:#fff;font:inherit;color:var(--ink)}.stats-panel{overflow:hidden}.stats-table-scroll{max-height:66vh;overflow:auto}.stats-table-scroll table{min-width:1080px}.stats-table-scroll thead{position:sticky;top:0;z-index:2}.stats-table-scroll th:not(:nth-child(3)),.stats-table-scroll td:not(:nth-child(3)){text-align:center}.stats-table-scroll .zero-row{color:#9aa3ae;background:#fafbfc}.stats-table-scroll .zero-row:hover{background:#f7f9fb}
.capacity-brief #capacityBrief{max-height:430px;overflow:auto;padding-bottom:4px}.workflow-select{min-width:152px;border:1px solid #cbd6e2;border-radius:8px;padding:8px 10px;font:inherit;font-size:.75rem;font-weight:700;color:#fff;outline:none;cursor:pointer}.workflow-select option{background:#fff;color:var(--ink);font-weight:500}.workflow-select:focus{box-shadow:0 0 0 3px rgba(50,104,161,.15)}
@media(max-width:760px){.list-controls,.stats-toolbar,.stats-filters{align-items:stretch;flex-direction:column}.compact-search input,.list-controls>select,.stats-filters label,.stats-filters input,.stats-filters select,.stats-filters .btn{width:100%}.expedite-dialog{padding:18px}}
.dark-search span{position:static!important}.dark-search input{padding-left:10px!important;width:155px}.admin-locked{opacity:.78}.admin-locked input:disabled,.admin-locked button:disabled,.calendar-panel :disabled{cursor:not-allowed}.weekly-feedback-panel,.operation-log-panel{margin-top:16px;overflow:hidden}.weekly-feedback-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 18px 18px}.weekly-feedback-group{border:1px solid var(--line);border-radius:10px;background:#fbfcfe;overflow:hidden}.weekly-feedback-group header{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;background:#f1f5f9}.weekly-feedback-group header span{color:var(--muted);font-size:.72rem}.weekly-feedback-item{display:grid;gap:5px;padding:11px 12px;border-top:1px solid var(--line);font-size:.76rem;line-height:1.5}.weekly-feedback-item small{color:var(--muted)}.compact-empty{padding:20px 10px}.operation-log-list{display:grid;max-height:320px;overflow:auto;padding:0 18px 18px}.operation-log-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line)}.operation-log-row div{display:grid;gap:3px}.operation-log-row small{color:var(--muted);font-size:.7rem}
@media(max-width:1180px){.weekly-feedback-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.weekly-feedback-grid{grid-template-columns:1fr}}

/* 纵向工作台：所有面板适配可用宽度，备注在文本框内滚动 */
html,body{max-width:100%;overflow-x:hidden}.workspace,.view,.panel,.overview-grid,.records-grid,.people-grid{min-width:0}.table-wrap,.schedule-table-scroll,.writing-table-scroll,.publishing-scroll,.role-table-scroll,.stats-table-scroll,.mini-table-wrap{max-width:100%;max-height:none;overflow-x:hidden;overflow-y:visible}.table-wrap table,.schedule-table-scroll table,.writing-table-scroll table,.publishing-scroll table,.role-table-scroll table,.stats-table-scroll table,.mini-table-wrap table,.project-table{width:100%;min-width:0!important;table-layout:fixed}th,td{white-space:normal;overflow-wrap:anywhere;word-break:break-word;padding:10px 8px}th{line-height:1.35}td{line-height:1.45}.inline-select,.workflow-select,.date-cell,.demand-input,.demand-input input,.filter-strip input,.filter-strip select,.task-filters input,.task-filters select{width:100%;min-width:0!important;max-width:100%;box-sizing:border-box}.inline-note{width:100%;min-width:0;max-width:100%;height:72px;max-height:92px;overflow-y:auto;overflow-x:hidden;resize:vertical;box-sizing:border-box}.note-stack{min-width:0;max-width:100%}.note-stack>span,.note-cell{white-space:normal;overflow-wrap:anywhere}.role-table-scroll,.writing-table-scroll,.publishing-scroll,.schedule-table-scroll,.stats-table-scroll{border-radius:0}.records-grid{grid-template-columns:minmax(0,1fr)}.record-panel{min-width:0}.inline-record-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.inline-record-form input[id$="Title"]{grid-column:1/-1}.inline-record-form textarea{grid-column:1/-1;width:100%;box-sizing:border-box}.inline-record-form .btn{grid-column:1/-1;justify-self:end}.record-list{max-height:none}.record-card,.record-card>div,.feedback-actions{min-width:0}.record-card>div:first-child{flex-wrap:wrap}.feedback-actions{grid-template-columns:minmax(105px,140px) minmax(0,1fr) auto}.feedback-actions input{width:100%;box-sizing:border-box}.weekly-feedback-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-feedback-item span{overflow-wrap:anywhere}.architecture-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-strip,.task-filters,.toolbar,.toolbar-actions,.list-controls{max-width:100%;min-width:0}.filter-strip label,.task-filters label{min-width:120px;flex:1 1 140px}.search{min-width:0}.search input,.compact-search input{width:100%}.panel-head{gap:12px;flex-wrap:wrap}.segmented{max-width:100%;flex-wrap:wrap}.segmented button{flex:1 1 auto}.capacity-brief #capacityBrief{max-height:none}
@media(max-width:1100px){.ops-load-grid,.overview-grid,.architecture-grid,.weekly-feedback-grid{grid-template-columns:1fr}.inline-record-form,.feedback-actions{grid-template-columns:1fr}.inline-record-form input[id$="Title"],.inline-record-form textarea,.inline-record-form .btn{grid-column:1}.inline-record-form .btn{justify-self:stretch}.toolbar-actions{width:100%;flex-wrap:wrap}.toolbar-actions>*{flex:1 1 180px}.project-stats{flex-wrap:wrap}}
#writingView th:nth-child(1),#writingView td:nth-child(1){width:12%}#writingView th:nth-child(2),#writingView td:nth-child(2){width:9%}#writingView th:nth-child(3),#writingView td:nth-child(3){width:8%}#writingView th:nth-child(4),#writingView td:nth-child(4){width:10%}#writingView th:nth-child(5),#writingView td:nth-child(5),#writingView th:nth-child(6),#writingView td:nth-child(6){width:6%}#writingView th:nth-child(7),#writingView td:nth-child(7){width:14%}#writingView th:nth-child(8),#writingView td:nth-child(8){width:12%}#writingView th:nth-child(9),#writingView td:nth-child(9){width:10%}#writingView th:nth-child(10),#writingView td:nth-child(10){width:13%}
#publishingView th:nth-child(1),#publishingView td:nth-child(1){width:12%}#publishingView th:nth-child(2),#publishingView td:nth-child(2){width:8%}#publishingView th:nth-child(3),#publishingView td:nth-child(3){width:7%}#publishingView th:nth-child(4),#publishingView td:nth-child(4),#publishingView th:nth-child(5),#publishingView td:nth-child(5){width:8%}#publishingView th:nth-child(6),#publishingView td:nth-child(6){width:5%}#publishingView th:nth-child(7),#publishingView td:nth-child(7),#publishingView th:nth-child(8),#publishingView td:nth-child(8),#publishingView th:nth-child(9),#publishingView td:nth-child(9){width:10%}#publishingView th:nth-child(10),#publishingView td:nth-child(10){width:7%}#publishingView th:nth-child(11),#publishingView td:nth-child(11){width:15%}
#projectsView th:nth-child(1),#projectsView td:nth-child(1){width:13%}#projectsView th:nth-child(2),#projectsView td:nth-child(2){width:7%}#projectsView th:nth-child(3),#projectsView td:nth-child(3){width:5%}#projectsView th:nth-child(4),#projectsView td:nth-child(4){width:7%}#projectsView th:nth-child(5),#projectsView td:nth-child(5){width:8%}#projectsView th:nth-child(6),#projectsView td:nth-child(6),#projectsView th:nth-child(7),#projectsView td:nth-child(7){width:7%}#projectsView th:nth-child(8),#projectsView td:nth-child(8),#projectsView th:nth-child(9),#projectsView td:nth-child(9){width:5%}#projectsView th:nth-child(10),#projectsView td:nth-child(10){width:10%}#projectsView th:nth-child(11),#projectsView td:nth-child(11){width:16%}#projectsView th:nth-child(12),#projectsView td:nth-child(12){width:10%}
.inline-note{width:100%;height:96px;min-height:96px;max-height:96px;overflow-y:auto;overflow-x:hidden;resize:none;box-sizing:border-box;font-size:.875rem;line-height:1.55;scrollbar-gutter:stable}.task-message-box{height:112px;max-height:112px;overflow-y:auto;overflow-x:hidden;border:1px solid #dbe3ec;border-radius:8px;background:#f8fafc;padding:8px;box-sizing:border-box;font-size:.875rem;line-height:1.55;scrollbar-gutter:stable}.fixed-note-box{height:144px;max-height:144px;overflow-y:auto;overflow-x:hidden;border:1px solid #dbe3ec;border-radius:8px;background:#f8fafc;padding:8px;box-sizing:border-box;font-size:.875rem;line-height:1.55;scrollbar-gutter:stable}.task-message-box .subline,.fixed-note-box>span{font-size:.875rem;line-height:1.55;white-space:normal;overflow-wrap:anywhere}.fixed-note-box .inline-note{height:76px;min-height:76px;max-height:76px;background:#fff}
#roleTable td:nth-child(6){overflow:hidden}.role-table-scroll .progress-block{min-width:0;max-width:100%;width:100%}.role-table-scroll .progress-block>.pill{justify-self:start;width:auto;max-width:100%;white-space:normal;line-height:1.3}

/* Compact operational controls; reserve reading space for notes. */
#writingView .inline-select,#publishingView .inline-select{width:auto;max-width:100%;padding:6px 7px}
#writingView .workflow-select,#publishingView .workflow-select{width:auto;max-width:100%;padding:6px 7px}
#writingView .task-filters label,#publishingView .task-filters label{flex:0 1 auto;min-width:0}
#writingView .task-filters select,#publishingView .task-filters select{width:auto;max-width:100%}
#writingView .task-filters input[type="date"],#publishingView .task-filters input[type="date"]{width:140px;max-width:100%}
#writingView .task-filters .search,#publishingView .task-filters .search{flex:1 1 190px;max-width:260px}
#writingView th:nth-child(1),#writingView td:nth-child(1){width:12%}
#writingView th:nth-child(2),#writingView td:nth-child(2){width:8%}
#writingView th:nth-child(3),#writingView td:nth-child(3){width:8%}
#writingView th:nth-child(4),#writingView td:nth-child(4){width:8%}
#writingView th:nth-child(5),#writingView td:nth-child(5),#writingView th:nth-child(6),#writingView td:nth-child(6){width:5%}
#writingView th:nth-child(7),#writingView td:nth-child(7){width:13%}
#writingView th:nth-child(8),#writingView td:nth-child(8){width:16%}
#writingView th:nth-child(9),#writingView td:nth-child(9){width:10%}
#writingView th:nth-child(10),#writingView td:nth-child(10){width:15%}

/* Keep the writing date range together when the filter bar wraps. */
#writingView .writing-date-range{display:flex;flex:0 1 302px;align-items:flex-end;gap:8px;min-width:0;max-width:100%;box-sizing:border-box}
#writingView .writing-date-range label{flex:1 1 0;min-width:0}
#writingView .writing-date-range input[type="date"]{width:100%;min-width:0;max-width:100%;font-size:14px}
#writingView .date-range-separator{flex:0 0 auto;align-self:flex-end;padding-bottom:10px;color:#dce7f1;font-size:14px}
@media(max-width:760px){#writingView .writing-date-range{flex:0 0 auto;width:100%}}
