*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f4f5f7}.app{display:flex;height:100vh}.sidebar{width:340px;border-right:1px solid #e0e0e0;background:#fff;display:flex;flex-direction:column}.sidebar h2{padding:1rem;margin:0;font-size:1rem;border-bottom:1px solid #eee}.conv-list{overflow-y:auto;flex:1}.conv-item{padding:.75rem 1rem;border-bottom:1px solid #f0f0f0;cursor:pointer}.conv-item:hover{background:#fafafa}.conv-item.active{background:#eef4ff;border-left:3px solid #3b6fd4}.conv-item .meta{display:flex;justify-content:space-between;font-size:.8rem;color:#888}.conv-item .who{font-weight:600}.badge{font-size:.7rem;padding:.1rem .4rem;border-radius:8px;background:#eee;margin-left:.3rem}.badge.WECOM{background:#e7f6e7;color:#1a7f37}.badge.EMAIL{background:#e8f0fe;color:#1a56db}.badge.WEB{background:#f3e8fd;color:#7a3bd4}.badge.RESOLVED{background:#eee;color:#666}.badge.OPEN{background:#fde8e8;color:#c0392b}.main{flex:1;display:flex;flex-direction:column}.main header{padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;align-items:center;gap:.75rem}.main header select,.main header button{padding:.35rem .6rem;border:1px solid #ccc;border-radius:6px;background:#fff}.messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.msg{max-width:65%;padding:.6rem .9rem;border-radius:14px;white-space:pre-wrap;line-height:1.4}.msg.INBOUND{align-self:flex-start;background:#fff;border:1px solid #e0e0e0}.msg.OUTBOUND{align-self:flex-end;background:#3b6fd4;color:#fff}.msg.NOTE{align-self:center;background:#fff8e1;border:1px dashed #d4b106;max-width:80%;font-size:.85rem}.msg .sender{font-size:.72rem;opacity:.7;margin-bottom:.2rem}.msg .time{font-size:.68rem;opacity:.6;margin-top:.25rem}.composer{padding:.75rem 1rem;background:#fff;border-top:1px solid #e0e0e0;display:flex;gap:.5rem}.composer input{flex:1;padding:.6rem .8rem;border:1px solid #ccc;border-radius:8px}.composer button{padding:.6rem 1.2rem;border:none;border-radius:8px;cursor:pointer}.composer .attach{background:#fff;border:1px solid #ccc;padding:.6rem .7rem}.msg-img{display:block;max-width:260px;border-radius:8px;margin-bottom:.3rem}.pending-img{position:relative;align-self:center}.pending-img img{width:40px;height:40px;object-fit:cover;border-radius:6px}.pending-img button{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;border:none;background:#c0392b;color:#fff;font-size:.55rem;line-height:1;padding:0}.composer .send{background:#3b6fd4;color:#fff}.composer .note{background:#f0c040;color:#333}.empty{flex:1;display:flex;align-items:center;justify-content:center;color:#999}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#1a1a2e}.login-card{background:#fff;padding:2.5rem;border-radius:16px;width:320px;text-align:center;box-shadow:0 12px 40px #0006}.login-card h1{margin:0 0 .25rem;color:#1a1a2e;font-size:1.4rem}.login-sub{color:#998;font-size:.85rem;margin:0 0 1.5rem}.login-card input{width:100%;padding:.75rem .9rem;border:1px solid #d5cfc5;border-radius:10px;font-size:.95rem;margin-bottom:.75rem;box-sizing:border-box}.login-card button{width:100%;padding:.8rem;border:none;border-radius:10px;background:#1a1a2e;color:#e8b84b;font-size:1rem;font-weight:600;cursor:pointer}.login-card button:disabled{opacity:.6}.login-error{color:#c0392b;font-size:.85rem;margin-bottom:.75rem}
