.msg-shell{display:grid;grid-template-columns:360px minmax(0,1fr);height:calc(100vh - 235px);min-height:620px;background:#fff;border:1px solid #e7dac0;border-radius:22px;overflow:hidden;box-shadow:0 18px 55px rgba(8,34,70,.09)}.msg-side{border-right:1px solid #e9dfcc;background:#fbfaf7;display:flex;flex-direction:column;min-width:0}.msg-side-head{padding:24px;border-bottom:1px solid #e9dfcc}.msg-side-head h2{font:700 28px Georgia,serif;color:#071d3e;margin:0 0 15px}.msg-search{width:100%;border:1px solid #dfd2b8;border-radius:13px;padding:13px 15px;font-size:15px;background:#fff}.msg-people{overflow:auto;padding:10px}.msg-person{width:100%;border:0;background:transparent;padding:12px;display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;text-align:left;border-radius:14px;cursor:pointer;color:#102344}.msg-person:hover,.msg-person.active{background:#fff;box-shadow:0 7px 20px rgba(8,34,70,.08)}.msg-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;background:linear-gradient(145deg,#0a2e59,#d6a72f);border:2px solid #d7ae49;color:#fff;display:grid;place-items:center;font:bold 17px Georgia,serif;overflow:hidden}.msg-person b{display:block;font-size:15px}.msg-person small{display:block;color:#77839a;margin-top:4px}.msg-unread{min-width:24px;height:24px;border-radius:13px;background:#c89219;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800}.msg-main{display:flex;flex-direction:column;min-width:0;background:linear-gradient(180deg,#fff,#fcfaf5)}.msg-empty{margin:auto;text-align:center;color:#7e8797}.msg-empty strong{display:block;font:700 34px Georgia,serif;color:#0a2448;margin-bottom:10px}.msg-thread-head{display:flex;align-items:center;gap:13px;padding:18px 24px;border-bottom:1px solid #e9dfcc;background:#fff}.msg-thread-head b{font-size:18px;color:#092348}.msg-thread-head span{display:block;color:#78839a;font-size:13px;margin-top:4px}.msg-thread{flex:1;overflow:auto;padding:25px;display:flex;flex-direction:column;gap:11px;background-image:radial-gradient(#d9c89e 0.6px,transparent .7px);background-size:20px 20px}.msg-bubble{max-width:min(72%,680px);padding:13px 16px;border-radius:18px;background:#fff;border:1px solid #e7dcc8;box-shadow:0 5px 18px rgba(7,29,62,.05);font-size:15px;line-height:1.45;white-space:pre-wrap}.msg-bubble.mine{align-self:flex-end;background:#0a2a53;color:#fff;border-color:#0a2a53;border-bottom-right-radius:5px}.msg-bubble.theirs{align-self:flex-start;border-bottom-left-radius:5px}.msg-time{display:block;font-size:10px;opacity:.65;margin-top:7px;text-align:right}.msg-compose{display:grid;grid-template-columns:1fr auto;gap:12px;padding:18px 22px;border-top:1px solid #e9dfcc;background:#fff}.msg-compose textarea{resize:none;min-height:50px;max-height:130px;border:1px solid #ded2bb;border-radius:15px;padding:14px 16px;font:15px Arial}.msg-send{border:0;border-radius:15px;background:linear-gradient(135deg,#b57d0c,#e2bd61);color:#fff;font-weight:900;padding:0 24px;cursor:pointer}.msg-toast{position:fixed;right:28px;top:88px;width:min(420px,calc(100vw - 30px));z-index:99999;background:#fff;border:1px solid #d9bd75;border-radius:19px;box-shadow:0 24px 70px rgba(3,22,48,.28);padding:17px;display:grid;grid-template-columns:58px 1fr auto;gap:13px;align-items:center;animation:msgIn .35s ease}.msg-toast[hidden]{display:none}.msg-toast b{font-size:16px;color:#092348}.msg-toast p{margin:5px 0 0;color:#59677e;font-size:14px;line-height:1.35}.msg-toast button{border:0;background:#08284f;color:#fff;border-radius:11px;padding:10px;cursor:pointer}.msg-profile-card{display:flex;align-items:center;gap:20px;padding:22px;background:#082b58;color:#fff;border-radius:18px}.msg-profile-card .msg-avatar{width:92px;height:92px;font-size:28px}.msg-profile-card h2{margin:0 0 5px;color:#fff}.msg-profile-card input{margin-top:12px;color:#fff}.msg-profile-save{margin-top:15px}.msg-ref-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;max-height:360px;overflow:auto}.msg-ref-grid label{display:flex;align-items:center;gap:8px;padding:8px}.msg-ref-grid input{width:auto}@keyframes msgIn{from{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:none}}@media(max-width:850px){.msg-shell{grid-template-columns:1fr;height:calc(100vh - 160px);min-height:560px}.msg-side{display:flex}.msg-shell.thread-open .msg-side{display:none}.msg-main{display:none}.msg-shell.thread-open .msg-main{display:flex}.msg-bubble{max-width:88%}.msg-toast{right:15px;top:72px}}
