:root{color-scheme:dark;scrollbar-color:#4f6180 #111a2b;scrollbar-width:thin;--bg: #0a101c;--surface: #111a2b;--surface-2: #16223a;--surface-3: #1c2b47;--line: #22304d;--text: #e8eefb;--muted: #a3b2cc;--accent: #4da3ff;--accent-2: #36c2b4;--warn: #f0b429;--danger: #ef5b6b;--r: 12px;--r-sm: 8px;--gap: 12px;--safe-b: env(safe-area-inset-bottom, 0px);--top: 52px;--bottom: 58px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,select,textarea{font:inherit;color:inherit}button:focus-visible,summary:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app{height:100dvh;display:flex;flex-direction:column}.topbar{height:var(--top);flex:0 0 auto;display:flex;align-items:center;gap:18px;padding:0 16px;background:#0a101ceb;border-bottom:1px solid var(--line);backdrop-filter:blur(8px);z-index:20}.brand{display:flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.08em}.brand-mark{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#8ed0ff,#2f6fd0)}.tabs-desktop{display:flex;gap:4px}.tab{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;color:var(--muted);transition:background .15s,color .15s}.tab:hover{color:var(--text);background:var(--surface-2)}.tab.on{color:#fff;background:var(--surface-3)}.topbar-right{flex:1;display:flex;justify-content:flex-end}.chip{padding:3px 9px;border-radius:999px;font-size:11px;background:#f0b4291f;color:#f0c86a;border:1px solid rgba(240,180,41,.3);display:inline-block}.chip.demo{background:#8b78ff24;color:#b3a6ff;border-color:#8b78ff59}.memory-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.memory-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:9px 12px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);font-size:13px}.mem-kind{font-size:11px;padding:1px 7px;border-radius:999px;white-space:nowrap;background:#4da3ff24;color:var(--accent);border:1px solid rgba(77,163,255,.3)}.mem-text{color:#d6e0f2;word-break:break-word}.mem-at{font-style:normal;color:var(--muted);font-size:11px;white-space:nowrap}.mem-side{display:inline-flex;align-items:center;gap:8px}.mem-del{width:20px;height:20px;border-radius:6px;color:var(--muted);line-height:1;font-size:15px}.mem-del:hover{background:#ef5b6b29;color:#ff9aa6}.mem-form{display:flex;gap:8px;align-items:center}.mem-form select{padding:9px 10px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);color:var(--text)}.mem-form input{flex:1;min-width:0;padding:9px 12px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line);outline:none}.mem-form input:focus{border-color:var(--accent)}.primary.small{width:auto;padding:9px 16px;flex:0 0 auto}.dev-panel{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--r-sm);border:1px dashed var(--line);background:#4da3ff0a}.tabs-mobile{display:none}.content{position:relative;flex:1;min-height:0}.pane{position:absolute;inset:0;display:flex;flex-direction:column;overflow:auto}.pane[hidden]{display:none}.tabbar{flex:0 0 auto;display:none;grid-template-columns:repeat(3,1fr);height:calc(var(--bottom) + var(--safe-b));padding-bottom:var(--safe-b);background:#0a101cf5;border-top:1px solid var(--line)}.tabbar .tab{flex-direction:column;gap:2px;padding:8px 0;border-radius:0;font-size:11px}.offline-bar{position:fixed;top:var(--top);left:0;right:0;z-index:60;display:flex;align-items:center;gap:8px;justify-content:center;padding:8px 12px;background:#4a2a12;color:#ffd9a8;font-size:13px;border-bottom:1px solid #6b3d18}.offline-bar .dot{width:8px;height:8px;border-radius:50%;background:var(--warn)}.offline-bar button{margin-left:8px;padding:2px 10px;border-radius:999px;border:1px solid #8a5520;color:#ffd9a8}.world{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 320px}.world-stage{position:relative;background:#060b14;overflow:hidden}.world-frame{width:100%;height:100%;border:0;display:block;background:#060b14}.world-veil{position:absolute;inset:0;display:grid;place-items:center;background:#060b14d1;backdrop-filter:blur(2px)}.loading{display:flex;align-items:center;gap:10px;color:var(--muted)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fallback{position:absolute;inset:0;display:flex;flex-direction:column}.fallback-img{width:100%;height:100%;object-fit:contain;opacity:.8}.fallback-block{flex:1;background:repeating-linear-gradient(135deg,#131d2f 0 12px,#16223a 12px 24px)}.fallback-text{position:absolute;left:16px;bottom:16px;display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:var(--r);background:#0a101ce0;border:1px solid var(--line)}.fallback-text strong{font-size:14px}.fallback-text span{color:var(--muted);font-size:12px}.world-badge{position:absolute;top:12px;left:12px;padding:4px 10px;border-radius:999px;background:#0a101cd9;border:1px solid var(--line);font-size:12px;color:var(--muted)}.world-side{border-left:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:10px;padding:0;overflow:hidden;min-height:0}.world-drawer-toggle{display:none}.world-drawer-summary{display:flex;flex-direction:column;gap:2px}.world-drawer-summary>span{font-size:12px;color:var(--muted)}.world-drawer-action>span{margin-left:8px}.world-drawer-content{display:flex;flex:1;flex-direction:column;gap:10px;min-height:0;overflow:auto;padding:12px}.world-detail-actions{display:flex;gap:8px}.world-detail-actions .primary{flex:1}.world-diagnostics{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.world-diagnostics summary{cursor:pointer;padding:8px 0}.world-diagnostics pre{white-space:pre-wrap;overflow-wrap:anywhere}.hud{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px}.hud-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.hud-row.sub{margin-top:6px;color:var(--muted);font-size:12px;flex-wrap:wrap}.hud-time{font-size:22px;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums}.hud-weather{color:var(--muted);display:inline-flex;align-items:center;gap:5px}.wx-ico{width:16px;height:16px;display:inline-block;flex:0 0 auto;background:currentColor;-webkit-mask:var(--wx) center / contain no-repeat;mask:var(--wx) center / contain no-repeat}.hud-weather .stale{color:var(--warn);font-style:normal;margin-left:6px;font-size:11px}.quality{display:inline-flex;align-items:center;gap:6px}.quality select{background:var(--surface-3);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:2px 6px}.hud-warn{margin-top:8px;font-size:12px;color:var(--warn)}.cards{display:flex;flex-direction:column;gap:8px}.actor-card{display:flex;gap:10px;align-items:center;text-align:left;padding:10px;border-radius:var(--r);background:var(--surface-2);border:1px solid transparent}.actor-card:hover{border-color:var(--line)}.actor-card.on{border-color:var(--accent);background:var(--surface-3)}.actor-main{flex:1;min-width:0}.actor-name{display:flex;align-items:baseline;gap:8px;font-weight:600}.actor-room{color:var(--muted);font-weight:400;font-size:12px}.absent{color:var(--muted);font-size:12px;padding:2px 4px}.needs{display:flex;flex-direction:column;gap:4px;margin-top:6px}.need{display:grid;grid-template-columns:32px 1fr 26px;gap:6px;align-items:center;font-size:11px;color:var(--muted)}.need-bar{height:18px;border-radius:0;background:none;overflow:visible}.skin-card .need-bar{border:5px solid transparent;border-image:url(/assets/ui/bar-need-track.svg) 12 12 12 12 fill / 5px / 0 stretch;background:#e8e2d4}.need-bar i{display:block;height:8px;margin:5px 6px 0;border-radius:4px;background:linear-gradient(90deg,var(--accent-2),var(--accent))}.skin-card .need-bar i{margin:4px 5px 0;background:currentColor}.need-bar i.low{background:linear-gradient(90deg,#d4732a,var(--danger))}.need-v{text-align:right;font-variant-numeric:tabular-nums}.panel{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r)}.panel-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.panel-head .ghost{margin-left:auto;color:var(--muted);font-size:12px}.panel-body{padding:12px;display:flex;flex-direction:column;gap:10px}.kv{display:flex;justify-content:space-between;gap:12px;font-size:13px}.kv span{color:var(--muted)}.kv b{font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.primary{width:100%;padding:10px;border-radius:var(--r-sm);background:linear-gradient(180deg,#3f8ef0,#2e6fd0);color:#fff;font-weight:600}.ghost{color:var(--muted)}.events{flex:0 0 auto}.event-list{list-style:none;margin:0;padding:6px 0;max-height:220px;overflow:auto}.event-list li{display:grid;grid-template-columns:44px 62px 1fr;gap:8px;padding:5px 12px;font-size:12px}.ev-time{color:var(--muted);font-variant-numeric:tabular-nums}.ev-actor{color:var(--accent-2)}.ev-text{color:#c7d4ea}.world-foot{text-align:center;font-size:11px;padding:4px 0 8px}.avatar{display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#fff;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff24;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar.art{background:var(--surface-2)}.avatar.group{border-radius:9px;background:#16223a;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.avatar.group img{object-fit:contain}.skin-card{border:10px solid transparent;border-image:url(/assets/ui/card-char.svg) 20 20 20 20 fill / 10px / 0 stretch;border-radius:0;background:#faf7ef;color:#2b3348;box-shadow:0 2px 10px #00000040}.skin-card .muted{color:#5d6a7e}.skin-card{--muted: #53627a}.actor-card.skin-card.on{outline:2px solid #2f6fd0;outline-offset:-2px}.skin-head{border:6px solid transparent;border-image:url(/assets/ui/card-char-header.svg) 20 14 20 14 fill / 6px / 0 stretch;border-radius:0;background:transparent;color:#2b3348}.need-track{height:12px;border:6px solid transparent;border-image:url(/assets/ui/bar-need-track.svg) 12 12 12 12 fill / 6px / 0 stretch;border-radius:0;background:#e8e2d4;overflow:hidden}.view-head{display:flex;align-items:baseline;gap:10px;padding:16px 16px 8px}.view-head h1{margin:0;font-size:20px}.muted{color:var(--muted)}.hint{padding:10px 16px 16px;font-size:12px}.chat-list-view{max-width:760px;width:100%;margin:0 auto;padding-bottom:16px}.channels{list-style:none;margin:0;padding:0 8px;display:flex;flex-direction:column;gap:2px}.channel{width:100%;display:flex;gap:12px;align-items:center;text-align:left;padding:10px;border-radius:var(--r)}.channel:hover{background:var(--surface-2)}.channel.pinned{background:#4da3ff0f}.ch-main{flex:1;min-width:0}.ch-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.ch-title{font-weight:600;display:inline-flex;align-items:center;gap:6px}.pin{font-style:normal;font-size:10px;padding:1px 6px;border-radius:999px;background:#4da3ff29;color:var(--accent);border:1px solid rgba(77,163,255,.3)}.ch-time{color:var(--muted);font-size:11px;white-space:nowrap}.ch-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}.ch-preview{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:inline-grid;place-items:center}.watch-group{margin:12px 8px 0;border-top:1px dashed var(--line);padding-top:8px}.watch-head{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);color:var(--muted)}.watch-head:hover{background:var(--surface-2)}.chev{width:12px;color:var(--muted)}.wg-title{flex:1;text-align:left;font-weight:600;color:#cbd8ee}.watch-list{list-style:none;margin:2px 0 0;padding:0 0 0 8px;border-left:1px solid var(--line)}.channel.sub{padding:8px 10px}.channel.sub:hover{background:var(--surface-2)}.channel-view{flex:1;min-height:0;display:flex;flex-direction:column;max-width:760px;width:100%;margin:0 auto}.chan-head{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);flex:0 0 auto}.chan-head h1{margin:0;font-size:16px}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:var(--muted)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.messages{flex:1;min-height:0;overflow:auto;padding:14px 12px;display:flex;flex-direction:column;gap:10px}.msg{display:flex;gap:8px;align-items:flex-start}.msg.mine{flex-direction:row-reverse}.bubble-wrap{display:flex;flex-direction:column;gap:2px;max-width:78%}.msg.mine .bubble-wrap{align-items:flex-end}.who{font-size:11px;color:var(--muted)}.bubble{padding:8px 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);word-break:break-word;white-space:pre-wrap}.msg.mine .bubble{background:linear-gradient(180deg,#2f6fd0,#285cae);border-color:#3f8ef0}.at{font-size:10px;color:#6b7d9e}.composer{flex:0 0 auto;display:flex;gap:8px;padding:10px 12px calc(10px + var(--safe-b));border-top:1px solid var(--line);background:var(--surface)}.composer input{flex:1;padding:10px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);outline:none}.composer input:focus{border-color:var(--accent)}.send{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#3f8ef0,#2e6fd0);color:#fff}.send:disabled{opacity:.45}.watch-view{flex:1;min-height:0;display:flex;flex-direction:column;max-width:760px;width:100%;margin:0 auto}.watch-banner{margin:10px 14px;padding:8px 12px;border-radius:var(--r-sm);background:#f0b4291a;border:1px solid rgba(240,180,41,.3);color:#f0c86a;font-size:12px;text-align:center}.watch-banner.sticky{position:sticky;top:0;z-index:5;margin:0 0 6px;border-radius:0}.readonly-bar{flex:0 0 auto;padding:12px;text-align:center;color:var(--muted);font-size:12px;border-top:1px solid var(--line);background:var(--surface)}.load-more{align-self:center;margin:4px auto 6px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:12px}.load-more:hover{color:var(--text);border-color:var(--accent)}.sys-msg{align-self:center;max-width:86%;text-align:center;color:var(--muted);font-size:12px;padding:3px 10px;background:#ffffff08;border-radius:999px}.mention-tags{display:inline-flex;gap:4px;margin-left:6px}.mention-tags i{font-style:normal;font-size:11px;color:var(--accent)}.mention-chips{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px 0}.mchip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:#4da3ff24;border:1px solid rgba(77,163,255,.35);color:var(--accent);font-size:12px}.mchip button{color:inherit;opacity:.7}.mchip button:hover{opacity:1}.mention-picker{margin:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);max-height:190px;overflow-y:auto}.mpick{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;text-align:left}.mpick:hover{background:var(--surface-3)}.mpick em{margin-left:auto;font-style:normal;color:var(--muted);font-size:11px}.at-btn{flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);color:var(--muted);font-weight:700}.at-btn:hover{color:var(--text);border-color:var(--accent)}.mpick.on{background:var(--surface-3)}.send-pending{padding:4px 14px 0;font-size:12px;color:var(--muted)}.send-failed{padding:6px 14px 0;font-size:12px;color:#ff9aa6;display:flex;gap:8px;align-items:center}.send-failed button{text-decoration:underline;color:inherit}.msg-status{font-size:11px;color:var(--muted)}.msg-status.pending{color:var(--warn)}.msg-status.processed{color:var(--accent-2)}.watch-channel .messages{padding-bottom:8px}.settings-view{max-width:760px;width:100%;margin:0 auto}.settings-nav{list-style:none;margin:0;padding:0 8px}.setting-row{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 10px;border-radius:var(--r)}.setting-row:hover{background:var(--surface-2)}.s-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);color:var(--accent)}.s-main{flex:1;display:flex;flex-direction:column}.s-main b{font-weight:600}.s-main em{font-style:normal;color:var(--muted);font-size:12px}.s-chev{color:var(--muted)}.settings-detail{flex:1;min-height:0;display:flex;flex-direction:column;max-width:760px;width:100%;margin:0 auto}.settings-body{padding:12px 16px 24px;display:flex;flex-direction:column;gap:12px}.setting-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px}.sc-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.sc-row p{margin:4px 0 0;color:var(--muted);font-size:12px}.facts{margin:0;padding-left:18px;color:var(--muted);font-size:12px;display:flex;flex-direction:column;gap:4px}.switch{width:46px;height:26px;border-radius:999px;background:#26334d;padding:3px;border:1px solid var(--line);transition:background .15s;flex:0 0 auto}.switch span{display:block;width:18px;height:18px;border-radius:50%;background:#94a7c8;transition:transform .15s,background .15s}.switch.on{background:#2f6fd0;border-color:#3f8ef0}.switch.on span{transform:translate(20px);background:#fff}.switch:disabled{opacity:.5}.actor-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.actor-row{display:flex;align-items:center;gap:12px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.actor-row em{display:block;font-style:normal;color:var(--muted);font-size:12px}.usage{width:100%;border-collapse:collapse;font-size:13px}.usage th,.usage td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}.usage th{color:var(--muted);font-weight:500;font-size:12px}.note{padding:8px 10px;border-radius:var(--r-sm);background:#f0b4291a;color:#f0c86a;font-size:12px}.placeholder{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:28px 12px;border:1px dashed var(--line);border-radius:var(--r);color:var(--muted);text-align:center}.placeholder em{font-style:normal;font-size:11px;color:#6b7d9e}.empty{padding:40px 16px;text-align:center;color:var(--muted)}.empty.small{padding:18px;font-size:12px}.inline-err{padding:8px 10px;border-radius:var(--r-sm);background:#ef5b6b1f;color:#ff9aa6;font-size:12px}.gate{max-width:420px;margin:8vh auto 0;padding:0 20px;text-align:center}.gate h1{font-size:20px;margin:0 0 6px}.gate p{font-size:13px;line-height:1.6}.gate-form{display:flex;flex-direction:column;gap:10px;margin:18px 0 10px}.gate-form input{padding:12px 14px;border-radius:var(--r-sm);text-align:center;background:var(--surface-2);border:1px solid var(--line);outline:none}.gate-form input:focus{border-color:var(--accent)}.gate-actions{display:flex;gap:10px;margin-top:18px}.gate-actions .primary{flex:1}.ghost-btn{flex:1;padding:10px;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--muted)}.ghost-btn:hover{color:var(--text);border-color:var(--accent)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.chat-workspace,.settings-layout{flex:1;min-height:0;min-width:0;width:100%;overflow:hidden}.chat-sidebar,.chat-detail,.settings-sidebar,.settings-panel{min-width:0;min-height:0}.chat-workspace{display:flex;flex-direction:column}.chat-sidebar{overflow:auto}.chat-detail{display:flex;flex:1}.chat-workspace.has-channel .chat-sidebar,.chat-workspace.is-list .chat-detail{display:none}.chat-workspace.is-list .chat-sidebar{flex:1}.channel.selected{background:var(--surface-3);box-shadow:inset 3px 0 var(--accent)}.load-status,.refresh-status{padding:12px;color:var(--muted);font-size:13px}.load-status{text-align:center}.refresh-status{background:#f0b42914;color:#f0c86a}.load-status button,.refresh-status button{margin:8px;text-decoration:underline}.chat-placeholder,.settings-welcome{flex:1;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px;color:var(--muted);text-align:center}.chat-placeholder h2,.settings-welcome h2{color:var(--text);font-size:20px;margin:0}.settings-layout{overflow:auto}.settings-layout.has-section .settings-sidebar{display:none}.settings-layout:not(.has-section) .settings-panel{display:none}.setting-row.is-active{background:var(--surface-3);box-shadow:inset 3px 0 var(--accent)}.settings-diagnostics summary{cursor:pointer;color:var(--muted);padding:8px 0}.settings-diagnostics .kv{margin:10px 0}.settings-diagnostics .mono{overflow-wrap:anywhere;min-width:0}.settings-diagnostics-body,.settings-runtime{display:flex;flex-direction:column;gap:8px}.version-trigger{font-weight:600;padding:0}.usage caption{color:var(--muted);text-align:left;padding:0 0 10px;font-size:12px}@media(min-width:1024px){.chat-workspace{display:grid;grid-template-columns:320px minmax(0,1fr)}.chat-workspace.has-channel .chat-sidebar,.chat-workspace.is-list .chat-detail{display:flex}.chat-sidebar{flex-direction:column;border-right:1px solid var(--line);background:var(--surface)}.chat-sidebar .chat-list-view{width:100%;max-width:none}.chat-sidebar .view-head{flex-wrap:wrap}.chat-sidebar .channel{gap:10px}.chat-sidebar .channel .avatar{flex-shrink:0}.chat-detail .channel-view{max-width:none}.chat-detail .back{display:none}.chat-detail .messages,.chat-detail .composer{padding-left:clamp(20px,4vw,76px);padding-right:clamp(20px,4vw,76px)}.chat-detail .bubble-wrap{max-width:min(78%,720px)}.settings-layout{display:grid;grid-template-columns:200px minmax(0,1fr);overflow:hidden}.settings-layout.has-section .settings-sidebar,.settings-layout:not(.has-section) .settings-panel{display:block}.settings-sidebar{border-right:1px solid var(--line);background:var(--surface);overflow:auto}.settings-sidebar .settings-view{max-width:none}.settings-sidebar .settings-nav-head{padding:18px 16px 8px;flex-direction:column;align-items:flex-start;gap:4px}.settings-sidebar .s-icon,.settings-sidebar .s-chev{display:none}.settings-panel{overflow:auto}.settings-panel .settings-detail{max-width:960px;min-height:100%}.settings-panel .settings-mobile-back{display:none}.settings-welcome{height:100%}}@media(max-width:767px){.tabs-desktop{display:none}.tabbar{display:grid}.content{padding-bottom:0}.world{display:block;position:relative;overflow:hidden}.world-stage{position:absolute;inset:0 0 64px}.world-side{position:absolute;inset:auto 0 0;z-index:10;max-height:calc(100% - 12px);border-left:0;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -8px 28px #0000003d;gap:0}.world-drawer-toggle{display:flex;flex:0 0 64px;min-height:64px;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;text-align:left}.world-drawer-summary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-drawer-action{color:var(--accent);flex-shrink:0}.world-drawer-peek .world-drawer-content{display:none}.world-drawer-open .world-side{height:85%}.world-drawer-content{overscroll-behavior:contain}.hud-time{font-size:18px}.channel-view,.watch-view{max-width:none}.bubble-wrap{max-width:84%}.view-head{padding:12px 14px 6px}.channels{padding:0 6px}.settings-body{padding:10px 12px 24px}.composer{padding-bottom:calc(10px + var(--safe-b))}}@media(min-width:768px)and (max-width:1023px){.world{grid-template-columns:minmax(0,1fr) 300px}}.typing{display:flex;align-items:center;gap:6px;padding:2px 14px 0;font-size:12px;color:var(--muted)}.typing i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:typing-pulse 1s ease-in-out infinite}@keyframes typing-pulse{0%,to{opacity:.25}50%{opacity:1}}:is(button,input,textarea,select,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.tabs-desktop .tab{min-height:44px}button:disabled{cursor:not-allowed}@media(prefers-reduced-motion:reduce){.typing i{animation:none;opacity:.75}.tab,.switch,.switch span{transition:none}}.gate-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px;background:#080d16d1;backdrop-filter:blur(6px)}.gate-overlay .gate{width:min(420px,100%);margin:0}.app-footer{flex:0 0 auto;padding:7px 12px calc(7px + var(--safe-b));text-align:center;font-size:13px;line-height:1.5;color:#bdcbe1;background:var(--bg);border-top:1px solid var(--line)}.app-footer a{color:inherit;text-decoration:none;text-underline-offset:3px}.app-footer a:hover{text-decoration:underline}body .world{--world-muted: #adbad1}.world.world-with-data-notice{grid-template-rows:auto minmax(0,1fr)}.world .world-data-status{grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:10px 14px;background:#302619;color:#ffe0a6;border-bottom:1px solid #82653b;font-size:14px;line-height:1.5}.world .world-data-status>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.world .world-data-status strong{font-size:14px}.world .world-data-status span{color:#e9d5b3;font-size:13px;overflow-wrap:anywhere}.world .world-data-status[data-state=loading]{background:#18283b;border-color:#38506f;color:#cce5ff}.world .world-data-status[data-state=loading] span{color:#c2d0e5}.world .world-data-retry{flex:0 0 auto;min-height:44px;white-space:nowrap;padding:6px 10px;border:1px solid #9b7b4c;border-radius:8px;color:#ffe0a6}.world .world-data-retry:disabled{opacity:.7;cursor:wait}.world .world-cached-label{margin:0;color:#f3c376;font-size:13px;line-height:1.5}.world .world-side{color:var(--text);background:var(--surface)}.world .world-drawer-content{gap:12px;scrollbar-width:thin;scrollbar-color:#3b4d6b transparent}.world .world-drawer-content::-webkit-scrollbar,.world .event-list::-webkit-scrollbar{width:6px}.world .world-drawer-content::-webkit-scrollbar-thumb,.world .event-list::-webkit-scrollbar-thumb{background:#3b4d6b;border-radius:8px}.world .world-selected-detail{flex:0 0 auto;overflow:hidden;background:var(--surface-2);border:1px solid #38506f;border-radius:12px}.world .world-selected-detail .panel-head{padding:12px;gap:10px}.world .world-selected-detail .panel-body{padding:10px 12px 12px;gap:10px}.world .world-selected-heading{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.world .world-selected-heading strong{font-size:17px}.world .world-selected-heading>span{font-size:14px;color:var(--world-muted);overflow-wrap:anywhere}.world .world-condition{margin:0;color:#c4e3db;font-size:14px;line-height:1.5}.world .world-detail-actions .primary{min-height:44px;background:#3176c8;border:1px solid #5897df}.world .world-detail-actions .primary:hover{background:#3a85db}.world .world-desktop-close{min-height:44px;min-width:44px;padding:6px 8px;font-size:14px}.world .world-needs-detail{border-top:1px solid var(--line);font-size:14px;color:var(--world-muted)}.world .world-needs-detail summary{min-height:44px;display:list-item;align-content:center;cursor:pointer;color:var(--world-muted)}.world .world-needs-detail p{margin:4px 0 10px;font-size:14px;line-height:1.6}.world .world-needs-detail .needs{margin:10px 0 14px;gap:12px}.world .world-needs-detail .need{grid-template-columns:64px 1fr 28px;gap:3px 8px;font-size:13px;color:var(--world-muted)}.world .world-needs-detail .need-bar{height:7px;border:0;border-image:none;border-radius:10px;background:#2b3a53;overflow:hidden}.world .world-needs-detail .need-bar i{height:100%;margin:0;border-radius:10px;background:currentColor}.world .world-needs-detail .need-bar i.low{background:#edb16f}.world .need-description{grid-column:2 / 4;font-size:13px;color:#c5d0e3}.world .world-home-intro{padding:2px 2px 4px}.world .world-home-intro>strong{font-size:17px}.world .world-home-intro p{margin:8px 0 0;color:var(--world-muted);font-size:14px;line-height:1.65}.world .world-home-intro ul{padding:0;list-style:none;margin:9px 0 0;color:#d9e4f4;font-size:14px}.world .world-home-intro li+li{margin-top:5px}.world .actor-card{min-height:68px;flex:0 0 auto;border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--surface-2);color:var(--text);gap:10px}.world .actor-card:hover{border-color:#506988;background:#1b2a43}.world .actor-name{font-size:15px}.world .actor-room{display:block;margin-top:3px;color:var(--world-muted);font-size:13px;line-height:1.5}.world .actor-condition{display:block;margin-top:4px;color:#c4e3db;font-size:13px}.world .world-actor-chevron{font-size:22px;color:var(--world-muted)}.world .world-actor-switcher{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.world .world-actor-switcher .actor-card{min-height:48px;padding:7px 9px;gap:7px}.world .world-actor-switcher .actor-name{font-size:14px}.world .world-actor-switcher .world-actor-chevron{display:none}.world .absent{grid-column:1 / -1;font-size:13px;color:var(--world-muted)}.world .events .panel-head{justify-content:space-between}.world .events .panel-head .muted{font-size:12px;color:var(--world-muted)}.world .event-list{scrollbar-width:thin;scrollbar-color:#3b4d6b transparent}.world .event-list li{grid-template-columns:58px minmax(0,1fr);gap:3px 6px;font-size:13px;padding:8px 10px}.world .ev-time{grid-column:1 / -1;color:var(--world-muted);font-size:12px}.world .ev-text{overflow-wrap:anywhere}.world .world-environment{border-top:1px solid var(--line);color:var(--world-muted)}.world .world-environment>summary{min-height:48px;padding:10px 2px;cursor:pointer;font-size:14px}.world .world-environment>summary>span{margin-left:6px;font-size:13px}.world .world-environment .hud{padding:12px}.world .world-weather-detail,.world .world-weather-updated{margin:8px 0 0;color:var(--world-muted);font-size:13px;line-height:1.6}.world .hud-weather{color:#cfdaeb;flex-wrap:wrap;font-size:14px}.world .hud-weather .stale{font-size:13px;color:#f3c376}.world .quality{flex-wrap:wrap;font-size:14px;gap:8px}.world .quality select{min-height:44px;min-width:76px;padding:7px 10px}.world .hud-warn{font-size:14px;line-height:1.5}.world .world-diagnostics{font-size:13px}.world .world-diagnostics>summary{min-height:44px;align-content:center}.world .world-foot{font-size:13px;color:var(--world-muted);line-height:1.6}.world button:focus-visible,.world summary:focus-visible,.world select:focus-visible{outline:2px solid #8fc7ff;outline-offset:2px}.world button:active{filter:brightness(1.12)}@media(max-width:767px){body .world{display:flex;flex-direction:column;position:relative;overflow:hidden}.world .world-data-status{flex:0 0 auto;gap:8px;padding:8px 12px}.world .world-stage{position:relative;inset:auto;flex:1;min-height:0}.world .world-side{position:relative;inset:auto;flex:0 0 68px;height:68px;max-height:none;border-left:0;border-top:1px solid #38506f;border-radius:16px 16px 0 0;gap:0}.world.world-drawer-open .world-side{flex-basis:44%;height:44%}.world .world-drawer-toggle{display:flex;flex:0 0 56px;min-height:56px;padding:8px 14px;gap:8px}.world.world-drawer-peek .world-drawer-toggle{flex-basis:68px}.world .world-drawer-summary strong{font-size:14px}.world .world-drawer-summary>span{color:var(--world-muted);font-size:13px}.world .world-drawer-action{font-size:14px;color:#9ccdff}.world .world-drawer-content{padding:0 12px 12px;gap:10px;overscroll-behavior:contain}.world .world-selected-detail .panel-head{padding:9px 11px}.world .world-selected-detail .panel-body{padding:8px 11px 0;gap:8px}.world .world-selected-heading strong{font-size:16px}.world .world-desktop-close{display:none}.world .world-actor-switcher .actor-card{min-height:48px}.world .world-home-intro{padding-top:8px}}@media(prefers-reduced-motion:reduce){.world button{transition:none}}.bubble .message-mention{color:#b9dcff;background:#73b1ff26;border-radius:4px;padding:0 2px;font-weight:600;-webkit-box-decoration-break:clone;box-decoration-break:clone}.msg.mine .bubble .message-mention{color:#fff;background:#ffffff2e}.channel-view{position:relative}.channel-view [hidden]{display:none!important}.channel-view .chan-head .back,.watch-view .back{display:grid;width:44px;height:44px;flex:0 0 44px}.chan-actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.channel-view .ghost-btn,.watch-view .ghost-btn{min-height:44px}.chat-detail .messages,.chat-detail .composer{padding-left:max(16px,calc((100% - 900px)/2));padding-right:max(16px,calc((100% - 900px)/2))}.channel-view .bubble-wrap{max-width:min(84%,640px)}.channel-view .composer{align-items:flex-end;padding-bottom:6px}.composer textarea{flex:1;min-width:0;height:44px;min-height:44px;max-height:168px;resize:none;overflow-y:auto;line-height:1.5;padding:10px 12px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line);font:inherit;font-size:16px;color:var(--text)}.composer textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.channel-view .at-btn,.channel-view .send{width:44px;height:44px;flex:0 0 44px}.composer-help,.chat-rule{margin:0;color:var(--muted);font-size:13px;line-height:1.5;padding:0 max(16px,calc((100% - 900px)/2)) 8px}.composer-help{padding-bottom:calc(8px + var(--safe-b))}.chat-rule{padding-top:6px}.touch-help{display:none}.message-day{align-self:center;color:var(--muted);font-size:13px;line-height:1.6;padding:7px 12px}.channel-view .at,.channel-view .who,.channel-view .msg-status{font-size:12px;line-height:1.5}.channel-view .at{color:var(--muted)}.channel-view .load-more{min-height:44px;font-size:14px}.channel-view .mention-picker{flex:0 0 auto;max-height:240px}.mention-help{margin:0;padding:10px 12px;color:var(--muted);font-size:13px;line-height:1.6;border-bottom:1px solid var(--line)}.channel-view .mpick{min-height:44px}.channel-view button:focus-visible,.watch-view button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.channel-view button:active,.watch-view button:active{filter:brightness(1.15)}.latest-button{align-self:center;min-height:44px;padding:6px 16px;border:1px solid var(--line);border-radius:22px;background:var(--surface-2);color:var(--text);font-size:14px;margin:4px 0}.watch-view .watch-banner,.watch-channel .watch-banner{background:var(--surface-2);border-color:var(--line);color:var(--muted);font-size:13px}.chat-history{flex:1;min-height:0;display:flex;flex-direction:column}.history-search{display:flex;flex:0 0 auto;gap:6px;padding:10px max(12px,calc((100% - 900px)/2));border-bottom:1px solid var(--line)}.history-search input{flex:1;min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--text);font-size:16px}.history-search .ghost-btn{flex:0 0 auto;white-space:nowrap}.history-meta{padding:4px max(12px,calc((100% - 900px)/2));display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;color:var(--muted);font-size:13px}.history-description{min-width:0;overflow-wrap:anywhere}.history-actions{display:flex;flex-wrap:wrap;gap:4px 8px;min-width:0}.history-actions .ghost-btn{flex:0 0 auto;white-space:nowrap;min-height:44px}.history-live-update{flex:0 0 auto;align-self:center;white-space:nowrap}.history-records{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:10px max(16px,calc((100% - 900px)/2))}.history-hit{display:flex;flex-direction:column;gap:6px;width:100%;padding:12px;text-align:left;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere}.history-hit-meta,.history-hit-link{font-size:13px;color:var(--muted)}.history-hit-link{color:var(--accent)}.history-selected .bubble{outline:2px solid var(--accent);outline-offset:2px}@media(pointer:coarse),(max-width:599px){.keyboard-help{display:none}.touch-help{display:inline}}@media(max-width:599px){.chan-actions{gap:0}.chan-actions .ghost-btn{padding:6px 8px;font-size:13px}.chan-head{gap:4px}.channel-list-link{display:none}.history-search{flex-wrap:nowrap}.history-search input{flex-basis:0}.history-description,.history-actions{flex-basis:100%}}.social-form{gap:18px}.settings-layout{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.settings-layout .hint,.settings-layout .facts,.settings-layout .note,.settings-layout .sc-row p{font-size:14px;line-height:1.65}.settings-layout button:focus-visible,.settings-layout summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.settings-layout button:active:not(:disabled){filter:brightness(1.15)}.settings-layout button:not(.switch),.settings-layout input:not([type=checkbox]),.settings-layout select,.settings-layout summary{min-height:44px}.settings-layout .switch{min-height:44px;padding:12px 3px;height:44px;background-clip:content-box;border-color:transparent}.settings-layout .switch span{position:relative}.settings-layout .social-check{min-height:44px;font-size:14px}.settings-layout .social-check input{flex:0 0 auto}.social-rhythms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.social-rhythms button{display:flex;flex-direction:column;gap:7px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}.social-rhythms button[aria-pressed=true]{border-color:var(--accent);background:var(--surface-3)}.social-rhythms button span{font-size:13px;line-height:1.5;color:var(--muted)}.social-advanced{border-top:1px solid var(--line);padding-top:8px}.social-advanced summary{cursor:pointer;font-size:14px;padding:10px 0}.social-advanced[open]>.social-fieldset{margin:14px 0 20px}.settings-text-action{color:var(--accent);text-align:left;width:fit-content}.settings-sticky-actions{position:sticky;bottom:0;z-index:3;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;margin:0 -4px -4px;box-shadow:0 -8px 20px #0000001f}.protection-current{border-left:3px solid var(--accent-2);padding-left:12px;font-size:14px;line-height:1.6}.protection-history{padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);color:var(--muted);font-size:14px;line-height:1.6}.protection-history p{margin:5px 0 0}.settings-resident{align-items:flex-start;padding:16px}.settings-resident-copy{min-width:0;flex:1}.settings-resident-copy p{font-size:14px;line-height:1.65;margin:9px 0}.settings-resident-copy em{margin-top:4px;font-size:14px}.settings-resident-copy button{padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm)}.settings-subhead{margin:8px 0 0;font-size:16px}.memory-scope p,.usage-explanation p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}.memory-find{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.5fr);gap:12px}.memory-find label,.memory-edit label{display:flex;flex-direction:column;gap:7px;font-size:14px}.memory-find input,.memory-find select,.memory-edit select,.memory-edit textarea{width:100%;min-width:0;padding:10px;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--text);background:var(--surface-2);font:inherit}.memory-edit{grid-column:1 / -1;width:100%;display:flex;flex-direction:column;gap:12px}.memory-edit textarea{min-height:100px;resize:vertical;line-height:1.6}.memory-editor{min-width:0}.memory-editor .settings-subhead{margin-top:0}.memory-edit-original{margin:0;font-size:14px;line-height:1.6;overflow-wrap:anywhere;max-height:6.4em;overflow-y:auto}.settings-layout .mem-form{flex-wrap:wrap}.settings-layout .mem-form .settings-text-action{flex-basis:100%;margin:0;text-align:left}.settings-layout .mem-side{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px}.settings-layout .memory-list li{font-size:14px;align-items:start}.settings-layout .mem-text{overflow-wrap:anywhere;line-height:1.65}.settings-layout .mem-at,.settings-layout .mem-kind,.mem-source{font-size:13px;line-height:1.6}.mem-source{color:var(--muted)}.settings-layout .mem-del,.memory-edit-button{min-width:44px;width:auto;height:auto;padding:8px;font-size:14px;border-radius:var(--r-sm)}.settings-layout .memory-delete-confirm{display:flex;flex-wrap:wrap}.memory-delete-confirm>span{flex-basis:100%;font-size:14px}.settings-result{color:var(--accent-2);font-size:14px;line-height:1.6}.usage-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.usage-summary .setting-card>b{font-size:clamp(18px,2vw,24px);overflow-wrap:anywhere}.usage-summary .setting-card>span{font-size:14px;color:var(--muted)}.usage-details summary{cursor:pointer;padding:10px 0}.usage-table-scroll{overflow-x:auto}.settings-help{padding:14px 0;display:grid;gap:10px}.social-fieldset{margin:0;padding:0;border:0;min-width:0;display:grid;gap:12px}.social-fieldset legend{padding:0;margin-bottom:10px;font-weight:600}.social-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.social-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:14px}.social-field input{width:100%;min-width:0;padding:9px 10px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm)}.social-field input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.social-field small{color:var(--muted);font-size:14px;line-height:1.6}.social-check{display:flex;gap:9px;align-items:center;font-size:13px}.social-check input{width:18px;height:18px;accent-color:var(--accent)}.social-actor{border-top:1px solid var(--line);padding-top:10px}.social-actor b{display:block;font-size:14px;margin-bottom:7px}.settings-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.settings-actions button{padding:8px 12px;border-radius:var(--r-sm);border:1px solid var(--line)}.settings-actions .primary{border-color:transparent}.settings-actions button:disabled{opacity:.5;cursor:default}.settings-save-state{margin:0;font-size:14px;color:var(--muted)}.settings-save-state.saved{color:var(--accent-2)}.settings-draft-notice{padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font-size:14px;line-height:1.6}.settings-draft-notice button{margin-left:8px;color:var(--accent);min-height:44px}.settings-memory-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.settings-memory-footer p{margin:0;color:var(--muted);font-size:14px}.settings-connection{margin:8px 0;display:flex;flex-direction:column;gap:10px}.settings-connection .kv b{text-align:right}.settings-connection .healthy{color:var(--accent-2)}.settings-connection .unhealthy{color:var(--warn)}.memory-delete-confirm{display:flex;flex-wrap:wrap;gap:6px}.memory-delete-confirm button{border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:var(--surface-2);color:var(--text);font-size:14px}.memory-delete-confirm button:first-of-type{color:var(--warn)}@media(max-width:600px){.social-rhythms{grid-template-columns:1fr;gap:8px}.social-rhythms button{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.settings-layout .memory-list li{grid-template-columns:auto minmax(0,1fr)}.settings-layout .memory-list li .mem-side{grid-column:1 / -1;width:100%}.settings-layout .mem-form{flex-wrap:wrap}.settings-layout .mem-form input{flex-basis:calc(100% - 120px)}.settings-layout .settings-sticky-actions{padding-bottom:calc(12px + var(--safe-b, 0px))}.memory-list li:has(.memory-delete-confirm){flex-wrap:wrap}.memory-list li:has(.memory-delete-confirm) .mem-side{width:100%;justify-content:flex-end}}@media(max-width:420px){.social-fields{gap:10px}.social-field{font-size:14px}.social-field input{padding:9px 7px}.settings-memory-footer{align-items:flex-start}}
