.partner-needs{display:grid;grid-template-columns:350px minmax(0,1fr);height:calc(100dvh - 112px);min-height:600px;background:var(--geo-card);border:1px solid var(--geo-border);border-radius:var(--geo-radius);overflow:hidden}
.partner-needs-list{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--geo-border)}
.partner-needs-list>header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px}
.partner-needs-list h1{font-size:var(--geo-fs-title);margin:0}
.partner-needs-filters{display:grid;gap:12px;padding:0 20px 14px;border-bottom:1px solid var(--geo-border)}
.needs-search{display:flex;align-items:center;gap:8px;border:1px solid var(--geo-border-strong);border-radius:var(--geo-radius);padding:0 10px;height:32px}
.needs-search input{width:100%;min-width:0;border:0!important;background:transparent;padding:0!important;height:30px}
.partner-needs-filters select{min-width:128px;height:32px}
.needs-filter-tabs{display:flex;background:var(--geo-bg);padding:3px;border-radius:6px;flex:1}
.needs-filter-tabs button{flex:1;min-height:26px;padding:0 8px;border:0;background:transparent;line-height:24px}
.needs-filter-tabs button.active{background:var(--geo-card);color:var(--geo-text);border-radius:4px}
.partner-needs-rows{flex:1;min-height:0;overflow:auto;padding:8px}
.partner-need-row{width:100%;text-align:left;display:grid;gap:8px;min-height:106px;padding:12px;border:0;border-bottom:1px solid var(--geo-border);border-radius:0;white-space:normal}
.partner-need-row.selected{background:var(--geo-primary-bg);border-radius:var(--geo-radius);border-bottom-color:transparent}
.partner-need-row strong{font-size:14px;font-weight:500;color:var(--geo-text)}
.partner-need-row.selected strong{color:var(--geo-primary)}
.partner-need-row>span{color:var(--geo-text-3);font-size:12px}
.partner-need-row time{white-space:nowrap;font-size:11px}
.need-message-preview{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.needs-unread-count{border-radius:99px;min-width:16px;line-height:16px;text-align:center;background:var(--geo-error);color:var(--geo-card);font-size:10px}
.partner-needs-list>footer{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:8px 20px;border-top:1px solid var(--geo-border)}
.partner-needs-workspace{display:flex;flex-direction:column;min-width:0;min-height:0}
.needs-peer{display:flex;gap:12px;align-items:center;min-height:76px;padding:16px 20px;border-bottom:1px solid var(--geo-border)}
.needs-peer strong{font-size:14px}.needs-peer small{display:block;color:var(--geo-text-3);margin-top:4px}
.needs-peer>button{margin-left:auto}
.needs-brief{padding:16px 20px;border-bottom:1px solid var(--geo-border);max-height:30%;overflow:auto}
.needs-brief summary{cursor:pointer;display:flex;align-items:center;gap:12px;list-style:none}
.needs-brief summary::-webkit-details-marker{display:none}.needs-brief summary strong{font-size:14px;font-weight:600}
.needs-brief-toggle{margin-left:auto;color:var(--geo-primary);white-space:nowrap}
.needs-status{color:var(--geo-primary);background:var(--geo-primary-bg);padding:2px 8px;border-radius:4px;white-space:nowrap}
.needs-brief>div{margin-top:12px}.needs-brief>div>span{margin-left:24px}
.needs-brief p{font-size:14px;line-height:1.6;white-space:pre-wrap;margin:14px 0}
.needs-brief>small{display:block;border-top:1px solid var(--geo-border);padding-top:10px}
.needs-chat-log{flex:1;min-height:100px;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:24px;overflow-anchor:none}
.needs-message{align-self:flex-start;max-width:85%}.needs-message.mine{align-self:flex-end}
.needs-message-meta{display:flex;gap:12px;color:var(--geo-text-3);margin-bottom:8px;font-size:12px}.needs-message.mine .needs-message-meta{justify-content:flex-end}
.needs-message-bubble{padding:12px 16px;border-radius:var(--geo-radius);background:var(--geo-bg);font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.needs-message.mine .needs-message-bubble{background:var(--geo-primary-bg)}
.needs-message-bubble p{white-space:pre-wrap;margin:0}
.needs-message-file{display:flex;align-items:center;gap:12px;min-height:44px;color:var(--geo-text)}
.needs-message-file>span{flex:1}.needs-message-file .icon{flex-shrink:0}
.needs-composer{margin:16px 20px 20px;padding:12px 16px;border:1px solid var(--geo-border-strong);border-radius:var(--geo-radius)}
.needs-composer textarea{width:100%;border:0;resize:vertical;min-height:48px;max-height:160px;padding:0;font-size:14px;outline:none}
.needs-composer>.flex{margin-top:10px}.needs-add-file{display:flex;gap:6px;align-items:center;cursor:pointer;white-space:nowrap}
.needs-file-draft{display:inline-block;background:var(--geo-bg);padding:3px 8px;border-radius:4px;margin:4px 6px 0 0}
.needs-file-draft button{min-height:20px;border:0;background:transparent;padding:0 2px;line-height:20px}
.needs-error,#needs-chat-error{color:var(--geo-error-text);padding:8px 20px;white-space:pre-wrap}
#needs-chat-error:empty{display:none}
@media(max-width:1100px){.partner-needs{grid-template-columns:300px minmax(0,1fr)}.needs-composer small{display:none}.needs-brief summary{flex-wrap:wrap}}
@media(max-width:760px){.partner-needs{height:auto;min-height:0;grid-template-columns:1fr;overflow:visible}.partner-needs-list{max-height:400px;border-right:0;border-bottom:1px solid var(--geo-border)}.partner-needs-workspace{min-height:650px}.needs-chat-log{max-height:500px}.needs-brief{max-height:none}.needs-message{max-width:95%}.needs-brief>div>span{margin-left:0;display:block}}
@media(max-width:760px){
  .app-shell:has(.partner-needs){grid-template-columns:minmax(0,1fr)}
  .app-shell:has(.partner-needs) .app-sidebar{position:static;height:auto;padding:4px 8px;border-right:0;border-bottom:1px solid var(--geo-border);overflow:hidden}
  .app-shell:has(.partner-needs) .app-sidebar .brand,.app-shell:has(.partner-needs) .sidebar-bottom{display:none}
  .app-shell:has(.partner-needs) .app-sidebar>nav{display:flex;overflow:auto;gap:4px;max-width:100%}
  .app-shell:has(.partner-needs) .app-nav{flex:none;white-space:nowrap}
  .app-shell:has(.partner-needs) .app-topbar{padding:0 12px;gap:8px}
  .app-shell:has(.partner-needs) .app-topbar>.flex>span:first-child{display:none}
  .app-shell:has(.partner-needs) .breadcrumb{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .app-shell:has(.partner-needs) .user-chip{max-width:100px}
  .app-shell:has(.partner-needs) .app-body{padding:12px}
  .partner-needs{grid-template-columns:minmax(0,1fr)}
  .partner-needs-list{min-width:0}.partner-needs-filters>.flex{flex-wrap:wrap}
}
