:root{--bg:#f6f3ff;--card:#fff;--text:#29243a;--muted:#8d879f;--accent:#7b4dff;--accent2:#9a74ff;--border:#e8e1f1;--shadow:0 12px 35px rgba(57,42,92,.08)}*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}button,textarea{font:inherit}.app-shell{height:100%;max-width:820px;margin:0 auto;background:linear-gradient(180deg,#fbfaff 0,#f5f1ff 100%);display:grid;grid-template-rows:auto auto 1fr auto;border-left:1px solid var(--border);border-right:1px solid var(--border)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:rgba(255,255,255,.92);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:9px;font-weight:800}.brand small{font-size:10px;color:var(--muted)}.brand-dot{width:11px;height:11px;border-radius:50%;background:var(--accent)}.icon-button{border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 12px;color:var(--muted);cursor:pointer}.character-strip-wrap{background:#fff;border-bottom:1px solid var(--border);overflow:hidden}.character-strip{display:flex;gap:16px;overflow-x:auto;padding:14px 16px;scrollbar-width:none}.character-strip::-webkit-scrollbar{display:none}.character-pill{width:76px;flex:0 0 76px;border:0;background:transparent;padding:0;cursor:pointer;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:7px}.character-pill span{font-size:12px;white-space:nowrap;max-width:76px;overflow:hidden;text-overflow:ellipsis}.avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#ff4f9d);color:#fff;font-weight:800;border:3px solid #fff;box-shadow:0 0 0 2px #ddd;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.character-pill.active .avatar,.character-pill.featured .avatar{box-shadow:0 0 0 3px #ff7a00,0 0 0 6px #ed00a6}.active-header{display:flex;align-items:center;gap:12px;padding:10px 18px;background:rgba(255,255,255,.84);border-bottom:1px solid var(--border)}.active-avatar .avatar.large{width:42px;height:42px}.active-header strong{display:block}.active-header span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.messages{overflow-y:auto;padding:22px 18px 28px;scroll-behavior:smooth}.empty-state{text-align:center;color:var(--muted);padding:60px 20px}.message-wrap{display:flex;flex-direction:column;margin-bottom:18px}.message-wrap.user{align-items:flex-end}.message-wrap.assistant{align-items:flex-start}.message-bubble{max-width:min(82%,620px);padding:14px 16px;border-radius:22px;box-shadow:var(--shadow);font-size:16px;line-height:1.5}.user .message-bubble{background:linear-gradient(135deg,var(--accent),var(--accent2));color:white;border-bottom-right-radius:6px}.assistant .message-bubble{background:var(--card);border:1px solid var(--border);border-bottom-left-radius:6px}.message-bubble p{margin:0}.message-bubble p+p{margin-top:10px}.message-meta{display:flex;align-items:center;gap:8px;margin-top:5px;color:var(--muted);font-size:11px}.message-meta button{border:1px solid rgba(123,77,255,.28);background:rgba(123,77,255,.06);color:var(--accent);border-radius:999px;padding:4px 8px;cursor:pointer}.debug-strip{max-width:min(92%,680px);padding:6px 8px;margin-bottom:6px;border:1px dashed rgba(123,77,255,.4);border-radius:9px;background:rgba(123,77,255,.05);color:#6d6282;font-size:10px;overflow-wrap:anywhere}.composer{display:flex;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--border)}.composer textarea{flex:1;resize:none;border:1px solid var(--border);border-radius:22px;padding:12px 15px;outline:none;min-height:46px;max-height:140px}.composer textarea:focus{border-color:var(--accent)}.composer button,.modal button{border:0;border-radius:22px;background:var(--accent);color:#fff;padding:0 18px;font-weight:700;cursor:pointer}.modal{position:fixed;inset:0;background:rgba(28,22,40,.55);display:grid;place-items:center;padding:20px;z-index:10}.modal[hidden]{display:none}.modal-card{background:#fff;border-radius:24px;padding:28px;max-width:420px;box-shadow:0 30px 80px rgba(0,0,0,.22)}.modal-card button{min-height:44px}.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#282235;color:#fff;padding:10px 14px;border-radius:12px;z-index:20}.toast[hidden]{display:none}@media(max-width:640px){.app-shell{border:0}.message-bubble{max-width:90%;font-size:15px}.character-strip{gap:12px}.character-pill{width:68px;flex-basis:68px}.avatar{width:52px;height:52px}}

.top-model{display:flex;align-items:center;gap:10px;min-width:0}.top-model strong{display:block;font-size:18px}.top-model span{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.top-avatar .avatar.large{width:44px;height:44px}.top-actions{display:flex;align-items:center;gap:8px}.dots{font-size:22px;line-height:1;padding:7px 12px}.model-menu{position:absolute;top:68px;right:max(18px,calc((100vw - 820px)/2 + 18px));z-index:9;width:min(330px,calc(100vw - 28px));background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 18px 50px rgba(42,32,72,.18);padding:8px}.model-menu[hidden]{display:none}.model-menu-list{display:flex;flex-direction:column;gap:4px;max-height:380px;overflow:auto}.model-menu-item{width:100%;border:0;background:transparent;border-radius:14px;padding:8px;display:flex;align-items:center;gap:10px;text-align:left;color:var(--text);cursor:pointer}.model-menu-item:hover,.model-menu-item.active{background:#f5f1ff}.model-menu-item .avatar{width:42px;height:42px}.model-menu-item strong{display:block}.model-menu-item span{display:block;color:var(--muted);font-size:12px}.auth-card label{display:block;font-weight:700;margin:12px 0 6px}.auth-card input{width:100%;border:1px solid var(--border);border-radius:14px;padding:12px;outline:none}.auth-card input:focus{border-color:var(--accent)}.auth-card button{width:100%;min-height:44px;margin-top:12px}.auth-card .link-button{background:transparent;color:var(--accent);padding:6px}.composer.disabled{opacity:.55}.character-strip-wrap,.active-header{display:none!important}@media(max-width:640px){.topbar{padding:10px 12px}.top-model span{max-width:160px}.top-actions{gap:5px}.icon-button{padding:7px 10px}.top-actions #logoutButton{display:none}.model-menu{top:58px;right:10px}.top-model strong{font-size:17px}}

.model-menu-section{padding:6px 4px 4px}.model-menu-heading{padding:6px 8px 10px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.model-menu-divider{height:1px;background:var(--border);margin:8px 4px}.model-menu-action{width:100%;border:0;background:transparent;border-radius:14px;padding:11px 12px;text-align:left;color:var(--text);font-weight:750;cursor:pointer}.model-menu-action:hover,.model-menu-action:focus-visible{background:#f5f1ff;outline:none}.model-menu-action.danger{color:#b42318}.model-menu-action[hidden]{display:none}

.auth-card label[hidden]{display:none!important}

.auth-alert{margin:14px 0 4px;padding:12px 14px;border:1px solid #f1aeb5;border-radius:14px;background:#f8d7da;color:#842029;font-size:14px;font-weight:700;line-height:1.35}.auth-alert[hidden]{display:none!important}

.auth-card .auth-check-row{display:flex;align-items:flex-start;gap:10px;margin:14px 0 6px;font-weight:650;line-height:1.35}.auth-card .auth-check-row input{width:18px;height:18px;flex:0 0 auto;margin-top:1px;accent-color:var(--accent)}.auth-card .auth-check-row span{font-size:13px;color:var(--text)}

.app-shell{grid-template-rows:auto 1fr auto}.composer{align-items:flex-end;background:#fffaf7;border-top:1px solid #eadfd7;gap:12px;padding:12px 18px calc(12px + env(safe-area-inset-bottom))}.composer textarea{height:54px;min-height:54px;overflow-y:auto;border-color:#e6d8ce;border-radius:999px;padding:14px 20px;background:#fff;color:#2f2926}.composer textarea::placeholder{color:#7c7f86}.composer button{align-self:flex-end;width:54px;height:54px;min-width:54px;flex:0 0 54px;border-radius:50%;padding:0;background:#ff7417;color:#fff;font-size:0;line-height:1;display:grid;place-items:center}.composer button::before{content:'›';font-size:42px;font-weight:900;line-height:.8;transform:translateY(-1px)}

.empty-state{display:none!important}

.message-bubble{box-shadow:none;border:0;border-radius:24px;padding:16px 20px;color:#243a38}
.assistant .message-bubble{background:#dcecea;color:#263f3c;border:0;border-bottom-left-radius:8px}
.user .message-bubble{background:#f7ece5;color:#33231d;border:0;border-bottom-right-radius:8px}

.topbar{margin:12px 14px 0;border:1px solid #eadfd7;border-radius:24px;background:#fffaf7;box-shadow:0 8px 24px rgba(80,50,35,.05)}

.top-avatar.clickable{cursor:pointer}.top-avatar.clickable .avatar{transition:transform .18s ease,box-shadow .18s ease}.top-avatar.clickable:hover .avatar,.top-avatar.clickable:focus-visible .avatar{transform:scale(1.04);box-shadow:0 0 0 2px #d6d2cf,0 0 0 6px rgba(255,116,23,.18);outline:none}
.gallery-card{width:min(720px,94vw);max-width:none;padding:20px;border:1px solid #eadfd7;border-radius:24px;background:#fffaf7}.gallery-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.gallery-head h2,.gallery-head p{margin:0}.gallery-head p{margin-top:4px;color:#8d879f;font-size:13px}.gallery-close{width:38px!important;min-height:38px!important;margin:0!important;border-radius:50%!important;background:#fff!important;color:#8d879f!important;border:1px solid #eadfd7!important;padding:0!important;font-size:28px!important;line-height:1!important}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px;max-height:min(62vh,560px);overflow:auto;padding:2px}.gallery-item{border:1px solid #eadfd7;background:#fff;border-radius:18px;padding:0;overflow:hidden;aspect-ratio:1/1;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.gallery-item:hover,.gallery-item:focus-visible{outline:none;border-color:#ff7417;box-shadow:0 0 0 3px rgba(255,116,23,.18)}

.model-menu{border-color:#eadfd7;background:#fffaf7}.model-menu-item:hover,.model-menu-item.active{background:#f7ece5}.model-menu-divider{background:#eadfd7}

:root{--bg:#fff7f1;--card:#fffaf7;--text:#241f1a;--muted:#8b7a72;--accent:#ff7417;--accent2:#ff9a43;--border:#eadfd7;--shadow:0 12px 35px rgba(80,50,35,.08)}
html,body{background:#fff7f1;color:var(--text)}.app-shell{background:linear-gradient(180deg,#fffaf7 0,#fff4ed 100%);border-color:#eadfd7}.messages{background:#fff7f1}.icon-button{border-color:#eadfd7;color:#8b7a72}.top-model span,.message-meta,.model-menu-heading,.model-menu-item span,.gallery-head p{color:#8b7a72}.message-meta button{border-color:rgba(255,116,23,.36);background:rgba(255,116,23,.08);color:#ff7417}.assistant .message-bubble{background:#fffaf7;color:#2f2926}.user .message-bubble{background:#f7ece5;color:#33231d}.model-menu-action:hover,.model-menu-action:focus-visible{background:#f7ece5}.auth-card .link-button{color:#ff7417}.auth-card input:focus{border-color:#ff7417}
.gallery-card{width:min(640px,94vw)}.gallery-preview{width:100%;aspect-ratio:4/5;max-height:min(62vh,620px);border:1px solid #eadfd7;border-radius:22px;background:#fff;overflow:hidden;display:grid;place-items:center}.gallery-preview img{width:100%;height:100%;object-fit:contain;display:block}.gallery-thumbs{display:flex;gap:10px;overflow-x:auto;padding:12px 2px 2px;margin-top:2px;scrollbar-width:thin}.gallery-thumb{width:76px;height:76px;flex:0 0 76px;border:2px solid transparent;background:#fff;border-radius:16px;padding:0;overflow:hidden;cursor:pointer}.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gallery-thumb.active,.gallery-thumb:hover,.gallery-thumb:focus-visible{outline:none;border-color:#ff7417;box-shadow:0 0 0 3px rgba(255,116,23,.18)}

.gallery-preview{aspect-ratio:auto;min-height:240px;max-height:min(66vh,680px);background:#fffaf7;overflow:auto}.gallery-preview img{width:auto;height:auto;max-width:100%;max-height:min(66vh,680px);object-fit:contain}.gallery-thumb{background:#fffaf7;border-color:#eadfd7}.gallery-thumb.active,.gallery-thumb:hover,.gallery-thumb:focus-visible{border-color:#8b7a72;box-shadow:none}.gallery-thumb img{background:#fffaf7}

.gallery-modal{padding:12px}.gallery-card{width:min(1240px,96vw);height:min(92vh,980px);max-width:none;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;padding:24px 28px;background:#fffaf7;overflow:hidden}.gallery-head{margin-bottom:0}.gallery-preview{width:100%;height:100%;min-height:0;max-height:none;border:1px solid #eadfd7;border-radius:22px;background:#fff;overflow:hidden;display:grid;place-items:center}.gallery-preview img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;display:block}.gallery-thumbs{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;padding:0 2px 2px;margin:0;scrollbar-width:thin}.gallery-thumb{width:82px;height:82px;flex:0 0 82px;border:1px solid #eadfd7!important;background:#fff!important;border-radius:14px!important;padding:4px!important;box-shadow:none!important}.gallery-thumb img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:10px}.gallery-thumb.active,.gallery-thumb:hover,.gallery-thumb:focus-visible{border-color:#8b7a72!important;background:#fff!important;box-shadow:none!important}

.gallery-preview{padding:12px;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.gallery-preview img{display:block!important;position:static!important;flex:0 1 auto!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:scale-down!important}
.gallery-preview img.portrait{height:100%!important;width:auto!important;max-width:100%!important;max-height:100%!important}
.gallery-preview img.landscape{width:100%!important;height:auto!important;max-width:100%!important;max-height:100%!important}

.message-row{display:flex;align-items:flex-end;gap:10px;max-width:100%}.message-wrap.user .message-row{flex-direction:row-reverse;justify-content:flex-start}.message-wrap.assistant .message-row{justify-content:flex-start}.message-content{display:flex;flex-direction:column;min-width:0;max-width:min(82%,620px)}.message-wrap.user .message-content{align-items:flex-end}.message-wrap.assistant .message-content{align-items:flex-start}.message-content .message-bubble{max-width:100%}.message-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#fff;border:1px solid #eadfd7;color:#8b7a72;font-size:13px;font-weight:800;box-shadow:none}.message-avatar img{width:100%;height:100%;object-fit:cover}.user-message-avatar::before{content:'';width:14px;height:14px;border-radius:50%;background:#d9cfc8;box-shadow:0 16px 0 7px #d9cfc8;transform:translateY(-8px)}.message-wrap.user .message-meta{justify-content:flex-end}.message-wrap.assistant .message-meta{justify-content:flex-start}

.assistant .message-bubble{background:#fff;border:1px solid #eadfd7;box-shadow:0 8px 22px rgba(80,50,35,.06);color:#241f1a}.user .message-bubble{background:#f2dfd4;border:1px solid #e6cfc1;box-shadow:0 8px 22px rgba(80,50,35,.05);color:#241f1a}.user-message-avatar::before{content:none}.user-message-avatar img{width:100%;height:100%;object-fit:cover}
