*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#0f1115;color:#eef1f6}a{color:#ff5c8a;text-decoration:none}button,input{font:inherit}.hidden{display:none!important}.muted{color:#9aa3b2}.small{font-size:12px}.error{color:#ff6b6b;min-height:18px}.toast{position:fixed;top:16px;right:16px;background:#1d2330;border:1px solid #333f55;padding:12px 14px;border-radius:10px;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:#171b24;border:1px solid #262d3d;border-radius:18px;padding:28px;max-width:380px;width:100%;text-align:center}.logo{font-size:42px}.login-card input{width:100%;padding:12px;border-radius:10px;border:1px solid #30384a;background:#0f131a;color:#fff;margin:14px 0 10px}.btn-primary{background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf);color:#fff;border:0;padding:11px 18px;border-radius:10px;cursor:pointer;font-weight:700;width:auto}.login-card .btn-primary{width:100%}.btn-ghost{background:transparent;color:#dbe2ef;border:1px solid #30384a;padding:8px 12px;border-radius:999px;cursor:pointer;font-size:13px}
.app{height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#171b24;border-bottom:1px solid #262d3d;flex-wrap:wrap}.account{display:flex;gap:10px;align-items:center}.avatar-dot{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#d62976,#962fbf);display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;flex:0 0 auto}.status-line{font-size:12px;color:#9aa3b2;display:flex;gap:6px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;display:inline-block}.dot.offline{background:#888}.badge{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em}.badge.live{background:#123d24;color:#5ee38d;border:1px solid #1f6b3a}.badge.mock{background:#3d3412;color:#ffd75e;border:1px solid #6b5a1f}.spacer{flex:1}.icon-btn{background:none;border:0;color:#fff;font-size:20px;cursor:pointer}.mobile-only{display:none}
.layout{flex:1;display:flex;min-height:0}.sidebar{width:340px;border-right:1px solid #262d3d;background:#141821;display:flex;flex-direction:column}.search-wrap{padding:12px}.search-wrap input{width:100%;padding:11px;border-radius:10px;border:1px solid #30384a;background:#0f131a;color:#fff}.conv-list{list-style:none;margin:0;padding:0;overflow:auto}.conv-item{display:flex;gap:11px;padding:13px 14px;cursor:pointer;border-bottom:1px solid #1e2432}.conv-item:hover,.conv-item.active{background:#1d2330}.conv-meta{flex:1;min-width:0}.conv-top{display:flex;justify-content:space-between;gap:8px}.conv-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time{font-size:11px;color:#8a94a6;white-space:nowrap}.conv-last{font-size:13px;color:#9aa3b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.empty{padding:22px;text-align:center;color:#9aa3b2}
.chat-pane{flex:1;display:flex;flex-direction:column;min-width:0;background:#0f1115}.chat-empty{margin:auto;text-align:center;padding:20px}.chat-empty .big{font-size:52px}.chat-header{display:flex;gap:11px;align-items:center;padding:12px 16px;border-bottom:1px solid #262d3d;background:#171b24}.warning{background:#3a2f10;color:#ffd75e;padding:10px 14px;font-size:13px;border-bottom:1px solid #5a4a1a}.messages{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:9px}#chat-main{display:flex;flex-direction:column;height:100%}.bubble{max-width:72%;padding:10px 13px;border-radius:16px;line-height:1.4;word-wrap:break-word}.bubble.theirs{align-self:flex-start;background:#222836;border-bottom-left-radius:4px}.bubble.mine{align-self:flex-end;background:linear-gradient(135deg,#d62976,#962fbf);color:#fff;border-bottom-right-radius:4px}.bubble .time{font-size:11px;opacity:.75;margin-top:4px}.send-form{display:flex;gap:10px;padding:12px;border-top:1px solid #262d3d;background:#171b24}.send-form input{flex:1;padding:12px;border-radius:999px;border:1px solid #30384a;background:#0f131a;color:#fff}
@media(max-width:760px){.sidebar{width:100%}.chat-pane{display:none}.layout.chat-open .sidebar{display:none}.layout.chat-open .chat-pane{display:flex}.mobile-only{display:block}.topbar .btn-ghost{font-size:12px;padding:7px 9px}}
