*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:#0f0f1a;min-height:100vh;display:flex;align-items:center;justify-content:center;color:#e4e4e7;line-height:1.6;padding:24px 16px;overflow-x:hidden}body:before{content:"";position:fixed;top:-25%;left:50%;transform:translate(-50%);width:640px;height:640px;background:radial-gradient(circle,rgba(249,115,22,.14),transparent 65%);pointer-events:none;z-index:0}#app{position:relative;z-index:1;width:100%;display:flex;justify-content:center}.auth-card{width:100%;max-width:400px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:2.2rem 2rem 1.8rem;box-shadow:0 24px 60px #00000073;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{text-align:center;margin-bottom:1.8rem}.brand .avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#f97316,#ea580c);margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;color:#fff;box-shadow:0 0 32px #f9731659}.brand h1{font-size:1.35rem;font-weight:700;color:#fff;margin-bottom:.25rem}.brand p{font-size:.85rem;color:#71717a}.field{margin-bottom:1.1rem}.field label{display:block;font-size:.82rem;color:#a1a1aa;margin-bottom:.4rem}.field input{width:100%;padding:.7rem .9rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#e4e4e7;font-size:.92rem;outline:none;transition:all .2s ease}.field input::placeholder{color:#52525b}.field input:focus{border-color:#f9731699;background:#f973160d;box-shadow:0 0 0 3px #f973161a}.btn-primary{width:100%;padding:.75rem;margin-top:.5rem;background:linear-gradient(135deg,#f97316,#ea580c);border:none;border-radius:10px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .25s ease}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #f9731659}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.tip{margin-top:1rem;padding:.6rem .8rem;border-radius:8px;font-size:.83rem;line-height:1.5}.tip.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171}.tip.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#4ade80}.switch-line{text-align:center;margin-top:1.4rem;font-size:.85rem;color:#71717a}.switch-line a{color:#f97316;text-decoration:none;font-weight:500}.switch-line a:hover{text-decoration:underline}.back-home{display:block;text-align:center;margin-top:1.2rem;font-size:.8rem;color:#52525b;text-decoration:none;transition:color .2s}.back-home:hover{color:#f97316}@media(max-width:420px){.auth-card{padding:1.8rem 1.4rem 1.4rem}}.page{width:100%;max-width:640px;margin:0 auto}.chat-page{max-width:720px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem}.tb-brand{display:flex;align-items:center;gap:8px;color:#fff;font-weight:700;font-size:.95rem;text-decoration:none}.tb-dot{width:8px;height:8px;border-radius:50%;background:#f97316;box-shadow:0 0 10px #f97316cc}.tb-nav{display:flex;gap:18px;font-size:.85rem}.tb-link{color:#a1a1aa;text-decoration:none;transition:color .2s}.tb-link:hover,.tb-link.router-link-active{color:#f97316}.page-body{display:flex;flex-direction:column;gap:14px}.page-head{display:flex;align-items:baseline;justify-content:space-between}.page-head h1{font-size:1.15rem;color:#fff}.card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1.2rem 1.1rem;box-shadow:0 16px 40px #0000004d}.card-title{font-size:.95rem;font-weight:600;color:#fff;margin-bottom:.9rem}.muted{color:#71717a}.small{font-size:.78rem}.profile-head{display:flex;align-items:center;gap:16px}.big-avatar{width:64px;height:64px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 0 28px #f9731659}.profile-meta h2{font-size:1.1rem;color:#fff}.profile-meta p{margin-top:.15rem}.btn-ghost{width:100%;padding:.7rem;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#a1a1aa;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-ghost:hover{border-color:#ef444466;color:#f87171}.search-bar{display:flex;gap:10px}.search-bar input{flex:1;padding:.7rem .9rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#e4e4e7;font-size:.9rem;outline:none;transition:all .2s}.search-bar input:focus{border-color:#f9731699;background:#f973160d}.btn-search{padding:0 1.1rem;border:none;border-radius:10px;background:#f9731626;color:#f97316;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-search:hover:not(:disabled){background:#f9731640}.btn-search:disabled{opacity:.5;cursor:not-allowed}.row{display:flex;align-items:center;gap:12px;padding:.65rem .3rem;border-bottom:1px solid rgba(255,255,255,.05)}.row:last-child{border-bottom:none}.row.clickable{cursor:pointer;border-radius:10px;transition:background .2s}.row.clickable:hover{background:#ffffff08}.avatar-sm{width:38px;height:38px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#f97316;background:#f9731626}.row-main{flex:1;min-width:0;display:flex;flex-direction:column}.row-main strong{color:#e4e4e7;font-size:.92rem}.last{color:#71717a;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time{color:#52525b;font-size:.72rem;flex-shrink:0}.btn-mini{padding:.35rem .8rem;border:1px solid rgba(249,115,22,.4);background:transparent;color:#f97316;border-radius:8px;font-size:.8rem;cursor:pointer;transition:all .2s}.btn-mini:hover{background:#f9731626}.empty{color:#52525b;font-size:.85rem;text-align:center;padding:1.4rem 0}.chat-shell{display:flex;flex-direction:column;height:calc(100vh - 140px);min-height:420px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;box-shadow:0 16px 40px #00000059}.chat-head{display:flex;align-items:center;gap:12px;padding:.85rem 1rem;border-bottom:1px solid rgba(255,255,255,.06)}.back{color:#a1a1aa;text-decoration:none;font-size:1.1rem;line-height:1}.back:hover{color:#f97316}.chat-title{display:flex;align-items:center;gap:8px}.chat-title strong{color:#fff;font-size:.95rem}.status{font-size:.72rem;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.12);color:#71717a}.status.on{color:#4ade80;border-color:#4ade804d;background:#22c55e1a}.chat-list{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:10px}.bubble-row{display:flex}.bubble-row.mine{justify-content:flex-end}.bubble{max-width:72%;padding:.55rem .8rem;border-radius:12px;font-size:.88rem;line-height:1.5;word-break:break-word;background:#ffffff0f;color:#e4e4e7}.bubble-row.mine .bubble{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.sending{opacity:.6;font-size:.7rem;margin-left:4px}.chat-input{display:flex;gap:10px;padding:.8rem;border-top:1px solid rgba(255,255,255,.06)}.chat-input input{flex:1;padding:.7rem .9rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#e4e4e7;font-size:.9rem;outline:none}.chat-input input:focus{border-color:#f9731699}.btn-send{padding:0 1.1rem;border:none;border-radius:10px;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;font-size:.88rem;font-weight:600;cursor:pointer}.btn-send:disabled{opacity:.5;cursor:not-allowed}.ws-tip{padding:.4rem .9rem;font-size:.75rem;color:#f87171;background:#ef444414}.retry{margin-left:8px;color:#f97316;cursor:pointer;text-decoration:underline}
