:root{font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:#203c37;background:#f7faf5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #1b8171;outline-offset:4px}
.online-chat{max-width:760px;margin:0 auto 60px;padding:28px;background:white;border:1px solid #d9e4dc;border-radius:16px}.online-chat-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.online-chat h2{margin:0;font-size:24px}.online-chat button{border:1px solid #aac3b5;border-radius:6px;padding:10px 16px;background:#f7faf5;color:#203c37;cursor:pointer}.online-chat button:disabled{opacity:.5;cursor:default}.online-chat-hint,.online-chat-notice{font-size:13px;line-height:1.6;color:#526d60}.online-chat-messages{max-height:420px;overflow:auto;overscroll-behavior:contain}.online-message{padding:16px;margin:12px 0;background:#f2f6ef;border-radius:8px}.online-message-user{background:#e7f1ed}.online-message strong{font-size:13px}.online-message p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin:8px 0 0}.online-chat-label{display:block;font-size:14px;margin:12px 0 8px}.online-chat textarea{width:100%;resize:vertical;min-height:90px;font:inherit;color:inherit;padding:12px;border:1px solid #aac3b5;border-radius:8px}.online-chat textarea:focus-visible{outline:2px solid #1b8171;outline-offset:2px}.online-chat-actions{display:flex;justify-content:flex-end;margin-top:12px}.online-chat-actions button{background:#24614d;color:white}@media(max-width:760px){.online-chat{padding:18px}.online-chat-heading{align-items:flex-start}.online-chat-heading button{font-size:12px}}

.online-shell-active{max-width:none;min-height:100dvh;padding:0;background:#102b25}
.online-stage{min-height:100dvh}
.online-loading-actions{display:flex;justify-content:center;gap:12px;margin-top:12px}.online-loading-actions button{border:1px solid #aac3b5;border-radius:10px;padding:10px 16px;background:#24614d;color:white;cursor:pointer}
.online-shell-active .online-world{position:fixed;inset:0;margin:0}
.online-shell-active .online-world>p{position:absolute;z-index:2;left:50%;top:48%;transform:translate(-50%,-50%);max-width:min(420px,calc(100vw - 32px));padding:16px 20px;border-radius:10px;background:#f2f8f5;text-align:center}
.online-drawer{position:fixed;z-index:12;top:84px;right:20px;bottom:20px;width:min(440px,calc(100vw - 40px));overflow:auto;border:1px solid #aac3b5;border-radius:12px;background:#f7faf5;box-shadow:0 12px 36px rgba(13,45,39,.22)}
[hidden]{display:none!important}
.referral-panel{padding:22px;color:#203c37;line-height:1.65}.referral-panel h2{font-size:24px}.referral-panel input{display:block;width:100%;box-sizing:border-box;margin:8px 0;padding:10px;border:1px solid #aac3b5;border-radius:6px}.referral-panel button{padding:8px 12px;border:1px solid #aac3b5;border-radius:8px;background:#fffaf0;color:#203c37;cursor:pointer}.referral-panel button:disabled{opacity:.55;cursor:not-allowed}.referral-panel ol{padding-left:26px}.referral-panel li{padding:8px 0}.referral-panel li span{display:inline-block;min-width:110px}.referral-panel [role=status]{padding:10px;background:#e4efdf;border-radius:8px}
.online-drawer .qhub-account{border:0;border-radius:0;background:transparent}
.online-chat-drawer{display:flex;flex-direction:column}
.online-drawer-close{align-self:flex-end;margin:12px 16px 0;padding:8px 12px;border:1px solid #aac3b5;border-radius:6px;background:#fff;color:#143c37;cursor:pointer}
.online-chat-drawer .online-chat{display:flex;flex:1;flex-direction:column;min-height:0;margin:0;padding:16px 22px 22px;border:0;border-radius:0;background:transparent}
.online-chat-drawer .online-chat-messages{flex:1;min-height:100px;max-height:none}


.online-shell-active{position:fixed;inset:0;overflow:hidden}
.online-shell-active .online-world iframe{display:block;width:100%;height:100dvh;min-height:0;margin:0;border:0;border-radius:0;background:#102b25}
.online-world .town-regions{position:absolute;z-index:3;right:var(--town-edge);bottom:var(--town-bottom-band);width:min(320px,calc(100vw - 40px))}
.online-drawer{border:1px solid var(--town-rim);border-radius:20px;background:var(--town-card);box-shadow:var(--town-shadow-card);color:var(--town-ink)}
@media(max-width:760px){.online-drawer{top:84px;right:8px;bottom:8px;width:calc(100vw - 16px)}}
