/* Ported from yonseiroclinic admin/inbox/index.html @ f895a2e070851d1845e5dd02c4a5396506c78874.
   GMD selector aliases; authentication, data and unsupported operations remain GMD-owned. */
:root{
  --bg:#f4f5f7;--panel:#fff;--line:#e3e5ea;--text:#1d2129;--muted:#6b7280;--accent:#1f4e79;--accent-soft:#e8eff7;
  --in:#fff;--out:#dbe8f5;--danger:#b42318;--ok:#0f7b3e;
  --wa:#25d366;--ig:#d62976;--fb:#0084ff;--line-c:#06c755;--wx:#07c160;--demo:#8b5cf6;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR","Malgun Gothic",sans-serif;font-size:14px;color:var(--text);background:var(--bg)}
button{font:inherit;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
a{color:var(--accent)}
.hidden{display:none!important}

/* ---------- 레이아웃 ---------- */
#app{height:100%;display:grid;grid-template-rows:48px 1fr;grid-template-columns:minmax(0,1fr)}
header{background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 16px;gap:14px}
header .brand{cursor:pointer;border:0;background:transparent;font:inherit;padding:6px 0;position:relative;z-index:61;font-weight:700;color:var(--accent);letter-spacing:.2px}
:root{--list:320px;--patient:290px;--tools:200px}
@media (max-width:1400px){:root{--list:280px;--patient:260px;--tools:180px}}
@media (max-width:1200px){:root{--list:250px;--patient:240px;--tools:160px}}
.main{display:grid;grid-template-columns:var(--list) 6px var(--patient) 6px var(--tools) 6px minmax(0,1fr);min-height:0;min-width:0}
.gutter{cursor:col-resize;background:var(--line);position:relative;z-index:3}
.gutter::before{content:"";position:absolute;top:0;bottom:0;left:-4px;right:-4px}
.gutter::after{content:"";position:absolute;left:2px;top:0;bottom:0;width:2px;background:transparent;transition:background .15s}
.gutter:hover::after,.gutter.on::after{background:var(--accent)}
body.resizing{cursor:col-resize;user-select:none}body.resizing iframe{pointer-events:none}
@media (max-width:980px){.main{grid-template-columns:var(--list) 6px minmax(0,1fr)}.main #patientPanel,.main #qrcol,.main .gutter[data-i="2"],.main .gutter[data-i="3"]{display:none}} /* v12: .main 접두로 #qrcol{display:flex} 보다 우선 */
.list-top{padding:10px;border-bottom:1px solid var(--line);display:flex;gap:6px;flex-wrap:wrap}
.list-top input{flex:1 1 100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.qrow{display:flex;gap:6px;flex:1 1 100%}.qrow input{flex:1;min-width:0}
#btnFilter{position:relative;white-space:nowrap}#btnFilter.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.fcount{display:inline-block;margin-left:4px;background:#fff;color:var(--accent);border-radius:999px;font-size:10px;padding:0 5px;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 100%}
.chips span{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:11px;cursor:pointer}
.chips span::after{content:" ×";opacity:.7}
#list{position:relative}
.fpanel{position:absolute;top:0;left:0;right:0;bottom:0;z-index:15;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.14);padding:12px;overflow:auto}
.fsec{margin-bottom:10px}.ftitle{font-size:12px;color:var(--muted);margin-bottom:4px;display:flex;align-items:center;gap:6px}.ftitle small{font-weight:400;font-size:11px}
.flink{margin-left:auto;font-size:11px;color:var(--accent);cursor:pointer}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fgrid select,.fpanel select{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px}
.fchecks{display:flex;flex-wrap:wrap;gap:10px;font-size:12px}.fchecks label{display:flex;align-items:center;gap:4px}
.fbtns{display:flex;gap:6px;justify-content:flex-end}
.fhint{font-size:11px;color:var(--muted);margin-top:4px}
.cal{user-select:none;touch-action:none}
.cal .calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.conv .hit{font-size:11px;color:var(--accent);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabs{display:flex;gap:4px}
.tabs button{padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12px;color:var(--muted)}
.tabs button.on{background:var(--accent-soft);color:var(--accent);border-color:transparent;font-weight:600}
.convs{overflow:auto;flex:1}
.conv{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid #f0f1f3;cursor:pointer}
.conv:hover{background:#fafbfc}
.conv.on{background:var(--accent-soft)}
.avatar{width:38px;height:38px;border-radius:50%;background:#dfe3ea;flex:none;display:flex;align-items:center;justify-content:center;font-weight:600;color:#55607a;overflow:hidden;position:relative}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar .ch{position:absolute;right:-2px;bottom:-2px;width:16px;height:16px;border-radius:50%;border:2px solid #fff;font-size:8px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.ch.whatsapp{background:var(--wa)}.ch.instagram{background:var(--ig)}.ch.messenger{background:var(--fb)}.ch.line{background:var(--line-c)}.ch.wechat{background:var(--wx)}.ch.demo{background:var(--demo)}
.conv .body{flex:1;min-width:0}
.conv .row{display:flex;justify-content:space-between;gap:6px}
.conv .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv .time{color:var(--muted);font-size:11px;flex:none}
.conv .prev{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.conv .meta{display:flex;gap:6px;align-items:center;margin-top:4px;font-size:11px;color:var(--muted)}
.badge{background:var(--accent);color:#fff;border-radius:999px;font-size:11px;padding:1px 7px;font-weight:600}
.tag{background:#eef0f3;border-radius:4px;padding:1px 6px}
.chb{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:1px 8px;font-size:11px;font-weight:700;color:#fff;letter-spacing:.2px;line-height:18px;vertical-align:middle}
.chb.whatsapp{background:var(--wa)}.chb.instagram{background:var(--ig)}.chb.messenger{background:var(--fb)}.chb.line{background:var(--line-c)}.chb.wechat{background:var(--wx)}.chb.demo{background:var(--demo)}
.chb.lg{font-size:13px;padding:3px 10px;border-radius:8px}
.tagpick{display:flex;flex-wrap:wrap;gap:6px}
.tagpick .tchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer;user-select:none}
.tagpick .tchip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.tagpick .tchip.add{border-style:dashed;color:var(--muted)}
#qrcol{background:var(--panel);border-right:1px solid var(--line);overflow:auto;padding:12px 10px;display:flex;flex-direction:column;gap:6px}
#qrcol h3{font-size:12px;color:var(--muted);margin:0 0 4px;text-transform:uppercase;letter-spacing:.4px;display:flex;justify-content:space-between;align-items:center}
#qrcol h3 a{font-size:11px;text-transform:none;letter-spacing:0;color:var(--accent);cursor:pointer}
.qrcat{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
.qrcat .cat{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:#f7f8fa;padding:9px 12px;font-size:13px;font-weight:700;cursor:pointer;text-align:left}
.qrcat .cat small{color:var(--muted);font-weight:400}
.qrcat .cat::after{content:"▾";color:var(--muted);margin-left:6px;font-size:11px}
.qrcat.on .cat{background:var(--accent);color:#fff}.qrcat.on .cat small{color:#e8eefc}.qrcat.on .cat::after{content:"▴";color:#fff}
.qrcat .items{display:none;padding:4px}
.qrcat.on .items{display:block}
.qrcat .item{padding:7px 9px;border-radius:8px;cursor:pointer;font-size:12px}
.qrcat .item:hover{background:var(--accent-soft)}
.qrcat .item b{display:block;font-size:12px;margin-bottom:2px}
.qrcat .item span{color:var(--muted);font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.mobile #qrcol{display:none}
.qrcat .item{position:relative;padding-right:22px}
.qrcat .item .x{position:absolute;right:4px;top:4px;width:16px;height:16px;line-height:14px;text-align:center;border-radius:50%;color:var(--muted);font-size:13px;opacity:0;cursor:pointer}
.qrcat .item:hover .x{opacity:1}.qrcat .item .x:hover{background:#fee2e2;color:#b91c1c}
.chat-top{background:var(--panel);border-bottom:1px solid var(--line);padding:8px 14px;display:flex;align-items:center;gap:10px;min-height:52px;flex-wrap:wrap}
.chat-top .actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto} /* v12: 좁으면 둘째 줄로 */
.chat-top .title,.chat-top .subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-top .title{font-weight:600}
.chat-top .subtitle{color:var(--muted);font-size:12px}
.msgs{flex:1;min-height:0;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.m{max-width:72%;display:flex;flex-direction:column;gap:2px}
.m.in{align-self:flex-start}.m.out{align-self:flex-end;align-items:flex-end}
.bubble{padding:8px 12px;border-radius:14px;background:var(--in);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;line-height:1.45}
.m.out .bubble{background:var(--out);border-color:transparent}
.bubble .tr{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(0,0,0,.15);color:#334;font-size:13px}
.bubble .tr b{font-size:11px;color:var(--muted);font-weight:600;margin-right:4px}
.bubble img{max-width:280px;border-radius:8px;display:block}
.m .info{font-size:11px;color:var(--muted);padding:0 4px}
.m .info.fail{color:var(--danger)}
.daysep{align-self:center;font-size:11px;color:var(--muted);background:#e2e6ec;border-radius:999px;padding:2px 10px;margin:6px 0}
.compose{background:var(--panel);border-top:1px solid var(--line);padding:10px 12px}
.compose textarea{width:100%;min-height:64px;max-height:200px;resize:vertical;padding:10px;border:1px solid var(--line);border-radius:8px}
.compose .bar{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.compose .hint{color:var(--muted);font-size:12px;flex:1}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font-size:12px}
#patientPanel{background:var(--panel);border-right:1px solid var(--line);overflow:auto;padding:0;display:flex;flex-direction:column}
/* v12: 환자 정보 패널 — 요약 헤더 / 상담 카드 / 접힘 3개 / 하단 고정 저장 */
#patientPanel .shead{padding:12px 14px 10px;border-bottom:1px solid var(--line);position:relative}
#patientPanel .srow{display:flex;align-items:center;gap:6px}
#patientPanel .sname{font-size:16px;font-weight:700;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#patientPanel .snat{flex:1;font-size:13px;color:var(--muted);white-space:nowrap}#patientPanel .snat b{font-size:16px;margin-right:2px}
.natflag{font-size:14px;line-height:1;margin-right:2px}
#patientPanel .smenu{position:relative;display:flex;gap:2px}#patientPanel .smenu>a{cursor:pointer;color:var(--muted);font-size:14px;padding:2px 6px;border-radius:6px;user-select:none}#patientPanel .smenu>a:hover{background:#f1f4f8;color:var(--text)}
#patientPanel .sdrop{position:absolute;right:0;top:26px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.12);z-index:5;min-width:150px;padding:4px}#patientPanel .sdrop a{display:block;padding:7px 10px;font-size:12px;cursor:pointer;border-radius:6px;color:var(--text);text-decoration:none}#patientPanel .sdrop a:hover{background:#f1f4f8}
#patientPanel .ssub{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:12px;color:var(--muted)}
#patientPanel .sinfo{margin-top:6px;font-size:11px;color:var(--muted)}#patientPanel .sinfo code{background:#f1f4f8;padding:1px 5px;border-radius:4px;font-size:11px}
#patientPanel .scard{padding:12px 14px 6px}
#patientPanel .f{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:9px}#patientPanel .f .fl{display:flex;justify-content:space-between;align-items:center}#patientPanel .f .fl a{font-weight:400;cursor:pointer;color:var(--accent)}
#patientPanel .f input,#patientPanel .f select,#patientPanel .f textarea{display:block;width:100%;margin-top:3px;font-weight:400;font-size:13px;color:var(--text)}
#patientPanel .f .tagpick{margin-top:5px}
#patientPanel .fhint{font-size:11px;color:var(--muted);margin:-2px 0 6px 26px}
#patientPanel .tagpick.compact .tchip:not(.on):not(.expand){display:none}#patientPanel .tagpick .tchip.expand{border-style:dashed;color:var(--muted)}
#patientPanel details.more{border-top:1px solid var(--line);padding:0 14px}#patientPanel details.more summary{cursor:pointer;font-size:12px;font-weight:600;padding:10px 0;list-style:none;display:flex;align-items:center;gap:6px;color:var(--text)}
#patientPanel details.more summary::before{content:"▸";font-size:10px;color:var(--muted);width:10px}#patientPanel details.more[open] summary::before{content:"▾"}#patientPanel details.more summary::-webkit-details-marker{display:none}
#patientPanel details.more summary small{color:var(--muted);font-weight:400;font-size:11px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#patientPanel details.more summary a{font-size:11px;font-weight:400;color:var(--accent);cursor:pointer}
#patientPanel details.more>*:not(summary){margin-bottom:8px}#patientPanel details.more[open]{padding-bottom:6px}
#patientPanel .sfoot{position:sticky;bottom:0;margin-top:auto;background:var(--panel);border-top:1px solid var(--line);padding:10px 14px;display:flex;gap:8px}#patientPanel .sfoot .btn.primary{flex:1}
#patientPanel.dirty .sfoot .btn.primary::after{content:" •"}
.chat-top .profile{display:flex;align-items:center;gap:10px;flex:1 1 220px;min-width:0;cursor:pointer;border-radius:8px;padding:2px 6px;margin-left:-6px}
.chat-top .profile:hover{background:#f1f4f8}
.dir-search{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px}
.dir tr{cursor:pointer}.dir tr:hover td{background:#f4f6f9}
.list-top select{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px}
#patientPanel select,#patientPanel input,#patientPanel textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff}
#qrcol{padding:0;overflow:hidden;display:grid;gap:0;grid-template-rows:minmax(36px,var(--tool-top,1fr)) 7px minmax(36px,var(--tool-bottom,1fr))}
#qrcol .tool-pane{min-height:0;display:flex;flex-direction:column;overflow:hidden}#qrcol h3{display:flex;align-items:center;justify-content:space-between;margin:0;padding:8px;min-height:36px;box-sizing:border-box;flex-shrink:0;gap:4px}#qrcol h3 button{border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}#qrcol h3 button:last-child:not(:first-child){font-size:11px;color:var(--accent)}#qrcol .tool-scroll{min-height:0;overflow:auto;padding:0 8px 10px;flex:1}#qrcol .tool-tabs{display:none}#splitResize{background:var(--line);cursor:row-resize;touch-action:none}#splitResize:hover,#splitResize:focus{background:var(--accent)}
#qrcol.quick-fold{grid-template-rows:36px 7px minmax(0,1fr)}#qrcol.assets-fold{grid-template-rows:minmax(0,1fr) 7px 36px}#qrcol.quick-fold.assets-fold{grid-template-rows:36px 7px 36px;align-content:start}#qrcol.quick-fold #replyPane .tool-scroll,#qrcol.assets-fold #assetPane .tool-scroll{display:none}
#panelAssetFolders{gap:4px;margin:4px 0}#panelAssetFolders button{padding:5px 7px;font-size:11px}#panelAssetQ{font-size:12px;padding:7px;margin:6px 0}#panelAssetHint{display:block;color:var(--muted);font-size:11px;margin-bottom:6px}#panelAssetList .asset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}#panelAssetList .asset-section h2{font-size:12px;margin:10px 0 5px}#panelAssetList .asset-open img{height:78px;aspect-ratio:auto;object-fit:contain}#panelAssetList .asset-open span{font-size:11px;padding:5px;line-height:1.4}#panelAssetList .asset{display:block;padding:0;overflow:hidden;min-height:0}#panelAssetList .asset-open:disabled{cursor:default;opacity:.5}#panelAssetList .panel-enlarge{border:0;border-top:1px solid var(--line);background:#fff;color:var(--accent);font-size:10px;width:100%;padding:5px;cursor:pointer}#assetSendBody img{width:100%;max-height:55vh;object-fit:contain}

/* Integration: keep all four columns visible on home, as explicitly requested. */
[hidden]{display:none!important}#app{height:100dvh;grid-template-rows:48px minmax(0,1fr)}header{height:48px;color:var(--text);padding:0 16px}header a{color:var(--accent);margin:0}header .brand{font-size:14px;color:var(--accent)}header .brand span{font-size:12px;color:var(--muted)}header .brand:hover{color:var(--accent);background:transparent}header nav{gap:6px}header button,header a{font-size:12px;padding:5px 10px;white-space:nowrap}.hq{border:0;color:var(--muted);padding:0}#menuToggle{display:none;margin-left:auto}
main.main{height:auto}main>*{min-width:0;min-height:0}.listcol{padding:0;overflow:hidden}.list-top{flex-shrink:0}#search{margin:0;width:auto}#count{padding:4px 12px;font-size:11px}#conversations{margin:0;min-height:0}.conversation.conv{width:100%;border:0;border-bottom:1px solid #f0f1f3;border-radius:0;text-align:left;display:flex;background:white}.conversation.active{background:var(--accent-soft)}.conversation .row{margin:0;flex-wrap:nowrap}.conversation .meta{flex-wrap:wrap}.conversation .avatar{overflow:visible}.conversation small{font-size:11px}.chb.manual,.chb.form{background:#64748b}#newConversation{margin:8px;font-size:12px}.fpanel .row{margin-bottom:10px}.tabs button:disabled{opacity:.4}.divider{touch-action:none;background:var(--line)}
.patientcol{overflow:hidden;container:patient / inline-size;border-left:0}.patientcol>.panehead{display:flex;justify-content:space-between;padding:8px 14px;min-height:36px;border-bottom:1px solid var(--line)}.panehead button{border:0;background:none;font-size:12px;padding:0;color:var(--muted)}#patientBody{flex:1;min-height:0}#patientForm{display:flex;flex-direction:column;height:100%}.patientscroll{flex:1;min-height:0;overflow:auto}.patientcol .fgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.patientcol .sfoot button{width:100%;font-size:12px}.patientcol input:disabled,.patientcol select:disabled,.patientcol textarea:disabled{background:#f6f7f9;color:#98a0ad}.patientcol .unavailable{font-size:11px;color:var(--muted);padding:0 14px 10px}#patientClose{display:none}@container patient (max-width:260px){.patientcol .fgrid{grid-template-columns:minmax(0,1fr)}}
#qrcol{border-right:1px solid var(--line);min-height:0}#qrcol section{padding:0}#qrcol .panehead{border:0}#qrcol h3 button{font-size:12px}#qrcol .toolscroll{padding:0 8px 10px}#splitResize{touch-action:none}.qrcat{margin-bottom:6px}.qrcat .item{padding:0;display:flex;min-width:0}.qrcat .item>button:first-child{flex:1;min-width:0;text-align:left;border:0;background:none;padding:7px 9px}.qrcat .item small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:11px}.qrcat .edit{font-size:10px;border:0;padding:3px;background:none;color:var(--muted)}.folder-chips{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.folder-chip{border:1px solid var(--line);border-radius:999px;padding:5px 7px;font-size:11px;max-width:100%;overflow-wrap:anywhere}.folder-chip.on{background:var(--accent);color:white;border-color:var(--accent)}#assetSearch{width:100%;font-size:12px;padding:7px;margin:6px 0}.asset-hint{display:block;font-size:11px;margin-bottom:6px}#assets{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}#assets .asset{padding:0;min-height:0;border-radius:10px}#assets img{height:78px;display:block;object-fit:contain}#assets .title{font-size:11px;padding:5px;line-height:1.4;margin:0}#assets [data-view]{border:0;border-top:1px solid var(--line);border-radius:0;width:100%;font-size:10px;padding:5px;color:var(--accent)}
.chatcol{background:#eef1f5}#room{height:100%;min-height:0;display:flex;flex-direction:column}.roomhead{padding:8px 14px}.roomhead>div{flex:initial}.roomhead .profile{flex:1 1 160px;min-width:0}.roomhead .profile>div{min-width:0}.roomhead .actions{flex:0 1 auto;margin-left:auto}.roomhead h2{font-size:14px}.roomhead button,.roomhead select{font-size:12px;padding:5px 8px}.roomhead select{max-width:100%;width:130px}#back{display:none}#messages{padding:16px 18px;min-height:70px}.message{max-width:72%;margin:0 0 8px}.message.out{align-self:flex-end}.message .bubble{padding:8px 12px}.message small{font-size:11px}.composer{padding:10px 12px;flex-shrink:0}.composer textarea{height:64px;min-height:64px}.composer button,.composer select{font-size:12px;padding:5px 8px}.ctabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.trtools{display:flex;gap:6px;margin-left:auto;align-items:center}.bar{display:flex;gap:8px;flex-wrap:wrap}.bar .hint{flex:1}.empty{height:100%}.empty b{font-size:16px}.staffrow{padding:16px 0;border-top:1px solid var(--line)}#staffInvite{padding:16px 0}
body.patient-fold main.main{grid-template-columns:var(--list) 6px 44px 6px var(--tools) 6px minmax(0,1fr)}body.patient-fold #patientBody{display:none}body.patient-fold #patientFold{writing-mode:vertical-rl}
@media(max-width:1100px){.hq{display:none}#menuToggle{display:block}header nav{display:none;position:absolute;right:8px;top:46px;background:white;border:1px solid var(--line);border-radius:10px;padding:6px;z-index:20;max-width:calc(100vw - 16px);flex-wrap:wrap;box-shadow:0 8px 24px #0002}header nav.open{display:flex}}
@media(max-width:980px){main.main,body.patient-fold main.main{grid-template-columns:var(--list) 6px minmax(0,1fr)}main #patientPanel,main #qrcol,main #patientResize,main #toolsResize{display:none}#room>#qrcol{display:flex;flex-direction:column;flex:0 1 260px;min-height:130px;max-height:35vh;border:1px solid var(--line);border-radius:8px;margin:0 8px 6px;background:#fff}#qrcol .mobiletabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--line)}#qrcol .mobiletabs button{flex:1;padding:7px;border:0;border-radius:0;font-size:12px;background:#f1f5f9}#qrcol[data-tab=replies] [data-tab=replies],#qrcol[data-tab=assets] [data-tab=assets]{background:var(--accent);color:white}#qrcol .tool-pane{flex:1}#qrcol[data-tab=replies] #assetPane,#qrcol[data-tab=assets] #replyPane,#qrcol #splitResize{display:none}#qrcol .toolscroll{display:block!important}#qrcol h3{min-height:28px;padding:5px 8px}.folder-chips{flex-wrap:nowrap;overflow:auto}.folder-chip{white-space:nowrap;flex-shrink:0}#assets img{height:64px}.asset-hint{display:none}#patientPanel.overlay-open{position:fixed;display:flex;top:48px;bottom:0;right:0;width:min(360px,100vw);z-index:25;box-shadow:-10px 0 35px #132f4733}#patientPanel.overlay-open #patientBody{display:block}#patientPanel.overlay-open #patientFold{writing-mode:horizontal-tb}#patientClose{display:block}.roomhead .profile{flex-basis:120px}.message{max-width:88%}}
@media(max-width:760px){main.main,body.patient-fold main.main{display:block}.divider{display:none}.listcol{height:100%}.chatcol{display:none;height:100%}body.in-room .listcol{display:none}body.in-room .chatcol{display:flex}#room{width:100%}#back{display:inline-block}header{padding:0 10px;gap:8px}header .brand span{font-size:11px}.roomhead{padding:6px 8px;gap:6px}.roomhead .actions{gap:4px}.roomhead button,.roomhead select{font-size:11px;padding:4px 6px}.roomhead .avatar{width:30px;height:30px}.composer{padding:8px}.composer textarea{height:58px;min-height:58px}.composer .bar{gap:5px}#messages{padding:12px}.modalgrid{grid-template-columns:1fr}#manageAssets{grid-template-columns:repeat(2,minmax(0,1fr))}.uploadrow{grid-template-columns:1fr}#viewer{padding:10px}}
/* Source list and category-add rules, plus min-size constraints for GMD controls. */
#list{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.qrow{min-width:0;width:100%}#search{flex:1 1 0;min-width:0}#filterToggle{white-space:nowrap;flex-shrink:0;font-size:12px;padding:5px 10px}
.qradd{border:1px dashed var(--line);background:transparent;border-radius:8px;padding:6px 10px;font-size:12px;color:var(--muted);cursor:pointer;width:100%;text-align:left}
.qradd:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.qrcat .items .qradd{margin:2px 0}
.message.in{align-self:flex-start}.message.note,.message.external{align-self:center}
@media(max-width:760px){body.in-room #list{display:none}}
