:root{--yume-bg-app: #141414;--yume-bg-panel: #1a1a1a;--yume-bg-chat: #121212;--yume-bg-input: #222220;--yume-bg-elevated: #242422;--yume-bone: #f5f0e8;--yume-bone-muted: #b8b0a4;--yume-bone-meta: rgba(245, 240, 232, .5);--yume-champagne: #c9b896;--yume-champagne-hover: #d4c4a8;--yume-champagne-ring: rgba(201, 184, 150, .35);--yume-bubble-out: #2a2826;--yume-bubble-out-border: rgba(201, 184, 150, .25);--yume-bubble-in: #222220;--yume-online: #c9b896;--yume-check-read: #d4c4a8;--yume-error-bg: #2a2220;--yume-error-border: rgba(201, 184, 150, .2);--yume-error-text: #e8c4b8;--yume-ease: cubic-bezier(.22, 1, .36, 1);--bg-app: var(--yume-bg-app);--bg-sidebar: var(--yume-bg-panel);--bg-chat: var(--yume-bg-chat);--bg-surface: var(--yume-bg-panel);--bg-input: var(--yume-bg-input);--text-primary: var(--yume-bone);--text-secondary: var(--yume-bone-muted);--text-muted: var(--yume-bone-muted);--bubble-user: var(--yume-bubble-out);--bubble-user-text: var(--yume-bone);--bubble-assistant: var(--yume-bubble-in);--online: var(--yume-online);--accent: var(--yume-champagne);--accent-hover: var(--yume-champagne-hover);--check-read: var(--yume-check-read);--error-bg: var(--yume-error-bg);--error-border: var(--yume-error-border);--error-text: var(--yume-error-text);--border-subtle: rgba(245, 240, 232, .08);--shadow-bubble: 0 1px 1px rgba(0, 0, 0, .2);--radius-bubble: 10px;--radius-pill: 10px;--safe-bottom: env(safe-area-inset-bottom, 0px);--sidebar-width: 340px;--layout-split-min: 640px;--header-height: 60px;--avatar-size: 40px;--avatar-list: 48px;--transition-ui: .2s var(--yume-ease);--scrollbar-track: var(--yume-bg-panel);--scrollbar-thumb: rgba(245, 240, 232, .16);--scrollbar-thumb-hover: var(--yume-champagne-ring)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html,body,#root{height:100%;min-height:100dvh;margin:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased}.interactive{cursor:pointer;transition:background var(--transition-ui),color var(--transition-ui),border-color var(--transition-ui),box-shadow var(--transition-ui),opacity var(--transition-ui)}.interactive:focus-visible{outline:2px solid var(--yume-champagne);outline-offset:2px}.avatar-yume{border-radius:50%;background:var(--yume-bg-elevated);color:var(--yume-champagne);border:1px solid var(--yume-champagne-ring);display:flex;align-items:center;justify-content:center;font-weight:500;flex-shrink:0;overflow:hidden;transition:box-shadow var(--transition-ui)}.avatar-yume img{width:100%;height:100%;object-fit:cover;display:block}.avatar-yume--interactive{padding:0;border:1px solid var(--yume-champagne-ring);cursor:pointer;font:inherit;transition:box-shadow var(--transition-ui),transform var(--transition-ui)}.avatar-yume--interactive:hover{box-shadow:0 0 0 3px var(--yume-champagne-ring)}.avatar-yume--interactive:active{transform:scale(.96)}.avatar-yume--sm{width:28px;height:28px;font-size:12px}.avatar-yume--md{width:40px;height:40px;font-size:16px}.avatar-yume--lg{width:72px;height:72px;font-size:28px}.chat-app{display:flex;height:100%;min-height:100dvh;width:100%;background:var(--bg-app)}.chat-app button:focus-visible,.chat-app textarea:focus-visible{outline:2px solid var(--yume-champagne);outline-offset:2px}.chat-app__frame{display:flex;flex-direction:column;width:100%;min-width:0;min-height:100dvh;background:var(--bg-app)}@media(min-width:640px){.chat-app__frame{flex-direction:row}}.chat-sidebar{display:none;flex-direction:column;width:var(--sidebar-width);flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);min-height:0}@media(min-width:640px){.chat-sidebar{display:flex;width:clamp(260px,28vw,var(--sidebar-width))}}.chat-sidebar__toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;min-height:56px}.chat-sidebar__title{margin:0;font-size:20px;font-weight:500;color:var(--text-primary);letter-spacing:-.02em}.chat-sidebar__search{margin:0;padding:9px 12px 9px 36px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:14px;width:100%;outline:none;transition:border-color var(--transition-ui)}.chat-sidebar__search:focus{border-color:var(--yume-champagne-ring)}.chat-sidebar__search::placeholder{color:var(--text-muted)}.chat-sidebar__search-wrap{position:relative;padding:0 12px 10px}.chat-sidebar__search-icon{position:absolute;left:24px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.chat-sidebar__list{flex:1;overflow-y:auto;min-height:0}.chat-sidebar__item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:none;border-left:3px solid transparent;background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:background var(--transition-ui),border-color var(--transition-ui)}.chat-sidebar__item:hover{background:#f5f0e80a}.chat-sidebar__item--active{background:#c9b89614;border-left-color:var(--yume-champagne)}.chat-sidebar__item-avatar{width:var(--avatar-list);height:var(--avatar-list);font-size:20px}.chat-sidebar__item-body{flex:1;min-width:0}.chat-sidebar__item-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.chat-sidebar__item-name{margin:0;font-size:16px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-sidebar__item-time{font-size:12px;color:var(--yume-champagne);flex-shrink:0}.chat-sidebar__item-preview{margin:2px 0 0;font-size:14px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity .2s var(--yume-ease),color .2s var(--yume-ease)}.chat-sidebar__dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.chat-sidebar__dot--online{background:var(--yume-champagne);box-shadow:0 0 0 2px var(--yume-champagne-ring)}.chat-sidebar__footer{padding:10px 16px 14px;font-size:11px;color:var(--text-muted);line-height:1.45;border-top:1px solid var(--border-subtle)}.chat-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;height:100%;background:var(--bg-chat)}.chat-main__inner{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}.chat-header{display:flex;align-items:center;padding:10px 16px;min-height:var(--header-height);background:var(--yume-bg-panel);border-bottom:1px solid var(--border-subtle);flex-shrink:0;z-index:10}.chat-header__left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.chat-header__menu{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;margin:0;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-ui),color var(--transition-ui)}.chat-header__menu:hover{background:var(--yume-bg-elevated);color:var(--text-primary)}@media(min-width:640px){.chat-header__menu{display:none}}.chat-header__avatar{width:var(--avatar-size);height:var(--avatar-size);font-size:17px;box-shadow:0 0 0 2px var(--yume-champagne-ring)}.chat-header__info{min-width:0;padding-left:4px;min-height:40px;display:flex;flex-direction:column;justify-content:center}.chat-header__name{margin:0;font-size:16px;font-weight:500;line-height:1.25;color:var(--text-primary)}.chat-header__actions{display:flex;align-items:center;flex-shrink:0;gap:4px}.chat-header__life-controls{display:flex;align-items:center;gap:2px}.chat-header__life-btn{background:none;border:none;min-width:40px;min-height:40px;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-ui),color var(--transition-ui)}.chat-header__life-btn:hover:not(:disabled){background:#f5f0e80f;color:var(--text-primary)}.chat-header__life-btn--play:hover:not(:disabled){color:var(--yume-champagne)}.chat-header__life-btn--stop:hover:not(:disabled){color:#e8a598}.chat-header__life-btn:disabled{opacity:.45;cursor:not-allowed}.ingatan-conflict{margin:0 16px 12px;padding:12px 14px;border-radius:12px;background:#f5f0e80f;border:1px solid rgba(245,240,232,.1)}.ingatan-conflict__text{margin:0 0 10px;font-size:13px;line-height:1.45;color:var(--text-secondary);white-space:pre-wrap}.ingatan-conflict__actions{display:flex;flex-wrap:wrap;gap:8px}.ingatan-conflict__btn{border:none;border-radius:999px;padding:8px 14px;font-size:13px;cursor:pointer;transition:opacity var(--transition-ui)}.ingatan-conflict__btn:disabled{opacity:.45;cursor:not-allowed}.ingatan-conflict__btn--merge{background:var(--yume-champagne);color:#1a1510}.ingatan-conflict__btn--override{background:#e8a59840;color:var(--text-primary)}.ingatan-conflict__btn--cancel{background:#f5f0e814;color:var(--text-secondary)}.chat-header__reset{background:none;border:none;min-width:44px;min-height:44px;padding:10px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-ui),color var(--transition-ui)}.chat-header__reset:hover:not(:disabled){background:#f5f0e80f;color:var(--text-primary)}.chat-header__reset:disabled{opacity:.45;cursor:not-allowed}.chat-header__reset-spinner{animation:spin .8s linear infinite}.chat-header__status{margin:1px 0 0;font-size:13px;color:var(--text-secondary);transition:opacity .2s var(--yume-ease),color .2s var(--yume-ease)}.chat-header__status--enter{animation:status-fade-in .22s var(--yume-ease) forwards}@keyframes status-fade-in{0%{opacity:0}to{opacity:1}}.chat-header__status--online{color:var(--yume-champagne)}.chat-header__status--typing{color:var(--yume-bone-muted)}@media(prefers-reduced-motion:no-preference){.chat-header__status--typing{animation:status-fade-in .22s var(--yume-ease) forwards,status-typing-pulse 2s ease-in-out infinite}}@keyframes status-typing-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.chat-header__status--typing{animation:status-fade-in .22s var(--yume-ease) forwards}.chat-header__reset-spinner{animation:none}}@media(prefers-reduced-motion:no-preference){.chat-messages{scroll-behavior:smooth}}.chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:14px 16px 18px;display:flex;flex-direction:column;gap:3px;-webkit-overflow-scrolling:touch;position:relative;background-color:var(--yume-bg-chat);background-image:radial-gradient(ellipse at 20% 0%,rgba(201,184,150,.04) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(201,184,150,.03) 0%,transparent 45%),radial-gradient(circle at 1px 1px,rgba(245,240,232,.03) 1px,transparent 0);background-size:100% 100%,100% 100%,20px 20px}.chat-messages>*{position:relative;z-index:1}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 20px;gap:18px;animation:fade-in .4s var(--yume-ease)}.chat-empty__icon{width:72px;height:72px;font-size:32px}.chat-empty__title{margin:0 0 6px;font-size:18px;font-weight:500;color:var(--text-primary)}.chat-empty__hint{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.5;max-width:260px}.chat-messages__row{display:flex;width:100%;margin-bottom:2px}.chat-messages__row--enter{animation:message-enter .22s var(--yume-ease) forwards}@keyframes message-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.chat-messages__row--user{justify-content:flex-end}.chat-messages__row--assistant{justify-content:flex-start}.chat-messages__row--error{justify-content:center;padding:12px 0}.day-separator{display:flex;align-items:center;justify-content:center;padding:12px 0;width:100%;animation:fade-in .3s var(--yume-ease)}.day-separator__pill{padding:5px 14px;border-radius:var(--radius-pill);background:var(--yume-bg-elevated);border:1px solid var(--border-subtle);font-size:12px;font-weight:500;color:var(--yume-bone-meta)}.assistant-row__content{display:flex;flex-direction:column;max-width:min(85%,560px);min-width:0}.user-bubble{max-width:min(85%,560px);background:var(--bubble-user);color:var(--bubble-user-text);border:1px solid var(--yume-bubble-out-border);padding:7px 10px 6px;border-radius:var(--radius-bubble);border-top-right-radius:2px;font-size:14.2px;line-height:1.4;word-break:break-word;box-shadow:var(--shadow-bubble)}.user-bubble:after{content:"";display:table;clear:both}.user-bubble__text{display:inline;white-space:pre-wrap}.user-bubble__meta{display:inline-flex;align-items:center;gap:3px;margin-left:6px;vertical-align:bottom;float:right;position:relative;top:4px;font-size:11px;color:var(--yume-bone-meta);white-space:nowrap}.user-bubble__checks{display:inline-flex;align-items:center;line-height:1}.user-bubble__check-icon{color:var(--yume-bone-meta);flex-shrink:0}.user-bubble__check-icon--read,.user-bubble__checks--read .user-bubble__check-icon{color:var(--check-read)}.assistant-bubble{background:var(--bubble-assistant);color:var(--text-primary);padding:7px 10px 6px;border-radius:var(--radius-bubble);border-top-left-radius:2px;font-size:14.2px;line-height:1.45;word-break:break-word;box-shadow:var(--shadow-bubble);border:1px solid var(--border-subtle)}.assistant-bubble__text{display:inline;white-space:pre-wrap}.assistant-bubble--typing{min-width:72px;padding:10px 14px}.assistant-bubble__meta{display:inline-block;margin-left:6px;font-size:11px;color:var(--yume-bone-meta);vertical-align:bottom;float:right;position:relative;top:4px}.typing-dots__anim span{width:7px;height:7px;border-radius:50%;background:var(--yume-champagne);animation:typing-bounce 1.2s infinite ease-in-out}.typing-dots{display:inline-flex;align-items:center;gap:6px}.typing-dots__label{font-size:14px;color:var(--text-secondary)}.typing-dots__anim{display:inline-flex;gap:3px}.typing-dots__anim span:nth-child(2){animation-delay:.15s}.typing-dots__anim span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{opacity:.35}30%{opacity:1}}.md-content{font-size:14.2px;line-height:1.45}.md-content p{margin:0 0 .35em}.md-content p:last-child{margin-bottom:0}.assistant-bubble:has(.md-content pre,.md-content ul,.md-content ol) .assistant-bubble__meta{float:none;display:block;text-align:right;margin-top:4px}.md-content a{color:var(--yume-champagne-hover);text-decoration:underline;text-underline-offset:2px}.md-content code{font-family:ui-monospace,monospace;font-size:.9em;background:#00000059;padding:1px 4px;border-radius:4px}.md-content pre{display:block;margin:6px 0;padding:8px;border-radius:6px;background:#0006;overflow-x:auto;white-space:pre-wrap}.md-content pre code{background:none;padding:0}.md-content ul,.md-content ol{display:block;margin:4px 0;padding-left:1.2em}.error-banner{max-width:min(420px,92%);background:var(--error-bg);border:1px solid var(--error-border);border-radius:12px;padding:14px 16px;text-align:left;animation:fade-in .28s var(--yume-ease)}.error-banner__head{display:flex;align-items:flex-start;gap:10px}.error-banner__icon{color:var(--yume-champagne);flex-shrink:0;margin-top:1px}.error-banner__title{margin:0 0 6px;font-size:15px;font-weight:500;color:var(--text-primary)}.error-banner__text{margin:0;font-size:13px;line-height:1.5;color:var(--error-text)}.error-banner__steps{margin:10px 0 0;padding-left:18px;font-size:13px;line-height:1.55;color:var(--text-secondary)}.error-banner__steps code{font-size:12px;background:#00000059;padding:2px 6px;border-radius:4px;color:var(--yume-champagne)}.error-banner__actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.error-banner__btn{padding:8px 14px;border-radius:var(--radius-pill);border:1px solid var(--yume-champagne-ring);background:#c9b8961f;color:var(--text-primary);font-family:inherit;font-size:13px;cursor:pointer;transition:background var(--transition-ui)}.error-banner__btn:hover{background:#c9b89638}.error-banner__btn:focus-visible{outline:2px solid var(--yume-champagne);outline-offset:2px}.chat-input-wrap{padding:10px 12px calc(10px + var(--safe-bottom));background:var(--yume-bg-panel);border-top:1px solid var(--border-subtle);flex-shrink:0;transition:background var(--transition-ui)}.chat-input-wrap--has-text{background:color-mix(in srgb,var(--yume-bg-panel) 92%,var(--yume-champagne) 8%)}.chat-input-bar{display:flex;align-items:flex-end;gap:6px}.chat-input-bar__field{flex:1;min-width:0;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;padding:8px 12px;transition:border-color var(--transition-ui),box-shadow var(--transition-ui),background var(--transition-ui)}.chat-input-bar__field:focus-within{border-color:var(--border-subtle);box-shadow:none}.chat-app .chat-input-bar__field textarea:focus-visible{outline:none}.chat-input-wrap--has-text .chat-input-bar__field{border-color:var(--yume-champagne-ring);box-shadow:0 0 0 1px var(--yume-champagne-ring)}.chat-input-bar__field textarea{width:100%;max-height:120px;background:transparent;border:none;outline:none;resize:none;color:var(--text-primary);font-size:15px;font-family:inherit;line-height:1.4;padding:0;transition:min-height var(--transition-ui)}.chat-input-bar__field textarea::placeholder{color:var(--text-muted)}.chat-input-bar__send{border:none;min-width:44px;min-height:44px;padding:10px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:flex-end;margin-bottom:2px;cursor:pointer;background:var(--yume-champagne);color:#1a1a1a;transition:background var(--transition-ui),opacity var(--transition-ui)}.chat-input-bar__send--inactive{opacity:.45;cursor:not-allowed}.chat-input-bar__send--visible:not(:disabled):hover{background:var(--yume-champagne-hover)}.chat-input-bar__send--loading{opacity:1;cursor:wait}.chat-input-bar__spinner{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.chat-input-bar__spinner{animation:none}}.chat-loading{display:flex;flex-direction:column;height:100%;min-height:100dvh;width:100%;background:var(--bg-app)}.chat-loading__sidebar{display:none}@media(min-width:640px){.chat-loading{flex-direction:row}.chat-loading__sidebar{display:flex;flex-direction:column;width:clamp(260px,28vw,var(--sidebar-width));padding:16px 12px;gap:12px;border-right:1px solid var(--border-subtle)}}.chat-loading__main{flex:1;display:flex;flex-direction:column;min-width:0}.skeleton{background:linear-gradient(90deg,var(--yume-bg-elevated) 0%,rgba(245,240,232,.06) 50%,var(--yume-bg-elevated) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:8px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton--title{height:22px;width:80px}.skeleton--search{height:38px;width:100%;border-radius:10px}.skeleton--row{height:56px;width:100%;border-radius:10px}.skeleton--header{height:var(--header-height);width:100%;border-radius:0;flex-shrink:0}.skeleton--bubble{height:44px;max-width:240px;border-radius:10px}.skeleton--bubble-right{margin-left:auto;max-width:200px}.chat-loading__messages{flex:1;padding:20px 16px;display:flex;flex-direction:column;gap:12px;background:var(--yume-bg-chat)}.chat-loading__composer{height:56px;margin:10px 12px;border-radius:10px;flex-shrink:0}.chat-sidebar__badge,.chat-header__badge{margin-left:8px;font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--yume-champagne);background:#c9b8961f;border:1px solid rgba(201,184,150,.25);border-radius:4px;padding:2px 6px;vertical-align:middle}.debug-quick-panel{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);background:var(--yume-bg-panel)}.debug-quick-panel__btn{font-size:.75rem;line-height:1.3;padding:6px 10px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--yume-bg-elevated);color:var(--yume-bone-muted);cursor:pointer;transition:border-color var(--transition-ui),color var(--transition-ui)}.debug-quick-panel__btn:hover:not(:disabled){border-color:var(--yume-champagne-ring);color:var(--yume-bone)}.debug-quick-panel__btn:disabled{opacity:.5;cursor:not-allowed}.chat-blocked{position:sticky;bottom:0;z-index:5;padding:12px 14px calc(12px + var(--safe-bottom));background:linear-gradient(180deg,transparent 0%,rgba(18,18,18,.92) 24%,var(--yume-bg-chat) 100%)}.chat-blocked__inner{max-width:520px;margin:0 auto;padding:16px 18px;border-radius:12px;border:1px solid rgba(201,184,150,.28);background:var(--yume-error-bg);text-align:center}.chat-blocked__title{margin:0 0 8px;font-size:1rem;font-weight:600;color:var(--yume-bone)}.chat-blocked__reason{margin:0 0 10px;font-size:.95rem;color:var(--yume-error-text);line-height:1.45}.chat-blocked__hint{margin:0 0 14px;font-size:.8rem;color:var(--yume-bone-muted)}.chat-blocked__action{padding:10px 18px;border-radius:10px;border:1px solid var(--yume-champagne-ring);background:var(--yume-champagne);color:#1a1a1a;font-weight:600;cursor:pointer}.chat-blocked__action:disabled{opacity:.6;cursor:wait}.visual-block-list{display:flex;flex-direction:column;gap:10px;margin-top:8px;width:100%;max-width:min(100%,520px)}.visual-card{border-radius:10px;border:1px solid var(--border-subtle);background:var(--yume-bg-elevated);padding:12px 14px;overflow:auto}.visual-card__title{margin:0 0 10px;font-size:.85rem;font-weight:600;color:var(--yume-bone)}.visual-card__muted,.visual-card__error{margin:0;font-size:.85rem;color:var(--yume-bone-muted)}.visual-table-wrap{overflow-x:auto}.visual-table{width:100%;border-collapse:collapse;font-size:.8rem}.visual-table th,.visual-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-subtle)}.visual-table th{color:var(--yume-champagne);font-weight:600}.visual-bar-chart__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.visual-bar-chart__row{display:grid;grid-template-columns:minmax(64px,28%) 1fr auto;gap:8px;align-items:center}.visual-bar-chart__label{font-size:.75rem;color:var(--yume-bone-muted);overflow:hidden;text-overflow:ellipsis}.visual-bar-chart__track{height:8px;border-radius:4px;background:#f5f0e814;overflow:hidden}.visual-bar-chart__fill{height:100%;border-radius:4px;background:var(--yume-champagne);min-width:2px}.visual-bar-chart__value{font-size:.75rem;color:var(--yume-bone);font-variant-numeric:tabular-nums}.visual-card__mermaid{display:flex;justify-content:center}.visual-card__mermaid svg{max-width:100%;height:auto}.visual-card__html-frame{width:100%;min-height:120px;max-height:280px;border:none;border-radius:6px;background:#1a1a1a}.thinking-bubble{border-radius:var(--radius-bubble);border:1px solid var(--border-subtle);background:var(--yume-bg-elevated);overflow:hidden;max-width:min(100%,420px)}.thinking-bubble--active{position:relative}.thinking-bubble--active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 0%,rgba(201,184,150,.08) 40%,rgba(201,184,150,.22) 50%,rgba(201,184,150,.08) 60%,transparent 100%);background-size:200% 100%;animation:thinking-shimmer 2.2s var(--yume-ease) infinite;pointer-events:none}@keyframes thinking-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.thinking-bubble__toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--yume-bone-muted);font:inherit;font-size:.88rem;text-align:left;cursor:pointer}.thinking-bubble__toggle--static{cursor:default}.thinking-bubble__label{font-style:italic;color:var(--yume-champagne)}.thinking-bubble__meta{font-size:.72rem;color:var(--yume-bone-meta);margin-left:auto}.thinking-bubble__chevron{flex-shrink:0;color:var(--yume-champagne);transition:transform .28s var(--yume-ease)}.thinking-bubble__chevron--open{transform:rotate(180deg)}.thinking-bubble__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s var(--yume-ease)}.thinking-bubble__panel--open{grid-template-rows:1fr}.thinking-bubble__panel-inner{overflow:hidden;min-height:0;padding:0 14px;border-top:1px solid transparent;font-size:.8rem;color:var(--yume-bone-muted);line-height:1.45}.thinking-bubble__panel--open .thinking-bubble__panel-inner{padding:10px 14px 12px;border-top-color:var(--border-subtle);max-height:280px;overflow-y:auto}@media(prefers-reduced-motion:reduce){.thinking-bubble--active:before{animation:none;background:#c9b8961a}.thinking-bubble__panel,.thinking-bubble__chevron{transition:none}}.chat-sidebar__badge--life{background:#78b48c33;color:#9fd4b0}.life-bubble{max-width:min(100%,420px);padding:10px 14px;border-radius:var(--radius-bubble);border:1px solid var(--border-subtle);background:var(--yume-bg-elevated)}.life-bubble--inner{max-width:min(100%,380px);padding:4px 2px 4px 12px;border:none;background:transparent;border-left:2px solid rgba(201,184,150,.25)}.life-bubble__text--inner{font-style:italic;font-size:.88rem;line-height:1.5;color:var(--yume-bone-meta);opacity:.92}.life-bubble--action{border-left:3px solid rgba(120,180,140,.55)}.life-bubble--pulse{opacity:.92;background:#ffffff08;border-style:dashed}.life-bubble--pulse .life-bubble__label{color:var(--yume-bone-meta);opacity:.85}.life-bubble__label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--yume-bone-meta);margin-bottom:6px}.life-bubble__text{margin:0;font-size:.92rem;line-height:1.45;color:var(--yume-bone)}.chat-messages__row--system{justify-content:center}.system-bubble{max-width:min(100%,520px);padding:10px 14px;border-radius:10px;border:1px dashed rgba(201,184,150,.35);background:#12121299}.system-bubble__text{margin:0;font-family:ui-monospace,monospace;font-size:.78rem;line-height:1.5;color:var(--yume-champagne);word-break:break-word}.bubble-actions{position:relative;max-width:min(85%,560px)}.bubble-actions__btn{position:absolute;bottom:2px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:var(--yume-bg-elevated);color:var(--text-secondary);cursor:pointer;opacity:0;transform:scale(.85);pointer-events:none;transition:opacity .18s var(--yume-ease),transform .18s var(--yume-ease),background var(--transition-ui),color var(--transition-ui)}.bubble-actions--user .bubble-actions__btn{right:calc(100% + 4px)}.bubble-actions--assistant .bubble-actions__btn{left:calc(100% + 4px)}@media(hover:hover)and (pointer:fine){.bubble-actions:hover .bubble-actions__btn,.bubble-actions:focus-within .bubble-actions__btn{opacity:1;transform:scale(1);pointer-events:auto}.bubble-actions__btn:hover{background:var(--yume-champagne-ring);color:var(--text-primary)}}@keyframes sheet-enter{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.bubble-actions__sheet{position:absolute;bottom:calc(100% + 6px);right:0;z-index:5;display:flex;align-items:center;gap:4px;padding:4px;border-radius:var(--radius-bubble);background:var(--yume-bg-elevated);border:1px solid var(--border-subtle);box-shadow:var(--shadow-bubble)}.bubble-actions__sheet--enter{animation:sheet-enter .18s var(--yume-ease) forwards}.bubble-actions--user .bubble-actions__sheet{right:auto;left:0}.bubble-actions__sheet-btn{border:none;background:transparent;color:var(--text-primary);font-size:.875rem;padding:8px 12px;border-radius:8px;cursor:pointer}.bubble-actions__sheet-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}@keyframes reply-bar-enter{0%{opacity:0;transform:translateY(6px);max-height:0}to{opacity:1;transform:translateY(0);max-height:120px}}@keyframes reply-bar-exit{0%{opacity:1;transform:translateY(0);max-height:120px}to{opacity:0;transform:translateY(4px);max-height:0}}.reply-quote-bar{display:flex;align-items:stretch;gap:8px;margin-bottom:8px;padding:8px 10px;border-radius:var(--radius-bubble);background:var(--yume-bg-elevated);border-left:3px solid var(--yume-champagne);overflow:hidden;animation:reply-bar-enter .2s var(--yume-ease) forwards}.reply-quote-bar--exit{animation:reply-bar-exit .16s var(--yume-ease) forwards;margin-bottom:0;padding-top:0;padding-bottom:0}.reply-quote-bar__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;border:none;background:transparent;text-align:left;cursor:pointer;padding:0;color:inherit}.reply-quote-bar__label{font-size:.72rem;font-weight:600;color:var(--yume-champagne)}.reply-quote-bar__text{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-quote-bar__close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:32px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:50%}.reply-quote-preview{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;padding-left:8px;border-left:2px solid var(--yume-champagne-ring);animation:fade-in .18s var(--yume-ease)}.reply-quote-preview__label{font-size:.68rem;font-weight:600;color:var(--yume-champagne)}.reply-quote-preview__text{font-size:.75rem;color:var(--text-muted);opacity:.9}.chat-contact-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex}.chat-contact-sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;background:#0000008c;cursor:pointer;animation:contact-backdrop-enter .22s var(--yume-ease) forwards}.chat-contact-sheet__panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(88vw,320px);max-width:320px;height:100%;background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);box-shadow:4px 0 24px #00000059;animation:contact-panel-enter .24s var(--yume-ease) forwards}.chat-contact-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;min-height:56px}.chat-contact-sheet__title{margin:0;font-size:20px;font-weight:500;color:var(--text-primary);letter-spacing:-.02em}.chat-contact-sheet__close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.chat-contact-sheet__list{flex:1;overflow-y:auto;padding:0 8px 16px}@keyframes contact-backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes contact-panel-enter{0%{transform:translate(-100%)}to{transform:translate(0)}}.avatar-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}.avatar-lightbox__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;background:#000000d1;cursor:pointer}.avatar-lightbox__close{position:absolute;top:max(12px,env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));z-index:2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:50%;background:#ffffff1a;color:var(--text-primary);cursor:pointer}.avatar-lightbox__image{position:relative;z-index:1;max-width:min(92vw,560px);max-height:min(92dvh,720px);width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 8px 40px #00000073}.avatar-lightbox--open .avatar-lightbox__backdrop{animation:lightbox-backdrop-enter .22s var(--yume-ease) forwards}.avatar-lightbox--open .avatar-lightbox__image{animation:lightbox-image-enter .24s var(--yume-ease) forwards}.avatar-lightbox--closing .avatar-lightbox__backdrop{animation:lightbox-backdrop-exit .2s var(--yume-ease) forwards}.avatar-lightbox--closing .avatar-lightbox__image{animation:lightbox-image-exit .2s var(--yume-ease) forwards}@keyframes lightbox-backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes lightbox-backdrop-exit{0%{opacity:1}to{opacity:0}}@keyframes lightbox-image-enter{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes lightbox-image-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.94)}}@media(prefers-reduced-motion:reduce){.avatar-lightbox--open .avatar-lightbox__image,.avatar-lightbox--closing .avatar-lightbox__image{animation-name:lightbox-backdrop-enter}.avatar-lightbox--closing .avatar-lightbox__image{animation-name:lightbox-backdrop-exit}}.friend-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#0a0a0aeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.friend-gate__panel{width:min(100%,380px);padding:28px 24px;border-radius:16px;background:var(--yume-bg-panel);border:1px solid var(--border-subtle);box-shadow:0 12px 40px #00000073;animation:fade-in .22s var(--yume-ease)}.friend-gate__icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:0 auto 14px;border-radius:50%;background:var(--yume-bg-elevated);color:var(--yume-champagne)}.friend-gate__title{margin:0 0 8px;text-align:center;font-size:1.25rem;font-weight:500;color:var(--text-primary)}.friend-gate__hint{margin:0 0 18px;text-align:center;font-size:.875rem;line-height:1.5;color:var(--text-secondary)}.friend-gate__form{display:flex;flex-direction:column;gap:10px}.friend-gate__input{width:100%;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-bubble);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:1rem}.friend-gate__error{margin:0;font-size:.8125rem;color:var(--yume-error-text)}.friend-gate__submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:none;border-radius:var(--radius-bubble);background:var(--yume-champagne);color:#1a1a1a;font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer}.friend-gate__submit:disabled{opacity:.55;cursor:not-allowed}.life-soon-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:24px;background:#000000b8}.life-soon-modal__panel{width:min(100%,340px);padding:24px;border-radius:14px;background:var(--yume-bg-panel);border:1px solid var(--border-subtle);text-align:center;animation:sheet-enter .2s var(--yume-ease)}.life-soon-modal__title{margin:0 0 8px;font-size:1.125rem;color:var(--text-primary)}.life-soon-modal__text{margin:0;font-size:.875rem;line-height:1.5;color:var(--text-secondary)}
