/* Desktop collaboration workspace. The mobile H5 has its own room implementation. */
.cw-board{display:flex;flex-direction:column;gap:22px;min-width:0;min-height:100%;padding:24px;background:var(--panel);color:var(--text)}
.cw-board h2,.cw-board h3,.cw-board p{margin:0}.cw-board button,.cw-board a{font-family:inherit}.cw-board button{cursor:pointer}
.cw-header{display:flex;justify-content:space-between;align-items:center;gap:22px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.cw-kicker{display:block;margin-bottom:7px;font-size:11px;font-weight:700;letter-spacing:.09em;color:var(--mint)}
.cw-header h2{font-size:23px;line-height:1.35;letter-spacing:-.035em;font-weight:800}.cw-header p{margin-top:6px;color:var(--muted);font-size:12px}
.cw-header-actions{display:flex;gap:8px;flex-shrink:0}.cw-header-actions .btn{min-height:38px}.cw-readonly{font-size:12px;color:var(--muted)}
.cw-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);overflow:hidden}
.cw-overview>span,.cw-overview>button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:15px 18px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;text-align:left}
.cw-overview>:last-child{border-right:0}.cw-overview>button:hover{background:var(--mint-wash)}.cw-overview b{font-size:27px;font-weight:750;line-height:1.15;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.05em}.cw-overview b small{font-size:14px;font-weight:500;color:var(--muted);letter-spacing:0}
.cw-section-head{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:10px}.cw-section-head h3{font-size:13px;font-weight:750}.cw-section-head .link-btn{font-size:11px}
.cw-goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cw-goal{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.cw-goal.is-selected{border-color:var(--mint);background:var(--mint-wash)}
.cw-goal-top{display:flex;gap:10px;justify-content:space-between;align-items:center}.cw-goal-top>button{min-width:0;padding:0;border:0;background:transparent;color:var(--text);font-size:13px;font-weight:750;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-goal-top>button:hover{color:var(--mint)}.cw-goal-top>span{font-size:10px;color:var(--muted);flex-shrink:0}
.cw-progress{height:4px;border-radius:4px;background:var(--panel-3);margin-top:13px;overflow:hidden}.cw-progress i{display:block;height:100%;background:var(--mint)}.cw-goal-meta{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted);margin-top:7px}
.cw-goal details{font-size:11px;line-height:1.7;margin-top:9px}.cw-goal summary{cursor:pointer;color:var(--muted);font-size:10px}.cw-goal details p{margin-top:8px;color:var(--text-soft)}.cw-inline-actions{display:flex;gap:7px;margin-top:10px}.cw-goal-empty{grid-column:1/-1;border:1px dashed var(--line-strong);border-radius:10px;padding:18px;color:var(--muted);font-size:12px;background:var(--bg-soft)}
.cw-workspace{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);min-height:490px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);flex:1}
.cw-task-index{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--line);background:var(--bg-soft)}.cw-list-toolbar{padding:17px 14px 14px;border-bottom:1px solid var(--line)}.cw-list-toolbar h3{font-size:13px;font-weight:750;display:flex;justify-content:space-between;align-items:center}.cw-list-toolbar h3>span{font-size:11px;font-weight:500;color:var(--muted)}
.cw-search{display:block!important;margin:13px 0 10px!important}.cw-search>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.cw-search .input{height:36px;border:1px solid var(--line);font-size:11px;background:var(--panel)}
.cw-scopes{display:flex;gap:3px;margin:9px 0 14px;flex-wrap:wrap}.cw-scopes button{border:0;border-radius:5px;padding:6px 8px;background:transparent;color:var(--muted);font-size:10px}.cw-scopes button:hover,.cw-scopes button.is-active{background:var(--panel-3);color:var(--text)}
.cw-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.cw-stages button{display:flex;align-items:center;gap:5px;padding:8px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:10px;color:var(--muted);text-align:left;min-height:32px}.cw-stages button>span{margin-left:auto;font-size:10px;font-variant-numeric:tabular-nums}.cw-stages button[aria-pressed=true]{background:var(--panel);border-color:var(--line-strong);color:var(--text);font-weight:700}.cw-stages button:hover{background:var(--panel)}
.cw-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--dim);flex-shrink:0}.cw-status-dot.is-assigned{background:var(--amber)}.cw-status-dot.is-claimed{background:var(--mint)}.cw-status-dot.is-review{background:var(--coral)}.cw-status-dot.is-done{background:var(--mint);opacity:.5}
.cw-task-list{padding:8px;overflow:auto;max-height:660px;scrollbar-gutter:stable}.cw-task-group{padding-bottom:10px}.cw-task-group h3{display:flex;align-items:center;gap:7px;padding:10px 8px 6px;font-size:10px;font-weight:650;color:var(--muted)}.cw-task-group h3>span:last-child{margin-left:auto;font-weight:400}
.cw-task-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;border:1px solid transparent;border-radius:8px;padding:13px 10px;text-align:left;background:transparent;color:var(--text);margin:2px 0}.cw-task-row:hover{background:var(--panel)}.cw-task-row.is-selected{background:var(--panel);border-color:var(--line-strong);box-shadow:inset 3px 0 var(--mint)}.cw-task-row>span:first-child{display:flex;flex-direction:column;gap:6px;min-width:0}.cw-task-row b{font-size:12px;line-height:1.5;font-weight:650;overflow-wrap:anywhere}.cw-task-row small{font-size:10px;color:var(--muted);line-height:1.4}.cw-task-row-mark{font-size:10px;color:var(--mint);white-space:nowrap;flex-shrink:0}
.cw-detail-slot{min-width:0;max-height:940px;overflow:auto;scrollbar-gutter:stable;background:var(--panel)}.cw-board .cw-task-detail.task-card{padding:0;margin:0;border:0;border-radius:0;box-shadow:none;font-size:12px;background:transparent;overflow-wrap:anywhere;min-height:100%}
.cw-detail-head{padding:22px 24px 17px}.cw-detail-head>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cw-detail-head>div>small{font-size:10px;color:var(--dim)}.cw-task-status{display:inline-flex;font-size:10px;font-weight:650;line-height:1.5;padding:4px 8px;border:1px solid var(--line);border-radius:5px;background:var(--bg-soft);color:var(--muted)}.cw-task-status.is-claimed{color:var(--mint);background:var(--mint-wash);border-color:transparent}.cw-task-status.is-review{color:var(--coral);background:var(--coral-wash);border-color:transparent}.cw-task-status.is-assigned{color:var(--amber);background:var(--amber-wash);border-color:transparent}
.cw-detail-head h2{font-size:22px;font-weight:750;line-height:1.45;letter-spacing:-.035em}.cw-detail-head h2 a{color:var(--text);text-decoration:none}.cw-detail-head h2 a:hover{color:var(--mint)}.cw-detail-people{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;line-height:1.6;color:var(--muted);margin-top:12px}
.cw-next-action{display:flex;flex-direction:column;gap:11px;padding:15px 24px;background:var(--mint-wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cw-next-action>p{font-size:12px;line-height:1.7;color:var(--text-soft)}.cw-next-action>div{display:flex;gap:8px;flex-wrap:wrap}.cw-next-action .btn{min-height:36px;font-size:11px}
.cw-detail-tabs{display:flex;gap:17px;position:sticky;top:0;z-index:2;padding:0 24px;background:var(--panel);border-bottom:1px solid var(--line)}.cw-detail-tabs>button{position:relative;min-height:46px;padding:0;border:0;background:none;color:var(--muted);font-size:11px;white-space:nowrap}.cw-detail-tabs>button[aria-selected=true]{color:var(--text);font-weight:750}.cw-detail-tabs>button[aria-selected=true]:after{content:"";position:absolute;height:2px;bottom:-1px;left:0;right:0;background:var(--mint)}
.cw-board .cw-detail-panel{padding:20px 24px;line-height:1.8;border:0;margin:0}.cw-board .cw-detail-panel[hidden]{display:none!important}.cw-detail-panel>h3{font-size:12px;font-weight:750;margin:20px 0 9px}.cw-detail-panel>h3:first-child{margin-top:0}.cw-detail-panel>h3 small{font-size:10px;color:var(--muted);font-weight:400}.cw-detail-panel .t-desc{font-size:12px;line-height:1.9;color:var(--text-soft);margin:0}.cw-detail-panel .task-blocked{margin:16px 0;padding:12px 14px;border-left:3px solid var(--amber);background:var(--amber-wash);font-size:12px;color:var(--text-soft)}.cw-detail-panel .task-blocked p{margin-top:6px}
.cw-deliverables{display:flex;flex-direction:column;gap:7px}.cw-deliverables>a{display:block;padding:10px 12px;background:var(--bg-soft);border:1px solid var(--line);border-radius:7px;text-decoration:none;color:var(--mint);font-size:12px}.cw-deliverables>a:after{content:" ↗"}.cw-muted{color:var(--muted);font-size:11px}
.cw-facts{margin:22px 0 0;display:flex;flex-direction:column;gap:11px}.cw-facts>div{display:grid;grid-template-columns:65px minmax(0,1fr);gap:8px;font-size:11px}.cw-facts dt{color:var(--muted)}.cw-facts dd{margin:0;color:var(--text-soft)}
.cw-board .cw-detail-panel label,.cw-create label{display:flex;flex-direction:column;gap:7px;margin:0 0 16px;font-size:11px;color:var(--text-soft)}.cw-board .cw-detail-panel .input,.cw-create .input{font-size:12px;background:var(--panel);border:1px solid var(--line-strong);border-radius:7px;padding:10px}.cw-board .cw-detail-panel textarea{min-height:95px;line-height:1.7;resize:vertical}.cw-board .cw-detail-panel select[multiple]{min-height:90px}.cw-board .cw-detail-panel select{min-height:38px}.cw-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.cw-assignment{display:flex;gap:10px;align-items:flex-end;padding:14px;background:var(--bg-soft);border:1px solid var(--line);border-radius:8px;margin:4px 0 16px}.cw-assignment>label{flex:1;margin:0!important}.cw-assignment>.btn{min-height:38px;margin-bottom:0}
.cw-form-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.cw-form-actions .btn{min-height:36px;font-size:11px}.cw-field-help{font-size:11px;color:var(--muted);line-height:1.8}.cw-version-warning{margin:0 24px 16px;padding:12px;border:1px solid var(--amber);border-radius:7px;background:var(--amber-wash);color:var(--text-soft);font-size:11px;line-height:1.7}
.cw-board .task-thread,.cw-board .task-history{padding:0;margin:0 0 20px;border:0}.cw-board .task-thread>summary,.cw-board .task-history>summary{font-size:12px;font-weight:750;min-height:32px;color:var(--text)}.cw-board .task-thread>article,.cw-board .task-history>article{border:0;border-bottom:1px solid var(--line);background:none;padding:12px 0;margin:0 0 10px;line-height:1.8}.cw-board .task-thread>article>b,.cw-board .task-history>article>b{font-size:11px}.cw-board article>time{font-size:10px;color:var(--muted);margin-left:9px}.cw-board article>div{margin-top:6px}.cw-board .task-thread>label:first-of-type{margin-top:15px}
.cw-create{padding:20px;border:1px solid var(--mint);border-radius:10px;background:var(--bg-soft)}.cw-create>h3{font-size:15px;font-weight:750;margin-bottom:18px}.cw-create-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}.cw-create-fields .cw-wide{grid-column:1/-1}.cw-create textarea{min-height:85px;resize:vertical}.cw-advanced{margin-bottom:16px;font-size:11px}.cw-advanced summary{cursor:pointer;color:var(--muted);margin-bottom:12px}.cw-advanced select{width:100%;min-height:75px}.cw-create>.btn{min-height:38px}
.cw-empty{padding:30px 18px;color:var(--muted);text-align:center;font-size:11px;line-height:1.8}.cw-empty>b{display:block;color:var(--text-soft);font-size:12px;margin-bottom:7px}.cw-empty-detail{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:450px;gap:12px}.cw-empty-detail>span{font-size:38px;color:var(--mint)}.cw-empty-detail h3{font-size:18px;font-weight:700;color:var(--text)}
.cw-board button:focus-visible,.cw-board a:focus-visible{outline:2px solid var(--mint);outline-offset:3px}.cw-board button:disabled{cursor:default;opacity:.5}
@media(min-width:1500px){.cw-workspace{grid-template-columns:320px minmax(0,1fr)}.cw-detail-head{padding:27px 30px 20px}.cw-board .cw-detail-panel{padding:24px 30px}.cw-detail-tabs{padding:0 30px}.cw-next-action{padding:17px 30px}}
@media(max-width:1100px){.cw-board{padding:18px;gap:16px}.cw-header{align-items:flex-start}.cw-header h2{font-size:20px}.cw-header-actions{flex-direction:column}.cw-workspace{grid-template-columns:235px minmax(0,1fr)}.cw-detail-head,.cw-board .cw-detail-panel{padding:18px}.cw-detail-tabs{padding:0 18px;gap:12px}.cw-next-action{padding:13px 18px}.cw-settings-grid{grid-template-columns:1fr}.cw-overview>span,.cw-overview>button{padding:13px}}
@media(prefers-reduced-motion:reduce){.cw-board *{scroll-behavior:auto}}
/* Keep the task and its evidence above the fold on a desktop work surface. */
.cw-board{padding:16px;gap:11px}.cw-header{padding-bottom:10px;gap:14px;align-items:center}.cw-kicker,.cw-header p{display:none}.cw-header h2{font-size:19px;line-height:1.3}.cw-header-actions{flex-direction:row}.cw-header-actions .btn{min-height:36px;font-size:11px}
.cw-overview>span,.cw-overview>button{padding:8px 14px;gap:3px}.cw-overview b{font-size:23px;line-height:1.1}.cw-overview b small{font-size:12px}.cw-overview{border-radius:8px}
.cw-goals .cw-section-head{margin-bottom:7px}.cw-goal{padding:10px 12px}.cw-goals:has(.cw-goal:only-child){display:grid;grid-template-columns:65px minmax(0,1fr);gap:10px;align-items:center}.cw-goals:has(.cw-goal:only-child) .cw-section-head{margin:0;flex-wrap:wrap;gap:5px}.cw-goal-grid>.cw-goal:only-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(150px,1fr) minmax(85px,1fr) auto auto;gap:7px 14px;align-items:center}.cw-goal:only-child .cw-progress,.cw-goal:only-child .cw-goal-meta,.cw-goal:only-child details{margin:0}.cw-goal:only-child details[open]{grid-column:1/-1;border-top:1px solid var(--line);padding-top:8px}.cw-goal:only-child .cw-goal-meta{gap:10px}.cw-goal-top>button{font-size:12px}.cw-goal-top>span{font-size:9px}.cw-goal:only-child summary{font-size:9px;white-space:nowrap}
.cw-workspace{min-height:520px}.cw-detail-head{padding:16px 20px 14px}.cw-detail-head>div:first-child{margin-bottom:9px}.cw-detail-head h2{font-size:20px;line-height:1.4}.cw-detail-people{margin-top:8px;font-size:10px}.cw-next-action{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px}.cw-next-action>p{font-size:11px;line-height:1.6;flex:1}.cw-next-action>div{flex-shrink:0;gap:6px}.cw-next-action .btn{min-height:34px;font-size:10px;padding:7px 10px}.cw-detail-tabs>button{min-height:40px}.cw-board .cw-detail-panel{padding:16px 20px}.cw-detail-panel>h3{margin-top:16px;margin-bottom:7px}.cw-detail-panel>h3:first-child{margin-top:0}.cw-detail-slot{max-height:calc(100vh - 310px);min-height:460px}.cw-task-list{max-height:calc(100vh - 530px);min-height:180px}.cw-list-toolbar{padding:13px 12px 11px}.cw-search{margin:10px 0 7px!important}.cw-scopes{margin:6px 0 9px}.cw-stages button{min-height:29px;padding:6px 7px}.cw-task-row{padding:11px 9px}
@media(max-width:1100px){.cw-goal-grid>.cw-goal:only-child{grid-template-columns:minmax(140px,1fr) auto}.cw-goal:only-child .cw-progress{grid-column:1;grid-row:2}.cw-goal:only-child .cw-goal-meta{grid-column:2;grid-row:1}.cw-goal:only-child details{grid-column:2;grid-row:2}.cw-next-action{flex-direction:column;align-items:stretch;gap:8px}.cw-detail-tabs{gap:10px}.cw-detail-tabs>button{font-size:10px}}

/* Iteration loop: thin status strip; chat is the main stage when loop.enabled. */
.loop-board{position:relative;overflow:visible;min-height:0!important;height:auto;padding:0!important;gap:0!important;background:transparent!important;border:0!important}
.loop-board-compact{flex:none}
.loop-phase{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft);font-size:10px;font-weight:700;color:var(--text-soft);white-space:nowrap}.loop-phase i{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px var(--mint-wash)}.loop-phase[data-phase="hold"] i{background:var(--amber);box-shadow:0 0 0 4px var(--amber-wash)}.loop-phase[data-phase="closed"] i{opacity:.45}
.loop-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:58px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--panel);box-shadow:0 2px 10px rgba(21,44,32,.06)}
.loop-strip-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1}
.loop-strip-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.loop-strip-copy b{font-size:13px;font-weight:750;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loop-strip-copy small{font-size:11px;color:var(--muted);line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.loop-strip-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.loop-drawer{position:fixed;z-index:40;inset:0 0 0 auto;width:min(420px,92vw);padding:22px;background:var(--panel);border-left:1px solid var(--line);box-shadow:-22px 0 60px rgba(0,0,0,.14);overflow:auto}.loop-drawer[hidden]{display:none!important}.loop-drawer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:18px;border-bottom:1px solid var(--line)}.loop-drawer>header h2{font-size:18px}.loop-drawer>section{padding:18px 0;border-bottom:1px solid var(--line)}.loop-drawer>section>h3{display:flex;justify-content:space-between;margin-bottom:11px;font-size:12px}.loop-drawer>section>h3 span{color:var(--muted);font-weight:500}
.loop-detail-list,.loop-readonly-work{display:flex;flex-direction:column;gap:7px}.loop-detail-list article,.loop-readonly-work article{padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg-soft)}.loop-detail-list article b,.loop-readonly-work article b{display:block;font-size:11px}.loop-detail-list article small,.loop-readonly-work article small,.loop-release-card>small{display:block;margin-top:4px;color:var(--muted);font-size:9px}.loop-detail-list article p{margin-top:7px;color:var(--text-soft);font-size:10px;line-height:1.7;overflow-wrap:anywhere}.loop-release-card>p{font-size:12px;line-height:1.7}.loop-release-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.desktop-room[data-room-type="collab"] .room-grid[data-loop-stage="chat"]{grid-template-rows:auto minmax(0,1fr);align-content:stretch}
.desktop-room[data-room-type="collab"] .room-grid[data-loop-stage="chat"] .desktop-room-primary{display:flex;flex-direction:column;gap:12px;overflow:hidden;min-height:0;height:100%}
/* room-desktop.css 给 .panel-slot 写了 height:100%，会把细顶栏撑满主区、把聊天挤成 1px */
.desktop-room[data-room-type="collab"] .room-grid[data-loop-stage="chat"] .desktop-room-primary>.panel-slot{flex:0 0 auto;height:auto!important;max-height:none;min-height:0;overflow:visible;grid-area:auto}
.desktop-room[data-room-type="collab"] .room-grid[data-loop-stage="chat"] .desktop-room-primary>.chat-card{flex:1 1 auto;min-height:240px;height:auto;border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 3px 18px #152c2010;overflow:hidden}
.desktop-room[data-room-type="collab"] .room-grid[data-loop-stage="chat"] .desktop-room-primary>.chat-card .composer{flex:none}
.desktop-room[data-room-type="collab"] .room-grid[data-loop-stage="chat"] .desktop-room-primary>.chat-card .msg-scroll{flex:1;min-height:0}
@media(max-width:780px){.loop-strip{flex-direction:column;align-items:stretch}.loop-strip-actions{justify-content:flex-end}}
