:root{--z-popover: 5000;line-height:1.5;font-weight:400;color:var(--text-main, #0f172a);background-color:#f1f5f9;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--page-bg);font-family:var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#ffffff4d}::-webkit-scrollbar-thumb{background-color:#ffd6e7;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background-color:#ffc2d9}html,body,#root{height:100%}html.no-fx,html.no-fx body{background:#f8fafc!important}html.no-fx,html.no-fx *,html.no-fx *:before,html.no-fx *:after{animation:none!important;transition:none!important;filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html.no-fx{--blur: 0px;--page-bg: #f8fafc}#root{min-height:100vh;min-height:100dvh}#root input:not([type=checkbox]):not([type=radio]),#root textarea,#root select{font-size:16px}@media(max-width:768px){#root input:not([type=checkbox]):not([type=radio]),#root textarea,#root select{font-size:16px!important}body.chat-page-active{height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none}body.chat-page-active #root{height:100dvh}html.settings-page-active,html.settings-page-active body,body.settings-page-active{height:auto;overflow:auto!important;overscroll-behavior:auto}body.settings-page-active #root{height:100%}}html.no-fx .app-shell,html.no-fx .chat-page,html.no-fx .rp-room-dashboard-page,html.no-fx .rp-rooms-page{background:#f8fafc!important}html.no-fx .chat-page:before,html.no-fx .rp-room-dashboard-page:before,html.no-fx .rp-rooms-page:before,html.no-fx .rp-rooms-page:after,html.no-fx .sessions-overlay,html.no-fx .sessions-drawer:before{background:none!important;opacity:0!important}:root{--font-sans: "Nunito", -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Arial, sans-serif;--font-rounded: "Nunito", "Quicksand", "Comfortaa", "Avenir Next Rounded", "Arial Rounded MT Bold", var(--font-sans);--font-display: "Rounded Mplus 1c", "Nunito", system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--accent: #ffd6e7;--accent-strong: #f8bad4;--text-main: #111827;--text-subtle: #6b7280;--glass-bg: rgba(255, 255, 255, .22);--glass-border: rgba(255, 255, 255, .35);--shadow-soft: 0 12px 30px rgba(0, 0, 0, .08);--radius-card: 28px;--radius-tile: 20px;--radius-btn: 16px;--blur: 16px;--page-bg: linear-gradient(180deg, #fdf2f8 0%, #f8fafc 52%, #f3f4f6 100%)}.ui-title{font-family:var(--font-display);font-weight:600;letter-spacing:.01em;line-height:1.15;text-transform:none;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.ui-numeric{font-family:var(--font-rounded);font-variant-numeric:tabular-nums lining-nums}.glass-card,.glass-panel{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur))}.glass-card{border-radius:var(--radius-card);padding:1rem}.glass-panel{border-radius:calc(var(--radius-card) + 4px);padding:1rem}.btn-primary,.btn-secondary,.btn-danger{border:none;border-radius:var(--radius-btn);min-height:42px;padding:10px 16px;font-size:14px;font-weight:600;transition:background-color .16s ease,transform .12s ease,box-shadow .16s ease;cursor:pointer}.btn-primary{background:var(--accent);color:var(--text-main);box-shadow:0 6px 14px #f9a8d457}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 86%,#fff 14%)}.btn-primary:active{background:var(--accent-strong);transform:translateY(1px)}.btn-secondary{background:#ffffffe6;color:var(--text-main);border:1px solid rgba(209,213,219,.9)}.btn-danger{background:#fee2e2;color:#b91c1c}.input-glass,.textarea-glass{border:1px solid color-mix(in srgb,var(--glass-border) 72%,#d1d5db 28%);background:#ffffffb8;color:var(--text-main);border-radius:var(--radius-tile);padding:10px 14px;font-size:16px;line-height:1.45;outline:none}.input-glass:focus,.textarea-glass:focus{border-color:color-mix(in srgb,var(--accent) 62%,#fda4af 38%);box-shadow:0 0 0 3px #ffd6e75c}.top-nav{position:sticky;top:0;z-index:10;background:transparent;background-image:none;color:var(--text-main);border-bottom:1px solid var(--glass-border);box-shadow:0 6px 18px #0000000f}.app-shell{min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--page-bg)}.app-shell__header{position:sticky;top:0;z-index:10;padding-top:env(safe-area-inset-top);background:transparent;background-image:none;color:var(--text-main);border-bottom:1px solid var(--glass-border);box-shadow:0 6px 18px #0000000f}.app-shell__header:before,.app-shell__header:after{background:none}.app-shell__content{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:transparent;padding-bottom:env(safe-area-inset-bottom)}@media(max-width:768px){.btn-primary,.btn-secondary,.btn-danger,.input-glass,.textarea-glass{font-size:16px}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass-card,.glass-panel{backdrop-filter:none;-webkit-backdrop-filter:none;background:#ffffffc2}.top-nav{background-image:none}}@media(max-width:560px){.glass-card,.glass-panel,.input-glass,.textarea-glass{backdrop-filter:none;-webkit-backdrop-filter:none;background:#ffffff59}.top-nav{background-image:none}}.confirm-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:calc(var(--z-popover) + 100)}.confirm-dialog{background:#fff;border-radius:16px;padding:20px;width:min(360px,100%);max-height:min(calc(100vh - 48px),100%);max-height:min(calc(100dvh - 48px),100%);overflow:auto;box-shadow:0 20px 40px #0f172a33}.confirm-dialog h2{margin:0 0 8px;font-size:18px}.confirm-dialog p{margin:0 0 16px;color:#475569;font-size:14px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-actions .secondary{background:#e2e8f0;color:#1f2937}.confirm-actions .tertiary{background:#f1f5f9;color:#0f172a}.confirm-actions .primary{background:#0f172a;color:#fff}.confirm-actions button{border:none;border-radius:999px;padding:8px 14px;font-size:14px;cursor:pointer}.reasoning-panel{margin-bottom:8px}.reasoning-panel__toggle{border:none;background:transparent;color:#6b7280;font-size:12px;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:6px}.reasoning-panel__toggle:hover{color:#374151}.reasoning-panel__content{max-height:0;opacity:0;overflow:hidden;transition:max-height .25s ease,opacity .25s ease}.reasoning-panel__content.is-open{max-height:360px;opacity:1}.reasoning-panel__body,.reasoning-content{margin-top:8px;max-height:min(300px,50vh);overflow-y:auto;padding:12px;border-radius:8px;background:#00000008;color:#6b7280;font-size:.9em;font-style:italic;line-height:1.6;white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.reasoning-panel__body::-webkit-scrollbar,.reasoning-content::-webkit-scrollbar{width:6px}.reasoning-panel__body::-webkit-scrollbar-thumb,.reasoning-content::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.chat-page{position:relative;display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;background:var(--page-bg);overflow:hidden;overscroll-behavior:none;color:var(--text-main);isolation:isolate}.chat-page:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0}.chat-page.chat-polka-dots:before{opacity:1;background-image:radial-gradient(circle,rgba(107,114,128,.08) 1.15px,transparent 1.2px);background-size:18px 18px}.chat-page>*{position:relative;z-index:1}.chat-page--ios{background:var(--page-bg);color:var(--text-main)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;gap:8px;position:sticky;top:0;z-index:20}.chat-page--ios .app-shell__header{background:var(--accent)!important;background-image:none!important}.chat-page--ios .app-shell__header:before,.chat-page--ios .app-shell__header:after{background:none!important}.chat-header .ghost{border:1px solid transparent;background:transparent;color:var(--text-main);font-weight:600;font-size:14px;cursor:pointer;border-radius:999px;padding:6px 10px}.chat-header .ghost:hover{background:#ffffff73}.header-title{display:flex;flex-direction:column;align-items:center;gap:2px}.header-title h1{margin:0;font-size:16px}.header-title .subtitle{font-size:12px;color:var(--text-subtle)}.header-actions{position:relative}.header-menu{position:fixed;z-index:1500;background:#ffffffe6;border:1px solid rgba(229,231,235,.9);border-radius:12px;box-shadow:var(--shadow-soft);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:140px}.header-menu button{border:none;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px}.header-menu button:hover{background:#f3f4f6}.chat-messages{flex:1;min-height:0;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:8px 16px;padding:2px 2px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-subtle);font-size:14px;text-align:center;padding:24px}.message{display:flex;flex-direction:column;max-width:100%}.message.in{align-items:flex-start}.message.out{align-items:flex-end}.message .bubble{max-width:75%;background:#ffffffe0;border:1px solid rgba(255,255,255,.65);border-radius:18px;padding:12px 12px 10px;position:relative;box-shadow:0 8px 24px #0f172a14;display:flex;flex-direction:column;gap:6px}.message .bubble p{margin:0;white-space:pre-wrap;line-height:1.6}.message.out .bubble{background:#9fa2aa;color:#fff;border:none;box-shadow:0 4px 14px #0f172a1a}.message.out .bubble a{color:#f8fafc;text-decoration:underline}.assistant-markdown{font-size:14px;line-height:1.6;color:#1f2937;word-break:break-word}.assistant-markdown>:first-child{margin-top:0}.assistant-markdown>:last-child{margin-bottom:0}.assistant-markdown p{margin:8px 0}.assistant-markdown ul,.assistant-markdown ol{margin:8px 0;padding-left:20px}.assistant-markdown li{margin:4px 0}.assistant-markdown a{color:#2563eb;text-decoration:underline;word-break:break-word}.assistant-markdown code{font-family:SFMono-Regular,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#0f172a14;padding:2px 6px;border-radius:6px;font-size:.92em}.assistant-markdown pre{margin:10px 0;padding:10px 12px;background:#0f172a;color:#e2e8f0;border-radius:10px;overflow-x:auto}.assistant-markdown pre code{background:transparent;padding:0;color:inherit;font-size:.9em}.message-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.message-tts-button{width:28px;height:28px;border:1px solid rgba(209,213,219,.72);border-radius:999px;background:#f8fafcd1;color:#9ca3af;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;line-height:1;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease,opacity .16s ease}.message-tts-button:hover:not(:disabled){background:#fff7fb;border-color:#f9a8d4;color:#ec4899;transform:translateY(-1px)}.message-tts-button:disabled{cursor:not-allowed;opacity:.48}.message-tts-button--playing{background:#ffe4f1;border-color:#f9a8d4;color:#db2777;box-shadow:0 0 0 3px #f9a8d433;animation:message-tts-pulse 1.4s ease-in-out infinite}.message-tts-spinner{width:14px;height:14px;border:2px solid rgba(156,163,175,.35);border-top-color:#ec4899;border-radius:999px;animation:message-tts-spin .8s linear infinite}@keyframes message-tts-spin{to{transform:rotate(360deg)}}@keyframes message-tts-pulse{0%,to{box-shadow:0 0 0 3px #f9a8d429}50%{box-shadow:0 0 0 6px #f9a8d447}}.bubble-meta{margin-top:5px;display:inline-flex;align-items:center;gap:7px;padding:0 2px;font-size:11px;line-height:1}.message.in .bubble-meta{color:var(--text-subtle)}.message.out .bubble-meta{color:#11182773}.bubble-meta .timestamp{font-size:inherit;color:currentColor}.model-tag{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#374151;background:#d1d5db66;padding:2px 6px;border-radius:999px}.tool-call-panel{margin:0 0 6px;padding:4px 8px;border-radius:10px;background:#d1d5db40;font-size:12px;color:#374151}.tool-call-panel summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.tool-call-panel summary::-webkit-details-marker{display:none}.tool-call-panel ul{margin:6px 0 2px;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.tool-call-item{display:flex;justify-content:space-between;align-items:center;gap:8px}.tool-call-name{font-family:monospace;word-break:break-all}.tool-call-status{flex-shrink:0;font-weight:600}.tool-call-item--running .tool-call-status{color:#926a00}.tool-call-item--done .tool-call-status{color:#15803d}.tool-call-item--error .tool-call-status{color:#b91c1c}.message.out .model-tag{color:#fbcfe8;background:#fbcfe833}.message-actions{position:relative}.action-trigger{min-width:30px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;padding:6px;border-radius:8px;border:1px solid transparent;background:transparent;font-size:12px;font-weight:700;color:currentColor;line-height:1;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}.message.out .action-trigger{opacity:.82}.message:hover .action-trigger,.message:active .action-trigger,.message:focus-within .action-trigger,.message .action-trigger[aria-expanded=true]{background:#0f172a14;border-color:#0f172a1f}.message.out:hover .action-trigger,.message.out:active .action-trigger,.message.out:focus-within .action-trigger,.message.out .action-trigger[aria-expanded=true]{opacity:1;background:#0f172a1f;border-color:#0f172a26}.actions-menu{position:absolute;top:calc(100% + 4px);right:0;background:#ffffffed;border:1px solid rgba(229,231,235,.9);border-radius:10px;box-shadow:var(--shadow-soft);padding:6px;display:flex;flex-direction:column;gap:4px;min-width:140px;z-index:40}.actions-menu-portal{position:fixed;top:auto;right:auto;z-index:var(--z-popover)}.actions-menu button{border:none;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px}.actions-menu button:hover{background:#f3f4f6}.actions-menu .danger{color:#b91c1c}.chat-composer{margin:0 16px 12px;padding:12px 14px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;position:sticky;bottom:0;z-index:3}@media(max-width:768px){.chat-composer textarea,.model-selector select{font-size:16px}}.streaming-status{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-subtle)}.streaming-status .stop-button{color:#b91c1c;font-weight:600}.composer-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;font-size:12px;color:#4b5563}.composer-toolbar::-webkit-scrollbar{display:none}.model-selector,.composer-toggle{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;min-height:30px;border-radius:999px;padding:0 11px;border:1px solid var(--glass-border);background:var(--glass-bg);font-size:12px;font-weight:500;color:var(--text-main);transition:background-color .12s ease,border-color .12s ease;position:relative}.model-selector:hover,.composer-toggle:hover{background:#ffffff4d}.model-selector:focus-within,.composer-toggle:active{background:#ffffff59}.model-selector select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;appearance:none;border:none;background:transparent;font-size:12px;font-weight:500;color:var(--text-main);outline:none}.model-hint{font-size:11px;line-height:1.2;color:var(--text-subtle);opacity:.82;margin-left:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-label{color:var(--text-subtle)}.chip-value{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-chevron{font-size:10px;color:var(--text-subtle)}.composer-toggle input{appearance:none;width:14px;height:14px;border-radius:999px;border:1px solid rgba(107,114,128,.4);background:#fff9;margin:0;position:relative}.composer-toggle input:checked{background:color-mix(in srgb,var(--accent) 28%,#ffffff 72%);border-color:color-mix(in srgb,var(--accent) 40%,rgba(107,114,128,.3) 60%)}.composer-toggle input:checked:after{content:"";position:absolute;inset:3px;border-radius:999px;background:color-mix(in srgb,var(--accent-strong) 70%,#f472b6 30%)}.composer-toggle:has(input:checked){background:color-mix(in srgb,var(--glass-bg) 75%,var(--accent) 25%);border-color:color-mix(in srgb,var(--glass-border) 70%,var(--accent) 30%)}.composer-toggle .toggle-hint{color:var(--text-subtle)}.injection-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;border-radius:999px;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-subtle);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;-webkit-user-select:none;user-select:none}.injection-trigger:hover{background:#ffffff59;color:var(--text-main)}.injection-trigger__icon{font-size:22px;line-height:1;font-weight:400;transition:transform .2s ease}.injection-trigger--open{background:#fff6;color:var(--text-main)}.injection-trigger--open .injection-trigger__icon{transform:rotate(45deg)}.injection-trigger--active{border-color:color-mix(in srgb,var(--accent-strong) 45%,var(--glass-border) 55%);color:var(--text-main)}.injection-trigger__badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:color-mix(in srgb,var(--accent-strong) 70%,#f472b6 30%);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 1px 4px #f9a8d466}.injection-menu{position:fixed;z-index:1500;display:flex;flex-direction:column;gap:4px;min-width:132px;padding:6px;border-radius:12px;border:1px solid rgba(229,231,235,.9);background:#ffffffeb;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.injection-menu__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:none;border-radius:8px;background:transparent;font-size:13px;font-weight:500;color:var(--text-main);cursor:pointer;transition:background-color .12s ease}.injection-menu__item:hover{background:#f3f4f6}.injection-menu__item--active{background:color-mix(in srgb,var(--accent) 30%,#ffffff 70%);color:var(--text-main)}.injection-menu__item--active:hover{background:color-mix(in srgb,var(--accent) 40%,#ffffff 60%)}.injection-menu__check{font-size:12px;font-weight:700;color:var(--accent-strong)}.composer-row{display:flex;gap:8px;align-items:flex-end}.chat-composer textarea{flex:1;resize:none;min-height:42px}@media(max-width:560px){.chat-page{grid-template-rows:auto minmax(0,1fr) auto}.chat-header{padding:10px 10px 8px;gap:6px}.chat-header .ghost{padding:5px 8px;font-size:13px}.header-title h1{font-size:15px;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-messages{margin:6px 8px;border-radius:20px;padding:10px;gap:10px}.message .bubble{max-width:86%;border-radius:14px;padding:9px 10px}.chat-composer{margin:0 8px 8px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-radius:20px;gap:6px}.model-selector,.composer-toggle{min-height:28px;font-size:12px;padding:0 10px}.injection-trigger{width:38px;height:38px}.injection-trigger__icon{font-size:20px}.chip-value{max-width:104px}.composer-row{width:100%}.chat-composer textarea{min-height:40px}.chat-composer .btn-primary{min-width:64px;padding:10px 12px}}.checkin-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px;box-shadow:0 6px 18px #0f172a0f}.checkin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.checkin-header h2{margin:0;font-size:15px}.checkin-header span{font-size:12px;color:#64748b}.checkin-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.checkin-status{font-size:13px;font-weight:600}.checkin-status.done{color:#166534}.checkin-status.todo{color:#9a3412}.checkin-button{padding:7px 12px;border-radius:10px}.checkin-metrics{margin-top:8px;font-size:13px;color:#334155}.checkin-metrics p{margin:4px 0}.checkin-history-toggle{margin-top:6px;font-size:13px}.checkin-history{margin:8px 0 0;padding-left:18px;font-size:13px;color:#475569}.checkin-tip{margin:6px 0 0;font-size:12px;color:#64748b}.timeline-letter-card{align-self:stretch;border:1px solid rgba(251,191,36,.45);background:linear-gradient(135deg,#fffbebf2,#fef3c7b8);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;box-shadow:0 8px 24px #b453091f}.timeline-letter-card__header{display:flex;align-items:center;gap:8px}.timeline-letter-card__avatar{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#fcd34d73}.timeline-letter-card__meta{display:flex;flex-direction:column;gap:2px}.timeline-letter-card__model{font-size:12px;font-weight:700;color:#78350f}.timeline-letter-card__time{font-size:11px;color:#92400e}.timeline-letter-card__preview{margin:0;color:#451a03;font-size:13px;line-height:1.5}.timeline-letter-card__action{align-self:flex-start;border:1px solid rgba(146,64,14,.25);background:#ffffffb8;color:#78350f;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}.timeline-letter-card__action:hover{background:#fffffff2}.chat-page--pixel{--pixel-border: #86827d;--pixel-shadow: #c8b8aa;--pixel-panel: linear-gradient(180deg, #fffbf5 0%, #fdf4e8 100%);--pixel-panel-strong: linear-gradient(180deg, #fffbf5 0%, #fdf4e8 100%);--pixel-panel-accent: linear-gradient(180deg, #f6d7d4 0%, #efc2bc 100%);--pixel-panel-user: linear-gradient(180deg, #fdf4e8 0%, #f6d7d4 100%);--pixel-text: #5a5551;--pixel-subtle: #86827d;--pixel-cream: #fffbf5;background:radial-gradient(circle at 12% 0%,#f6e5d8 0%,transparent 32%),radial-gradient(circle at 90% 12%,#f6d7d4 0%,transparent 30%),#fdf4e8;color:var(--pixel-text)}.chat-page--pixel .chat-header{padding-bottom:10px}.chat-page--pixel .app-shell__header{background:linear-gradient(180deg,#fffbf5,#f6d7d4)!important;border-bottom:3px solid var(--pixel-border);box-shadow:inset 0 0 0 2px #726e69,inset 0 0 0 6px #fffdf9,inset 0 -6px #86827d2e}.chat-page--pixel .chat-header .ghost,.chat-page--pixel .return-to-game-button{min-height:36px;border-radius:9px;border:2px solid var(--pixel-border);background:linear-gradient(180deg,#fffbf5,#fdf4e8);box-shadow:inset 0 1px #fffdf9,inset 0 -3px #86827d66,0 2px #86827d24;color:var(--pixel-text);font-weight:800;position:relative;overflow:hidden}.chat-page--pixel .chat-header .ghost:before,.chat-page--pixel .return-to-game-button:before{content:"";position:absolute;inset:3px;border:1px solid rgba(255,255,255,.34);border-radius:inherit;pointer-events:none}.chat-page--pixel .chat-header .ghost:hover,.chat-page--pixel .return-to-game-button:hover{background:linear-gradient(180deg,#fffbf5,#f6d7d4)}.chat-page--pixel .header-title .subtitle,.chat-page--pixel .model-hint,.chat-page--pixel .composer-toggle .toggle-hint,.chat-page--pixel .chip-label,.chat-page--pixel .empty-state,.chat-page--pixel .message.in .bubble-meta,.chat-page--pixel .message.out .bubble-meta,.chat-page--pixel .streaming-status{color:var(--pixel-subtle)}.chat-page--pixel .header-menu,.chat-page--pixel .actions-menu{background:linear-gradient(180deg,#fffbf5,#fdf4e8);border:3px solid var(--pixel-border);border-radius:12px;box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 6px #f6d7d42e,inset 0 -6px #86827d38,0 12px 22px #5a555124}.chat-page--pixel .actions-menu button,.chat-page--pixel .header-menu button{color:var(--pixel-text);border-radius:8px;font-weight:700}.chat-page--pixel .actions-menu button:hover,.chat-page--pixel .header-menu button:hover{background:#f6d7d480}.chat-page--pixel .chat-messages{background:linear-gradient(180deg,#fdf4e8,#eadbcf);border:3px solid var(--pixel-border);border-radius:18px;box-shadow:inset 0 0 0 2px #726e69,inset 0 0 0 5px #b8b1aa,inset 0 0 0 9px #d7ccc1,inset 0 0 0 12px #fffbf5a6,0 10px 18px #5a555124;padding:12px 12px calc(18px + env(safe-area-inset-bottom))}.chat-page--pixel .message .bubble{max-width:min(78%,560px);background:var(--pixel-panel-strong);border:3px solid var(--pixel-border);border-radius:12px;box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 5px #f6d7d41f,inset 0 -4px #86827d33;color:var(--pixel-text)}.chat-page--pixel .message.out .bubble{background:var(--pixel-panel-user)}.chat-page--pixel .assistant-markdown,.chat-page--pixel .message .bubble p{color:var(--pixel-text)}.chat-page--pixel .assistant-markdown a,.chat-page--pixel .message.out .bubble a{color:#a3b19b}.chat-page--pixel .assistant-markdown code{background:#86827d1f}.chat-page--pixel .assistant-markdown pre{background:#86827d;color:#fffbf5}.chat-page--pixel .model-tag{color:var(--pixel-text);background:#f6d7d4b3;border:1px solid rgba(134,130,125,.35);border-radius:999px}.chat-page--pixel .message.out .action-trigger,.chat-page--pixel .message .action-trigger{color:var(--pixel-subtle)}.chat-page--pixel .message:hover .action-trigger,.chat-page--pixel .message:active .action-trigger,.chat-page--pixel .message:focus-within .action-trigger,.chat-page--pixel .message .action-trigger[aria-expanded=true]{background:#f6d7d47a;border-color:#86827d3d}.chat-page--pixel .chat-composer{background:linear-gradient(180deg,#fffbf5fa,#fdf4e8fa);border:3px solid var(--pixel-border);border-radius:16px;box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 6px #f6d7d46b,inset 0 -7px #86827d3d,0 10px 20px #5a555124}.chat-page--pixel .model-selector,.chat-page--pixel .composer-toggle{min-height:34px;border-radius:9px;border:2px solid var(--pixel-border);background:linear-gradient(180deg,#fffbf5,#fdf4e8);color:var(--pixel-text);box-shadow:inset 0 1px #fffdf9,inset 0 -2px #86827d66}.chat-page--pixel .model-selector:hover,.chat-page--pixel .composer-toggle:hover,.chat-page--pixel .model-selector:focus-within,.chat-page--pixel .composer-toggle:active{background:linear-gradient(180deg,#fffbf5,#f6d7d4)}.chat-page--pixel .injection-trigger{border:2px solid var(--pixel-border);background:linear-gradient(180deg,#fffbf5,#fdf4e8);color:var(--pixel-subtle);border-radius:12px;box-shadow:inset 0 1px #fffdf9,inset 0 -2px #86827d66}.chat-page--pixel .injection-trigger:hover,.chat-page--pixel .injection-trigger--open{background:linear-gradient(180deg,#fffbf5,#f6d7d4);color:var(--pixel-text)}.chat-page--pixel .injection-trigger--active{border-color:#86827d;color:var(--pixel-text)}.chat-page--pixel .injection-menu{background:linear-gradient(180deg,#fffbf5,#fdf4e8);border:3px solid var(--pixel-border);border-radius:12px;box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 6px #f6d7d42e,inset 0 -6px #86827d38,0 12px 22px #5a555124}.chat-page--pixel .injection-menu__item{color:var(--pixel-text);font-weight:700}.chat-page--pixel .injection-menu__item:hover{background:#f6d7d480}.chat-page--pixel .injection-menu__item--active{background:linear-gradient(180deg,#f6d7d4,#efc2bc)}.chat-page--pixel .composer-toggle input{border-color:#8f6b63;background:#fffbf5e6}.chat-page--pixel .composer-toggle input:checked{background:#f6d7d4f2;border-color:#86827d}.chat-page--pixel .composer-toggle input:checked:after{background:#fffbf5}.chat-page--pixel .composer-toggle:has(input:checked){background:linear-gradient(180deg,#f6d7d4,#efc2bc);border-color:#86827d}.chat-page--pixel .textarea-glass{border-radius:10px;border:3px solid var(--pixel-border);background:var(--pixel-panel);box-shadow:inset 0 0 0 2px var(--pixel-cream);color:var(--pixel-text)}.chat-page--pixel .textarea-glass::placeholder{color:#9a948e}.chat-page--pixel .btn-primary{min-height:46px;border-radius:10px;border:2px solid var(--pixel-border);background:linear-gradient(180deg,#f6d7d4,#efc2bc);color:var(--pixel-text);box-shadow:inset 0 1px #fffdf9,inset 0 -2px #86827d66}.chat-page--pixel .timeline-letter-card{border:3px solid var(--pixel-border);border-radius:12px;background:linear-gradient(180deg,#fffbf5,#fdf4e8);box-shadow:inset 0 0 0 2px #fffdf9,inset 0 -4px #86827d33}.chat-page--pixel .timeline-letter-card__avatar{background:#a3b19b47}.chat-page--pixel .timeline-letter-card__model,.chat-page--pixel .timeline-letter-card__preview,.chat-page--pixel .timeline-letter-card__time{color:#86827d}.chat-page--pixel .timeline-letter-card__action{border:2px solid var(--pixel-border);background:linear-gradient(180deg,#fffbf5,#fdf4e8);box-shadow:inset 0 1px #fffdf9,inset 0 -2px #86827d66;color:var(--pixel-text)}@media(max-width:560px){.chat-page--pixel .chat-messages{border-radius:16px;padding:10px 10px calc(14px + env(safe-area-inset-bottom))}.chat-page--pixel .message .bubble{max-width:90%;border-radius:10px}.chat-page--pixel .chat-composer{border-radius:14px}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;color:#5f4b54;background:radial-gradient(circle at 1px 1px,rgba(232,232,232,.55) 1px,transparent 0) 0 0 / 28px 28px,linear-gradient(165deg,#fdfbfb,#f4f5f7)}.auth-card{position:relative;width:min(520px,100%);border-radius:28px;border:2px solid #f6d7e5;padding:34px 30px 28px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(#fff,#fff) padding-box,radial-gradient(circle at 18px 18px,rgba(255,214,231,.65) 0 4px,transparent 4px) border-box,radial-gradient(circle at calc(100% - 18px) 18px,rgba(255,214,231,.65) 0 4px,transparent 4px) border-box,radial-gradient(circle at 18px calc(100% - 18px),rgba(255,214,231,.65) 0 4px,transparent 4px) border-box,radial-gradient(circle at calc(100% - 18px) calc(100% - 18px),rgba(255,214,231,.65) 0 4px,transparent 4px) border-box,linear-gradient(145deg,#ffffffe6,#fff8fcd1);box-shadow:0 18px 42px #6c58601f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.auth-card:before{content:"";position:absolute;top:-12px;right:26px;width:44px;height:22px;border-radius:9999px;border:2px solid #ffc2d9;background:linear-gradient(180deg,#ffd6e7f2,#ffc2d9e0);box-shadow:0 6px 12px #d87ca333;transform:rotate(9deg)}.auth-card:after{content:"";position:absolute;left:18px;top:-16px;width:18px;height:32px;border:2px solid rgba(209,213,219,.95);border-radius:12px;background:#ffffffb8;transform:rotate(-14deg)}.auth-logo{display:flex;justify-content:center}.auth-logo-icon{width:56px;height:56px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cellipse cx='25' cy='28' rx='7' ry='9' fill='%23fff8fc' stroke='%23f3b7cf' stroke-width='1.5'/%3E%3Cellipse cx='39' cy='29' rx='7' ry='9' fill='%23fff8fc' stroke='%23f3b7cf' stroke-width='1.5'/%3E%3Cpath d='M8 32h48a24 24 0 0 1-48 0z' fill='%23ffd6e7' stroke='%23f3b7cf' stroke-width='2'/%3E%3Cpath d='M12 36l6 10M22 34l4 14M32 34v16M42 34l-4 14M52 36l-6 10' stroke='%23f3b7cf' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}.auth-card h1{margin:0;text-align:center;color:#d87ca3;font-size:clamp(1.65rem,3.2vw,2.05rem);letter-spacing:.02em}.auth-card .subtitle{margin:0 0 4px;text-align:center;color:#8c8c8c;font-size:.95rem}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-size:.88rem;color:#a46a86}.input-shell{display:flex;align-items:center;gap:9px;border-radius:15px;border:1px dashed #efb9ce;background:#fff;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease}.input-shell:focus-within{border-color:#f4a9c8;box-shadow:0 0 0 3px #ffd6e7}.input-icon{font-size:.95rem;color:#c97ea0;font-weight:700}.field input{width:100%;border:none;outline:none;background:transparent;color:#5f4b54;font-size:.95rem}.field input::placeholder{color:#cda2b6}.auth-card .primary{position:relative;overflow:hidden;border-radius:15px;border:1px solid #d87ca3;padding:12px 14px;background:linear-gradient(180deg,#ffd6e7,#f9b9d3);color:#fff;font-size:1rem;font-weight:700;letter-spacing:.01em;cursor:pointer;text-shadow:0 1px 0 rgba(0,0,0,.08)}.auth-card .primary:before{content:"";position:absolute;top:0;left:-15%;width:55%;height:58%;background:#fff6;border-radius:20px;transform:rotate(-8deg)}.auth-card .primary:disabled{opacity:.68;cursor:not-allowed}.forgot-link{align-self:flex-end;margin-top:-4px;border:none;background:transparent;color:#d68db0;font-size:.8rem;cursor:pointer;padding:0}.forgot-link:hover{text-decoration:underline dotted}.auth-card .ghost,.auth-card .danger{border-radius:12px;padding:8px 12px;border:1px solid #efb9ce;background:#fff7fb;color:#9f6f85;cursor:pointer}.auth-card .danger{border-color:#f3aac7;color:#d16e99}.status{color:#5bbf87;margin:0}.error{color:#dd6d96;margin:0}.divider{height:1px;background:#f5d6e4;margin:6px 0}.auth-user{display:flex;flex-direction:column;gap:12px}.user-actions{display:flex;gap:12px}.hint{color:#9f8f97;margin:0}.drawer-scrim{position:fixed;inset:0;background:#f8fafc6b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1600}.drawer-scrim.open{opacity:1;pointer-events:auto}.sessions-drawer{position:fixed;top:0;left:0;bottom:0;width:min(360px,90vw);background:#ffffffb8;border-right:1px solid var(--glass-border);border-top-right-radius:28px;border-bottom-right-radius:28px;padding:16px;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-102%);transition:transform .25s ease;z-index:1650;overflow:hidden;box-shadow:var(--shadow-soft);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur))}.sessions-drawer:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle,rgba(225,224,227,.95) 1.8px,transparent 2px);background-size:14px 14px;background-position:0 0;opacity:.65;filter:blur(.2px)}.sessions-drawer-content{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;min-height:0;height:100%}.sessions-drawer.open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between}.drawer-header-actions{display:flex;align-items:center;gap:10px}.syncing{font-size:12px;color:var(--text-subtle)}.drawer-header h2{margin:0;font-size:18px}.drawer-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:color-mix(in srgb,var(--glass-bg) 70%,#ffffff 30%);border:1px solid color-mix(in srgb,var(--glass-border) 75%,#e5e7eb 25%);border-radius:999px;padding:4px}.drawer-tabs button{border:1px solid transparent;background:transparent;border-radius:999px;padding:6px 10px;font-size:13px;color:#334155;cursor:pointer}.drawer-tabs button.active{background:#ffffffd9;color:#0f172a;border-color:#d1d5dbb3;box-shadow:0 2px 6px #0f172a14}.search-input,.rename-row input{border:1px solid color-mix(in srgb,var(--glass-border) 72%,#d1d5db 28%);background:#ffffffc2;border-radius:12px;padding:9px 12px;font-size:14px;color:var(--text-main);outline:none}.search-input:focus,.rename-row input:focus{border-color:color-mix(in srgb,var(--accent) 62%,#fda4af 38%);box-shadow:0 0 0 3px #ffd6e74d}.sessions-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px;padding-right:2px}.session-row{background:color-mix(in srgb,#ffffff 80%,var(--glass-bg) 20%);border-radius:14px;padding:10px;border:1px solid rgba(226,232,240,.9);display:flex;flex-direction:column;gap:10px;box-shadow:0 6px 14px #0f172a0f}.session-row.active{border-color:color-mix(in srgb,var(--accent-strong) 42%,#94a3b8 58%)}.session-select{background:none;border:none;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;padding:0;cursor:pointer;text-align:left;color:#0f172a}.session-select span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-select .count{font-size:12px;color:var(--text-subtle);flex-shrink:0}.session-actions,.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.rename-row{display:flex;flex-direction:column;gap:8px}.sessions-drawer button.primary{border:none;background:var(--accent);color:var(--text-main);border-radius:999px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 6px 14px #f9a8d457}.sessions-drawer button.ghost,.sessions-drawer button.danger,.sessions-drawer .inline-actions button{border:1px solid color-mix(in srgb,var(--glass-border) 70%,#d1d5db 30%);background:#ffffffbd;color:#334155;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.sessions-drawer button.danger{color:#991b1b;background:#fee2e2bf}.sessions-drawer .empty{color:#94a3b8;font-size:14px;text-align:center;padding:18px 8px}@media(max-width:560px){.sessions-drawer{width:92vw;padding:14px 12px;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:calc(14px + env(safe-area-inset-bottom));border-top-right-radius:22px;border-bottom-right-radius:22px}.session-select{flex-direction:column;align-items:flex-start;gap:2px}}.drawer-scrim--pixel{background:#5a55513d;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.sessions-drawer--pixel{background:linear-gradient(180deg,#fffbf5fa,#fdf4e8fa);border-right:3px solid #86827d;border-top-right-radius:18px;border-bottom-right-radius:18px;box-shadow:inset 0 0 0 2px #726e69,inset 0 0 0 6px #fffdf9,inset 0 0 0 10px #f6d7d46b,inset -7px 0 #86827d3d,0 12px #86827d42,0 18px 34px #5a55512e;backdrop-filter:none;-webkit-backdrop-filter:none}.sessions-drawer--pixel:before{background:linear-gradient(180deg,#ffffff57,#fff0),repeating-linear-gradient(180deg,#f6d7d424 0 12px,#fffbf51f 12px 24px);opacity:.9;filter:none}.sessions-drawer--pixel .drawer-header{border:3px solid #86827d;border-radius:12px;padding:10px 12px;background:linear-gradient(180deg,#fffbf5,#f6d7d4);box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 5px #f6d7d42e}.sessions-drawer--pixel .drawer-header h2{font-size:19px}.sessions-drawer--pixel .syncing{color:#86827d;font-weight:700}.sessions-drawer--pixel .drawer-tabs{gap:8px;padding:0;border:none;background:transparent}.sessions-drawer--pixel .drawer-tabs button,.sessions-drawer--pixel button.primary,.sessions-drawer--pixel button.ghost,.sessions-drawer--pixel button.danger,.sessions-drawer--pixel .inline-actions button{min-height:38px;border:2px solid #86827d;border-radius:9px;box-shadow:inset 0 1px #fffdf9,inset 0 -3px #86827d73,0 2px #86827d24;font-weight:800;position:relative;overflow:hidden}.sessions-drawer--pixel .drawer-tabs button:before,.sessions-drawer--pixel button.primary:before,.sessions-drawer--pixel button.ghost:before,.sessions-drawer--pixel button.danger:before,.sessions-drawer--pixel .inline-actions button:before{content:"";position:absolute;inset:3px;border:1px solid rgba(255,255,255,.34);border-radius:inherit;pointer-events:none}.sessions-drawer--pixel .drawer-tabs button{background:linear-gradient(180deg,#fdf4e8,#f6d7d4);color:#5a5551;padding:7px 10px}.sessions-drawer--pixel .drawer-tabs button.active,.sessions-drawer--pixel button.primary{background:linear-gradient(180deg,#f6d7d4,#efc2bc);color:#5a5551;border-color:#86827d}.sessions-drawer--pixel button.primary{box-shadow:inset 0 1px #fffdf9,inset 0 -2px #86827d66}.sessions-drawer--pixel .search-input,.sessions-drawer--pixel .rename-row input{border:3px solid #86827d;border-radius:10px;padding:10px 12px;background:linear-gradient(180deg,#fffbf5,#fdf4e8);box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 5px #f6d7d41f,inset 0 -3px #86827d1f;color:#5a5551}.sessions-drawer--pixel .search-input:focus,.sessions-drawer--pixel .rename-row input:focus{border-color:#86827d;box-shadow:inset 0 0 0 2px #fffdf9,0 0 0 3px #f6d7d473}.sessions-drawer--pixel .sessions-list{padding-right:6px}.sessions-drawer--pixel .session-row{border:3px solid #86827d;border-radius:12px;padding:12px;background:linear-gradient(180deg,#fffbf5,#fdf4e8);box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 5px #f6d7d41f,inset 0 -4px #86827d33}.sessions-drawer--pixel .session-row.active{background:linear-gradient(180deg,#f6d7d4,#efc2bc);border-color:#86827d}.sessions-drawer--pixel .session-select{align-items:flex-start;color:#5a5551;flex-direction:column;gap:4px}.sessions-drawer--pixel .session-select span:first-child{width:100%;font-size:14px;font-weight:800}.sessions-drawer--pixel .session-select .count,.sessions-drawer--pixel .empty{color:#86827d}.sessions-drawer--pixel button.ghost,.sessions-drawer--pixel .inline-actions button{background:linear-gradient(180deg,#fffbf5,#fdf4e8);color:#5a5551}.sessions-drawer--pixel button.danger{background:linear-gradient(180deg,#f6d7d4,#d98a7c);color:#5a5551}.sessions-drawer--pixel .sessions-list::-webkit-scrollbar{width:10px}.sessions-drawer--pixel .sessions-list::-webkit-scrollbar-thumb{border:2px solid #fdf4e8;border-radius:999px;background:linear-gradient(180deg,#f6d7d4,#d98a7c)}.sessions-drawer--pixel .sessions-list::-webkit-scrollbar-track{border-radius:999px;background:#86827d1f}@media(max-width:560px){.sessions-drawer--pixel{width:94vw;border-top-right-radius:16px;border-bottom-right-radius:16px}}.app-shell{transition:none;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--app-background-image, none) center / cover no-repeat,var(--page-bg);color:#0f172a;overscroll-behavior:none}button{font-family:inherit}.loading-state{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;font-size:16px;color:#475569}.app-toast-stack{position:fixed;top:max(16px,env(safe-area-inset-top,0px) + 12px);left:50%;transform:translate(-50%);z-index:1200;pointer-events:none}.app-toast{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:min(86vw,320px);padding:10px 14px;border-radius:999px;background:#fffbf5f0;border:1px solid rgba(255,255,255,.82);box-shadow:0 10px 30px #0f172a1f;color:#334155;font-size:13px;font-weight:600;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-toast__icon{font-size:15px;line-height:1}.settings-shell{min-height:100vh;min-height:100dvh;background:var(--page-bg)}.settings-shell.app-shell{background:var(--page-bg);overscroll-behavior:auto}.settings-page{min-height:0;display:flex;flex-direction:column;gap:14px;padding-top:32px;background:var(--page-bg);padding-bottom:calc(28px + env(safe-area-inset-bottom));overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:auto}.settings-ribbon-divider{display:flex;align-items:center;gap:0;width:calc(100% - 32px);margin:0 16px 10px}.settings-ribbon-line{width:100%;height:1px;border-bottom:2px dashed #ffd6e7}.settings-ribbon-icon{padding:0 12px;font-size:1rem;line-height:1}.settings-page .settings-group{margin:0 16px;background:#ffffff8c;border:1px solid rgba(255,255,255,.35);border-radius:20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-soft);overflow:visible}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ffffffdb;border-bottom:1px solid rgba(17,24,39,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.settings-header h1{margin:0;font-size:16px;color:#5c5c5c}.settings-header .ghost{border:none;background:transparent;color:#5c5c5c;font-weight:700;font-size:14px;cursor:pointer}.header-spacer{width:40px}.settings-loading{padding:24px 16px;color:#8c8c8c;font-size:14px}.settings-page .empty-state{color:#7c7c7c;font-size:13px;background:#fffc;border-radius:12px;padding:12px;border:1px solid rgba(17,24,39,.08)}.settings-section{margin:0;display:flex;flex-direction:column;gap:0;background:transparent}.section-title{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon title" "icon subtitle";column-gap:10px;row-gap:2px;align-items:center;min-width:0}.section-icon{grid-area:icon;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#6b72801f;color:#6b7280;font-size:18px}.section-title h2{grid-area:title;margin:0;font-size:16px;color:#5c5c5c;font-weight:700}.section-title p{grid-area:subtitle;margin:0;color:#8c8c8c;font-size:13px}.display-mode-subtitle{line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-page .collapse-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent!important;background-image:none!important;box-shadow:none!important;border:none;border-radius:0;min-height:56px;padding:14px;text-align:left;transition:background-color .2s ease;position:relative}.settings-page .collapse-header:before,.settings-page .collapse-header:after{background:none!important}.settings-page .collapse-header[aria-expanded=false]:hover{background:#ffffff47}.settings-page .settings-section+.settings-section .collapse-header{border-top:1px solid rgba(0,0,0,.06)}.settings-page .settings-section .collapse-header[aria-expanded=true]:after{display:none}.settings-page .collapse-header .section-title{flex:1}.settings-page .display-mode-collapse-header{min-height:52px;padding-block:10px}.settings-page .display-mode-collapse-header .section-title{min-width:0;row-gap:1px}.settings-page .display-mode-collapse-header .section-icon{align-self:center}.settings-page .display-mode-collapse-header .collapse-header-aside{flex-shrink:0;min-width:fit-content;gap:6px}.settings-page .display-mode-collapse-header .collapse-summary{line-height:1.2;white-space:nowrap}.settings-page .display-mode-collapse-header .collapse-indicator{font-size:21px}.collapse-header-aside{display:inline-flex;align-items:center;gap:8px}.collapse-summary{font-size:13px;color:#8c8c8c;font-weight:600}.collapse-indicator{color:#11182759;font-size:24px;line-height:1;transform:rotate(0);transition:transform .2s ease}.settings-page .collapse-header[aria-expanded=true] .collapse-indicator{transform:rotate(90deg)}.accordion-content{background:#f8f4f8;border:none;border-radius:0;padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px;max-height:none;overflow:visible}@media(max-width:560px){.accordion-content{transition:none;max-height:none;overflow:visible}}.nested-prompt-title{margin-top:8px}.model-select-card,.catalog-result-item,.catalog-dropdown{border-radius:12px;border:1px solid #ffe3ee;background:#ffffffe6}.model-select-card{display:flex;flex-direction:column;gap:12px;padding:12px}.model-select-row{display:grid;grid-template-columns:minmax(72px,auto) minmax(0,1fr) auto;gap:8px;align-items:center}.model-select-row label,.field-group label{font-size:13px;color:#5c5c5c}.model-select-row select,.field-group input,.field-group select,.system-prompt,.search-input,.compression-fields input,.compression-fields select{border:1px solid #ffdce9;border-radius:12px;padding:10px 12px;font-size:14px;font-family:inherit;background:#fff;color:#5c5c5c}.system-prompt{min-height:140px;resize:vertical;border-style:dashed;border-color:#ffd6e7;background:#fffefb}.system-prompt:focus{outline:none;border-style:solid;border-width:2px;border-color:#ffc2da}.model-id{font-size:12px;color:#9a9a9a;word-break:break-all}.settings-page button{border:1px solid transparent;border-radius:999px;padding:8px 12px;background:#ffb7d2;color:#5c5c5c;font-size:13px;font-weight:600;cursor:pointer}.settings-page button.ghost{background:#fffc;border-color:#ffd6e7;color:#6d6d6d}.settings-page button.small{padding:6px 10px;font-size:12px}.settings-page button.danger{color:#b2547d;border-color:#ffc9dd}.badge{background:#ffd6e7;color:#6d6d6d;font-size:11px;padding:4px 8px;border-radius:999px}.badge.subtle{background:#ffe7f1}.field-group{display:flex;flex-direction:column;gap:6px}.compression-fields{display:flex;flex-direction:column;gap:8px}.toggle-control{display:inline-flex;align-items:center;gap:10px;width:fit-content;font-size:13px;color:#5c5c5c}.toggle-control input{appearance:none;width:40px;height:22px;border-radius:999px;background:#e3e3e3;position:relative;cursor:pointer;transition:background .2s ease}.toggle-control input:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.toggle-control input:checked{background:#ffd6e7}.toggle-control input:checked:after{transform:translate(18px)}.field-error{color:#c35e86;font-size:12px}.field-hint{margin:0;font-size:12px;color:#8c8c8c}.system-prompt-actions{display:flex;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap}.system-prompt-actions .primary{background:#ffb7d2;color:#5c5c5c}.system-prompt-actions .primary:disabled{cursor:not-allowed;opacity:.5}.system-prompt-status,.catalog-hint,.catalog-empty,.catalog-status,.context-length{font-size:12px;color:#8c8c8c}.catalog-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.catalog-result-item{display:flex;flex-direction:column;gap:6px;padding:10px}.catalog-status.error{color:#c35e86}.display-mode-switch{display:grid;gap:8px}.display-mode-option{display:flex;align-items:center;gap:8px;font-size:14px;color:#5c5c5c}.settings-loading-inline{color:#8c8c8c;font-size:13px}.auto-letter-card,.special-date-card{border-radius:12px;border:1px solid #ffe3ee;background:#ffffffeb;padding:12px}.auto-letter-card{display:flex;flex-direction:column;gap:12px}.auto-letter-grid,.special-date-grid{display:grid;gap:10px}.auto-letter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.auto-letter-hours-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.auto-letter-hour-field{display:flex;flex-direction:column;gap:6px}.auto-letter-hour-input{display:inline-flex;align-items:center;gap:8px}.auto-letter-hour-input input{min-width:0;flex:1}.auto-letter-hour-suffix{font-size:13px;color:#8c8c8c}.special-dates-list,.special-date-card{display:flex;flex-direction:column;gap:10px}.special-date-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));align-items:start}.special-date-label-field{grid-column:span 2}@media(max-width:560px){.special-date-label-field{grid-column:auto}}.push-notification-card{border-radius:12px;border:1px solid #ffe3ee;background:#ffffffeb;padding:12px;display:flex;flex-direction:column;gap:12px}.push-notification-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.push-notification-stat{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:10px;background:#fff0f6b3;color:#5c5c5c}.push-notification-label,.settings-helper-text{color:#8c8c8c;font-size:13px}.settings-helper-text{margin:0;line-height:1.4}.memory-page{min-height:100vh;min-height:100dvh;max-width:720px;margin:0 auto;padding:16px 14px 28px;display:flex;flex-direction:column;gap:16px;background:radial-gradient(circle at 10px 10px,rgba(255,214,231,.4) 2px,transparent 2.5px) 0 0 / 24px 24px,transparent}.memory-agent-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px;scrollbar-width:none}.memory-agent-tabs::-webkit-scrollbar{display:none}.memory-agent-tab{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,214,231,.9);border-radius:999px;background:#ffffffb3;color:var(--text-main, #5c5c5c);padding:6px 14px;font-size:14px;font-family:inherit;cursor:pointer;transition:background .16s ease,border-color .16s ease}.memory-agent-tab.active{background:#ffb6c8;border-color:#ff9eb5;color:#4a3742;font-weight:600}.memory-divider-dot{width:8px;height:8px;border-radius:50%;background:#ffb6c8;display:inline-block}.memory-header{display:flex;justify-content:space-between;align-items:center}.memory-header h1{margin:0;font-size:18px}.memory-section{background:#ffffff8f;border-radius:18px;padding:14px;border:1px solid rgba(255,214,231,.7);box-shadow:0 10px 26px #5c5c5c1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.memory-section h2{margin:0 0 12px;font-size:16px;color:#5c5c5c}.memory-section textarea{width:100%;resize:vertical;border:1px solid #cbd5e1;border-radius:8px;padding:8px;font-family:inherit;font-size:14px}.memory-list{margin-top:10px;display:grid;gap:10px}.memory-card{border-radius:12px;padding:14px 12px 10px;position:relative;transition:transform .18s ease}.memory-card:nth-child(2n){transform:rotate(-1deg)}.memory-card:nth-child(odd){transform:rotate(1deg)}.memory-card p{margin:0;white-space:pre-wrap;color:var(--text-main)}.memory-actions{margin-top:8px;display:flex;gap:8px}.memory-section-heading{display:flex;justify-content:flex-start;align-items:baseline;margin-bottom:10px}.memory-section-heading h2{margin:0}.memory-toggle-group{flex:1;display:flex;flex-wrap:wrap;gap:10px}.memory-memo-pad{border:1px solid #ffd6e7;border-radius:14px;background:repeating-linear-gradient(180deg,rgba(255,214,231,.24) 0,rgba(255,214,231,.24) 1px,transparent 1px,transparent 30px),#fff;padding:12px;box-shadow:0 8px 18px #ffd6e747}.memory-memo-pad textarea{background:transparent;border:none;padding:4px 2px;color:var(--text-main)}.memory-memo-pad textarea::placeholder{color:var(--text-subtle)}.memory-memo-pad textarea:focus{outline:none}.memory-save-sticker{margin-top:8px;border:none;border-radius:999px;background:#ffd6e7;color:#5c5c5c;font-weight:700;padding:8px 16px;box-shadow:0 6px 14px #ffd6e7b3}.memory-save-sticker:disabled{opacity:.6}.memory-list--archive{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.memory-card--archive{background:#fff;border:1px solid #ffd6e7}.memory-washi{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:72px;height:16px;border-radius:3px;background:#ffd6e78f}.memory-divider{display:flex;align-items:center;gap:8px}.memory-divider-line{flex:1;border-top:2px dotted rgba(92,92,92,.4)}.memory-divider-bow{font-size:15px}.memory-control-bar{border:1px solid rgba(255,214,231,.8);background:#fcfcfcb3;border-radius:14px;padding:12px;display:flex;gap:12px;align-items:center;justify-content:space-between;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ios-toggle{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:6px 8px;border:none;background:transparent;font-size:13px;color:#5c5c5c}.ios-toggle-track{width:42px;height:24px;border-radius:999px;background:#d7d7d7;padding:2px;display:inline-flex;align-items:center;transition:background-color .16s ease}.ios-toggle-thumb{width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transform:translate(0);transition:transform .16s ease}.ios-toggle.is-on .ios-toggle-track{background:#ffd6e7}.ios-toggle.is-on .ios-toggle-thumb{transform:translate(18px)}.extract-button{border:none;border-radius:999px;background:linear-gradient(135deg,#ffd6e7,#ffe9f3);color:#5c5c5c;font-weight:700;padding:10px 14px;box-shadow:0 8px 20px #ffd6e78c}.memory-list--pending{grid-template-columns:1fr}.memory-card--pending{border:1px dashed rgba(92,92,92,.5);background:#fcfcfcd1;opacity:.9}.stamp-button{border:1px solid;border-radius:999px;background:transparent;font-weight:600}.stamp-button--approve{border-color:#ffd6e7;color:#5c5c5c;background:#ffd6e759}.stamp-button--reject{border-color:#5c5c5c80;color:#5c5c5c}@media(max-width:640px){.memory-control-bar{flex-direction:column;align-items:stretch}.memory-toggle-group{flex-direction:column}}.export-page{width:min(840px,100%);margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:16px}.export-page.game-feature-page{width:100%;margin:0;padding:0}.export-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.export-header h1{margin:0;font-size:1.1rem;color:#5c5c5c}.export-package-card{position:relative;border:1px solid #ffd6e7;border-radius:24px;background:#fffc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:20px;display:flex;flex-direction:column;gap:14px}.export-page.game-feature-page .export-package-card{border:2px solid #8c665e;border-radius:20px;background:linear-gradient(180deg,#fff7f2f5,#f8ded5f5);box-shadow:inset 0 0 0 2px #fffbf8e6,inset 0 -5px #7e564e29}.export-page.game-feature-page .export-subsection{padding:12px;border:2px solid #c99a90;border-radius:16px;background:#fffaf7e6}.export-package-card h2{margin:0;font-size:1.1rem;color:#5c5c5c;font-weight:700}.export-washi-tape{position:absolute;top:-12px;left:20px;width:92px;height:24px;border-radius:8px;background:linear-gradient(135deg,#ffd6e7db,#fff9);border:1px dashed rgba(255,255,255,.8);transform:rotate(-10deg);box-shadow:0 4px 8px #5c5c5c14}.export-subsection{display:flex;flex-direction:column;gap:10px}.export-subsection h3{margin:0;font-size:.95rem;color:#5c5c5c}.export-format-stickers{display:flex;flex-wrap:wrap;gap:10px}.export-sticker{border:1px solid #ffd6e7;background:transparent;color:#8c8c8c;border-radius:999px;padding:6px 12px;font-size:.92rem;cursor:pointer;transition:all .2s ease}.export-sticker.active{background:#ffd6e7;color:#5c5c5c}.export-package-card label{display:flex;align-items:center;gap:8px;color:#5c5c5c}.export-note,.export-signoff{margin:0;font-size:.85rem;color:#8c8c8c}.export-signoff{font-style:italic}.export-button{align-self:stretch;border:0;border-radius:999px;background:#ffd6e7;color:#5c5c5c;font-size:.98rem;font-weight:700;padding:12px 18px;cursor:pointer;transition:transform .15s ease,filter .2s ease}.export-button:hover{filter:brightness(.98)}.export-button:active{transform:scale(.98)}.export-button:disabled{cursor:not-allowed;opacity:.6}.nest-home{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#f8fafc;color:#111827}.nest-home__header{display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 20px 14px;border-bottom:1px solid #e5e7eb;background:#fff;position:sticky;top:0;z-index:10}.nest-home__title{margin:0;font-size:20px;font-weight:700;letter-spacing:.02em}.nest-home__header-actions{display:flex;gap:8px}.nest-home__nav-button{border:1px solid #d1d5db;background:#fff;color:#111827;font-size:14px;font-weight:600;border-radius:999px;padding:6px 14px;cursor:pointer}.nest-home__nav-button:hover{background:#f3f4f6}.nest-home__main{flex:1;padding:24px 20px;max-width:960px;width:100%;margin:0 auto}.nest-home__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.nest-agent-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s ease,box-shadow .15s ease}.nest-agent-card:hover{border-color:#6366f1;box-shadow:0 4px 14px #6366f11f}.nest-agent-card__icon{font-size:28px;line-height:1}.nest-agent-card__name{font-size:16px;font-weight:700;color:#111827}.nest-agent-card__model{font-size:12px;color:#4b5563;word-break:break-all}.nest-agent-card__provider{font-size:12px;color:#6b7280;border-top:1px solid #f3f4f6;padding-top:6px;width:100%}.nest-home__empty{max-width:420px;margin:64px auto;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}.nest-home__empty-title{margin:0;font-size:18px;font-weight:700}.nest-home__hint{margin:0;font-size:14px;color:#6b7280;line-height:1.6}.nest-home__hint--error{color:#b91c1c}.nest-home__primary-button{border:none;background:#6366f1;color:#fff;font-size:14px;font-weight:600;border-radius:999px;padding:10px 20px;cursor:pointer}.nest-home__primary-button:hover{background:#4f46e5}.nest-home__footer{padding:16px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid #e5e7eb;display:flex;justify-content:center;background:#fff}.group-list{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#f8fafc;color:#111827}.group-list__main{flex:1;padding:24px 20px;max-width:720px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:12px}.group-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s ease,box-shadow .15s ease}.group-card:hover{border-color:#6366f1;box-shadow:0 4px 14px #6366f11f}.group-card__avatars{display:flex;flex-shrink:0}.group-card__avatar{width:34px;height:34px;border-radius:50%;background:#eef2ff;border:2px solid #ffffff;display:flex;align-items:center;justify-content:center;font-size:17px}.group-card__avatar+.group-card__avatar{margin-left:-10px}.group-card__body{flex:1;min-width:0}.group-card__name{font-size:16px;font-weight:700}.group-card__members{font-size:12px;color:#6b7280;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-list__create{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px dashed #c7d2fe;border-radius:14px;background:#eef2ff;color:#4f46e5;font-size:15px;font-weight:600;cursor:pointer}.group-list__create:hover{background:#e0e7ff}.group-modal-overlay{position:fixed;inset:0;background:#11182773;display:flex;align-items:center;justify-content:center;padding:20px;z-index:60}.group-modal{width:100%;max-width:420px;max-height:80vh;overflow-y:auto;background:#fff;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:14px}.group-modal__title{margin:0;font-size:17px;font-weight:700}.group-modal__input{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:10px 12px;font-size:15px;font-family:inherit;box-sizing:border-box}.group-modal__section-title{font-size:13px;font-weight:600;color:#6b7280;margin:0}.group-modal__section-title--error{color:#dc2626}.group-modal__agent-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto}.group-modal__agent{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;font-size:14px}.group-modal__agent.is-selected{border-color:#6366f1;background:#eef2ff}.group-modal__actions{display:flex;gap:10px}.group-modal__button{flex:1;border:1px solid #d1d5db;border-radius:10px;padding:10px;font-size:14px;font-weight:600;background:#fff;cursor:pointer;font-family:inherit}.group-modal__button--primary{background:#6366f1;border-color:#6366f1;color:#fff}.group-modal__button--primary:disabled{background:#c7d2fe;border-color:#c7d2fe;cursor:not-allowed}.group-modal__button--danger{color:#dc2626;border-color:#fca5a5}.group-room{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#f8fafc;color:#111827}.group-room__header{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid #e5e7eb;background:#fff;position:sticky;top:0;z-index:10}.group-room__back{border:none;background:transparent;font-size:20px;color:#4b5563;cursor:pointer;padding:4px 8px}.group-room__title-wrap{flex:1;min-width:0;background:none;border:none;text-align:left;cursor:pointer;font-family:inherit}.group-room__title{font-size:16px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-room__subtitle{font-size:12px;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-room__messages{flex:1;overflow-y:auto;padding:16px 14px 8px;max-width:760px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:12px}.group-msg{display:flex;flex-direction:column;max-width:86%}.group-msg--user{align-self:flex-end;align-items:flex-end}.group-msg--agent{align-self:flex-start;align-items:flex-start}.group-msg__sender{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#6b7280;margin-bottom:3px;padding:0 4px}.group-msg__sender-icon{font-size:14px}.group-msg__bubble{padding:10px 13px;border-radius:16px;font-size:15px;line-height:1.55;word-break:break-word}.group-msg--user .group-msg__bubble{background:#6366f1;color:#fff;border-bottom-right-radius:5px}.group-msg--agent .group-msg__bubble{background:#fff;border:1px solid #e5e7eb;border-bottom-left-radius:5px}.group-msg__bubble .group-msg__markdown :first-child{margin-top:0}.group-msg__bubble .group-msg__markdown :last-child{margin-bottom:0}.group-msg__meta{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#9ca3af;padding:2px 4px 0}.group-msg__delete{border:none;background:none;color:#9ca3af;cursor:pointer;font-size:11px;padding:0;font-family:inherit}.group-msg__delete:hover,.group-msg__meta-error{color:#dc2626}.group-msg__typing{display:inline-flex;gap:3px;align-items:center;height:18px}.group-msg__typing span{width:5px;height:5px;border-radius:50%;background:#a5b4fc;animation:group-typing 1s infinite ease-in-out}.group-msg__typing span:nth-child(2){animation-delay:.15s}.group-msg__typing span:nth-child(3){animation-delay:.3s}@keyframes group-typing{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.group-room__composer-wrap{position:sticky;bottom:0;padding:10px 14px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,#f8fafc 70%,#f8fafc00)}.group-room__composer{position:relative;max-width:760px;margin:0 auto}.mention-picker{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 24px #1118271f;overflow:hidden;z-index:20}.mention-picker__item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:none;font-size:14px;text-align:left;cursor:pointer;font-family:inherit}.mention-picker__item:hover{background:#eef2ff}.mention-picker__hint{padding:10px 14px;font-size:13px;color:#9ca3af}.group-room__input-row{display:flex;align-items:flex-end;gap:8px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:8px 8px 8px 14px}.group-room__input{flex:1;border:none;outline:none;resize:none;font-size:15px;font-family:inherit;line-height:1.5;max-height:120px;background:transparent;color:#111827}.group-room__send{border:none;background:#6366f1;color:#fff;font-size:14px;font-weight:600;border-radius:12px;padding:9px 16px;cursor:pointer;font-family:inherit;flex-shrink:0}.group-room__send:disabled{background:#c7d2fe;cursor:not-allowed}.group-room__stop{border:1px solid #fca5a5;background:#fff;color:#dc2626;font-size:13px;font-weight:600;border-radius:12px;padding:8px 12px;cursor:pointer;font-family:inherit;flex-shrink:0}.group-room__hint-bar{max-width:760px;margin:6px auto 0;font-size:12px;color:#9ca3af;text-align:center}.member-panel__list{display:flex;flex-direction:column;gap:6px}.member-panel__row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;font-size:14px;cursor:pointer}.member-panel__row.is-member{border-color:#6366f1;background:#eef2ff}.member-panel__row-name{flex:1}.member-panel__row-tag{font-size:12px;color:#6366f1;font-weight:600}.group-empty{text-align:center;color:#6b7280;font-size:14px;padding:40px 0}
