/* Web Sảnh DM shell; no independent backend/presence or permission policy. */
.jlpt180-private-mail[hidden],.jlpt180-dm-thread[hidden],.jlpt180-dm-form[hidden],.jlpt180-dm-old[hidden],.jlpt180-dm-back[hidden],.jlpt180-dm-people[hidden]{display:none!important}
.jlpt180-private-mail{position:fixed;inset:0;z-index:2147483520;font-family:"Nunito","Noto Sans JP",system-ui,sans-serif;color:#183a40}
.jlpt180-dm-backdrop{position:absolute;inset:0;background:rgba(8,20,30,.57);backdrop-filter:blur(3px)}
.jlpt180-dm-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(540px,calc(100vw - 20px));height:min(690px,calc(100dvh - 32px));display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:linear-gradient(175deg,#f5fffd,#fffaf2);border:1px solid #8acec2;box-shadow:0 22px 90px rgba(3,28,34,.35)}
.jlpt180-dm-head{display:flex;gap:12px;align-items:center;padding:16px;border-bottom:1px solid #bbdedc;background:#e8f8ef;flex-shrink:0}
.jlpt180-dm-head>div{flex:1;min-width:0;display:grid;gap:2px}.jlpt180-dm-head strong{font-size:18px;color:#135950;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.jlpt180-dm-head small{font-size:10px;color:#5c7377}
.jlpt180-dm-head button,.jlpt180-dm-old{border:1px solid #b7ded6;background:#fff;color:#125b54;border-radius:11px;padding:8px 13px;font-size:17px;cursor:pointer;font-weight:800}
.jlpt180-dm-head button:focus-visible,.jlpt180-dm-form button:focus-visible,.jlpt180-dm-person:focus-visible{outline:3px solid #06b6d4;outline-offset:2px}
.jlpt180-dm-status{flex-shrink:0;color:#23665b;font-size:12px;padding:4px 15px;line-height:1.5}.jlpt180-dm-status:empty{display:none}.jlpt180-dm-status.is-error{color:#ac2832}
.jlpt180-dm-people{flex:1;min-height:0;overflow:auto;display:grid;align-content:start;gap:6px;padding:12px}
.jlpt180-dm-person{width:100%;display:flex;gap:10px;align-items:center;text-align:left;border:1px solid #c9e2e2;border-radius:15px;background:#fff;padding:10px;cursor:pointer;color:#1d3d42}
.jlpt180-dm-person-copy{display:grid;flex:1;gap:4px;min-width:0}.jlpt180-dm-person-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jlpt180-dm-person-copy small{font-size:11px;color:#667b7b}.jlpt180-dm-person-copy small.jlpt180-dm-online{color:#09825c;font-weight:800}
.jlpt180-dm-avatar{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:#d5f5e7;color:#11664a;font-weight:900}
.jlpt180-dm-count{border-radius:99px;background:#df354d;color:white;padding:3px 7px;font-size:11px}
.jlpt180-dm-empty{padding:22px 10px;text-align:center;color:#607b7b;font-size:13px}
.jlpt180-dm-thread{flex:1;min-height:0;display:flex;flex-direction:column;padding:7px 12px}.jlpt180-dm-old{font-size:12px;align-self:center}
.jlpt180-dm-messages{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:9px;padding:7px 3px 10px}
.jlpt180-dm-bubble{max-width:86%;width:fit-content;padding:9px 12px;border-radius:17px;background:#fff;border:1px solid #d2e2e6;overflow-wrap:anywhere;align-self:flex-start}
.jlpt180-dm-bubble.is-me{align-self:flex-end;background:#d8f5e4;border-color:#8bdab0}
.jlpt180-dm-text{white-space:pre-wrap;font-size:13px;line-height:1.5;color:#1b333a}
.jlpt180-dm-bubble time{display:block;font-size:9px;margin-top:5px;color:#71818a}
.jlpt180-dm-form{display:flex;gap:8px;padding:12px;border-top:1px solid #d4eae8;background:#fff;align-items:flex-end;flex-shrink:0}
.jlpt180-dm-form textarea{flex:1;min-width:0;min-height:55px;max-height:135px;resize:vertical;outline:0;padding:10px;border:1px solid #b6d3d2!important;border-radius:11px!important;background:#fff!important;color:#173742!important;font-size:14px!important}
.jlpt180-dm-form button{border:0;background:#087e72;color:#fff;border-radius:12px;padding:12px 15px;font-size:13px;font-weight:800;cursor:pointer;min-height:45px}.jlpt180-dm-form button:disabled{opacity:.6}
.jlpt180-dm-toast{position:fixed;z-index:2147483510;right:14px;bottom:94px;border:1px solid #8cdbba;border-radius:16px;background:#e8fff4;box-shadow:0 12px 35px #0004;color:#075c50;padding:13px;font-weight:800;cursor:pointer}
html.jlpt180-private-mail-open{overflow:hidden}
@media(max-width:580px){.jlpt180-dm-panel{top:auto;left:0;bottom:0;transform:none;width:100%;height:min(92dvh,840px);border-radius:21px 21px 0 0}.jlpt180-dm-head{padding:12px}.jlpt180-dm-head strong{font-size:15px}.jlpt180-dm-bubble{max-width:92%}}
