:root{font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#123344;background:#edf3f6;font-synthesis:none;--ink: #123344;--muted: #59717e;--line: #dbe6eb;--accent: #087f92;--pale: #e5f3f5;--danger: #a33747}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:10px 14px}button:hover{background:#edf7f8}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #41aebf;outline-offset:3px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.small{padding:5px 10px;font-size:12px}button.quiet{border-color:transparent;background:transparent}a{color:var(--accent)}h1,h2,p{margin-top:0}h1{font-size:30px;line-height:1.35;letter-spacing:-1px}h2{font-size:20px}small,.muted{color:var(--muted);line-height:1.7}.brand{font-family:Avenir Next,Avenir,system-ui,sans-serif;font-weight:800;letter-spacing:-1.5px;font-size:30px;display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;background:var(--accent);color:#fff;width:42px;height:42px;border-radius:15px 15px 15px 3px;font-size:24px;letter-spacing:-4px;padding-right:4px}.auth{max-width:1040px;min-height:100dvh;margin:auto;display:grid;grid-template-columns:1fr 420px;gap:72px;align-items:center;padding:40px}.intro{padding:30px 0}.intro h1{font-size:48px;font-weight:600;line-height:1.4;margin:52px 0 24px}.intro p{max-width:330px;line-height:1.9;color:var(--muted)}.card{background:#fff;padding:32px;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 70px #12334409}.stack{display:grid;gap:18px}.field{display:grid;gap:8px;font-size:14px}.field input{min-width:0;width:100%;border:1px solid #bbced8;border-radius:9px;padding:12px;background:#fbfdff;color:var(--ink)}.password-input{position:relative}.password-input input{padding-right:52px}.password-toggle{position:absolute;top:50%;right:8px;display:grid;width:36px;height:36px;place-items:center;padding:0;transform:translateY(-50%);border:0;background:transparent;color:var(--muted)}.password-toggle:hover{color:var(--ink)}.password-toggle svg{width:20px;height:20px}.notice{font-size:14px;line-height:1.65;color:var(--danger);white-space:pre-wrap;overflow-wrap:anywhere}.notice:empty{display:none}.shell{height:100dvh;max-width:1280px;margin:auto;background:#fff;border-inline:1px solid var(--line)}.workspace{min-width:0;display:flex;flex-direction:column;min-height:0;height:100%}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:16px 28px;border-bottom:1px solid var(--line)}.topbar h1{font-size:19px;margin:0 0 4px;letter-spacing:0}.topbar small{font-size:12px}.account-info{display:grid;gap:1px;padding:3px 16px;border-left:1px solid var(--line);line-height:1.3}.account-info strong{font-size:14px}.toolbar{display:flex;flex-wrap:wrap;gap:8px}.topbar .toolbar{justify-content:flex-end}.chat-error{padding:0 24px;background:#fff3f4}.chat-error:not(:empty){padding-block:10px}.timeline{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;padding:22px 30px;overflow-anchor:none}.message-list{margin-top:auto}.message-list.is-empty{margin:auto 0}.history-button{display:block;margin:0 auto 24px}.empty{text-align:center;margin:0 auto;color:var(--muted);max-width:300px;line-height:1.9}.empty-icon{font-size:36px;color:var(--accent);margin-bottom:16px}.message{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 24px;gap:6px}.message.own{align-items:flex-end}.message-meta{font-size:11px;color:var(--muted);display:flex;gap:10px;align-items:center}.message-meta strong{font-size:12px;color:var(--ink)}.bubble{max-width:min(82%,560px);padding:13px 16px;background:#f0f5f8;border-radius:3px 15px 15px;overflow-wrap:anywhere;min-width:70px}.own .bubble{background:var(--pale);border-radius:15px 3px 15px 15px}.bubble p{margin:0;white-space:pre-wrap;line-height:1.75;font-size:14px}.quote{display:block;width:100%;border:0;border-left:3px solid #87b7c0;background:#ffffff80;border-radius:0;padding:8px 11px;text-align:left;margin-bottom:10px;white-space:pre-wrap;font-size:12px;line-height:1.5;color:var(--muted)}.deleted{font-style:italic;color:var(--muted)}.media{width:min(360px,100%);display:block;border-radius:8px;margin:6px 0}.media.image{height:auto;max-height:320px;object-fit:contain}.media.video{max-height:320px;background:#e1eaf0}.file-link{display:block;margin:8px 0;max-width:100%;font-size:13px}.message-actions{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px;max-width:82%;flex-wrap:wrap}.failure{color:var(--danger)}.new-messages{align-self:center;background:var(--ink);color:#fff;margin:5px 0;box-shadow:0 4px 16px #12334425}.composer-area{padding:12px 24px 16px;border-top:1px solid var(--line);background:#fff}.composer-area small{font-size:11px;display:block;margin-top:5px}.reply-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;padding:8px 12px;border-left:3px solid var(--accent);background:var(--pale);margin-bottom:8px}.reply-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending{padding:12px;border:1px solid #d4b97a;background:#fffbf0;border-radius:10px;margin:8px 0;font-size:13px;line-height:1.6}.pending .toolbar{margin-top:10px}@media (max-width: 760px){.auth{display:block;padding:28px 20px}.intro{padding:0}.intro h1{font-size:30px;margin:30px 0 12px}.intro p{margin-bottom:24px}.card{padding:24px}.shell{height:100dvh;border:0}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:12px 16px}.account-info{padding:0 0 0 12px}.topbar .toolbar{grid-column:1 / -1;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}.topbar button{font-size:12px;padding:7px 9px;white-space:nowrap}.timeline{padding:16px 14px}.composer-area{padding:10px 12px max(12px,env(safe-area-inset-bottom))}.bubble{max-width:91%}.media{width:min(320px,100%)}.media.image,.media.video{max-height:260px}.message-actions{max-width:91%}}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important}}[hidden]{display:none!important}
