.character-chat-dialog{width:min(1140px,calc(100vw - 24px));max-height:94dvh}.character-chat-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;min-height:65dvh}.character-chat-side{border-right:1px solid var(--line);padding-right:18px;min-width:0}.character-chat-side input{width:100%;box-sizing:border-box;margin-bottom:10px}.character-chat-cards{display:grid;gap:10px;max-height:59dvh;overflow:auto;padding:10px 0}.character-chat-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px 10px;padding:10px;border:1px solid var(--line);border-radius:14px}.character-chat-card img,.character-chat-placeholder{width:52px;height:62px;object-fit:cover;border-radius:9px;grid-row:span 2}.character-chat-placeholder{display:grid;place-items:center;background:var(--field);color:var(--accent)}.character-chat-card button{overflow-wrap:anywhere;white-space:normal;text-align:left;justify-content:flex-start}.character-chat-card [aria-pressed=true]{border-color:var(--accent)}.character-chat-card small{font-size:11px;opacity:.7}.character-chat-main{display:flex;flex-direction:column;gap:10px;min-width:0}.character-chat-main h3{margin:0}.character-chat-thread{min-height:260px;max-height:47dvh;overflow:auto;padding:12px;background:var(--field);border:1px solid var(--line);border-radius:16px}.character-chat-thread p{white-space:pre-wrap;overflow-wrap:anywhere}.character-chat-main .ai-compose{margin-top:auto}.character-chat-main textarea{width:100%;box-sizing:border-box;resize:vertical}.character-chat-main .ai-note{line-height:1.5}.character-chat-main .ai-row{flex-wrap:wrap}.character-chat-main select{width:100%;min-width:0}.character-chat-dialog .ai-message{max-width:92%}@media(max-width:700px){.character-chat-layout{grid-template-columns:1fr;gap:12px}.character-chat-side{border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px}.character-chat-cards{display:flex;max-height:130px;overflow-x:auto}.character-chat-card{min-width:185px;flex:0 0 185px}.character-chat-thread{max-height:42dvh;min-height:220px}.character-chat-main .ai-row button{font-size:12px}.character-chat-dialog{padding:16px}.character-chat-main textarea{font-size:16px}}

/* Shared with the Character editor: the home hero's navy and restrained violet. */
.settings-dialog.character-night{
 --surface:#172238;--field:#111c30;--text:#f8f5ff;--muted:#c0bdd4;--line:#46506b;--accent:#baadff;
 color-scheme:dark;color:var(--text);border:1px solid #67578a;border-radius:26px;
 background:radial-gradient(ellipse at 100% 0,#8760e430,transparent 60%),linear-gradient(130deg,#142645,#201c36);
 box-shadow:0 28px 100px #03071480;scrollbar-color:#645983 #142139;
}
.character-night::backdrop{background:#050b1ab8;backdrop-filter:blur(5px)}
.character-night .settings-heading{gap:20px;align-items:flex-start;border-bottom:1px solid #75658d50;padding-bottom:20px}
.character-night h2,.character-night h3,.character-night h4,.character-night label{color:#f8f5ff}
.character-night h2{letter-spacing:-.6px;line-height:1.25}
.character-night .eyebrow{color:#c4b6e7;letter-spacing:2px;font-size:10px;margin:0 0 10px}
.character-chat-subtitle{color:#c6c7df;font-size:13px;line-height:1.6;margin:10px 0 0}
.character-night :is(.home-button,.eye-button){background:#242a44;color:#edeaff;border:1px solid #605776;border-radius:10px;box-shadow:none;transition:background .16s,border-color .16s,transform .16s}
.character-night :is(.home-button,.eye-button):hover:not(:disabled){background:#343253;border-color:#a08aca;transform:translateY(-1px)}
.character-night .upload-button{background:linear-gradient(110deg,#477eee,#8152de);color:#fff;border:1px solid #a997ed55;box-shadow:0 7px 24px #6a55dc2e;border-radius:11px;min-height:44px}
.character-night button:disabled{opacity:.48;cursor:not-allowed;transform:none;filter:none}
.character-night :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),textarea,select){background:#101a2e;color:#f8f5ff;border:1px solid #56617b;border-radius:11px;padding:12px 14px;font:inherit;box-sizing:border-box}
.character-night input::placeholder,.character-night textarea::placeholder{color:#b2b3cb;opacity:1}
.character-night select option{background:#172238;color:#f8f5ff}
.character-night input[type=color]{background:#172238;border:1px solid #605776;border-radius:9px}
.character-night input[type=checkbox],.character-night input[type=radio]{accent-color:#9b80ee}
.character-night :is(button,input,textarea,select,summary):focus-visible{outline:3px solid #b6a3ff;outline-offset:3px}
.character-night :is(.settings-note,.ai-note,.world-status,.form-status){color:#c6c7df;line-height:1.6}
.character-night .form-status:not(:empty){border-top:1px solid #75658d50;padding-top:12px}
.character-night .character-chat-side{border-color:#75658d50}
.character-night .character-chat-side>.upload-button{width:100%;font-size:13px}
.character-night .character-chat-card{background:#17223899;border-color:#56617b80;transition:border-color .16s,background .16s}
.character-night .character-chat-card:has([aria-pressed=true]){border-color:#ab91ed;background:linear-gradient(125deg,#243852,#342b51);box-shadow:inset 3px 0 #ad91f1}
.character-night .character-chat-card [aria-pressed=true]{background:transparent;border-color:transparent;color:#fff}
.character-night .character-chat-card small{color:#c8c3dc;opacity:1}
.character-night .character-chat-placeholder{background:linear-gradient(140deg,#345384,#59407c);color:#e1d4ff}
.character-night .character-chat-thread{background:radial-gradient(ellipse at 90% 5%,#7550bb12,transparent 65%),#0d1729;border-color:#62557566;padding:18px}
.character-night .ai-welcome{color:#d1c9e3;padding:30px 16px;text-align:center;line-height:1.8}
.character-night .ai-message{background:#1d2940;border:1px solid #53607888;color:#f4f0fc;box-shadow:0 4px 14px #00000014;margin-right:28px;border-radius:16px 16px 16px 5px}
.character-night .ai-user{background:linear-gradient(120deg,#2b4675,#493768);border-color:#9a83c366;margin-left:28px;margin-right:0;border-radius:16px 16px 5px 16px}
.character-night .ai-message small{color:#d4c4f3;opacity:1}
.character-night .ai-compose{padding-top:10px}.character-night .ai-compose textarea{min-height:90px}
.character-night .world-field,.character-night .eye-field{color:#e4dfee}
.character-night :is(.studio-card,.eye-summary,fieldset){background:#18233a;border-color:#62557580;color:#eee9fa;border-radius:14px}
.character-night>div>label:has(textarea){display:grid;gap:8px;margin:16px 0}
@media(max-width:700px){.settings-dialog.character-night{border-radius:19px}.character-night .settings-heading{gap:12px;padding-bottom:16px}.character-night h2{font-size:23px}.character-chat-subtitle{font-size:12px}.character-night .character-chat-thread{padding:12px}.character-night :is(input,textarea,select){font-size:16px}.character-night .ai-message{margin-right:12px}.character-night .ai-user{margin-left:12px;margin-right:0}}
@media(prefers-reduced-motion:reduce){.character-night button,.character-night .character-chat-card{transition:none!important;transform:none!important}}

/* Fiche de chat : les Labs de Studio conservent leur propre éditeur. */
.chat-avatar-editor{max-width:760px!important}.chat-avatar-editor-body{display:grid;gap:16px}.chat-avatar-editor label{display:grid;gap:8px}.chat-avatar-editor textarea,.chat-avatar-editor input:not([type=checkbox]),.chat-avatar-editor select{width:100%;box-sizing:border-box}.chat-avatar-switches{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chat-avatar-editor .chat-avatar-switch{display:flex;align-items:center;justify-content:space-between;background:#1b2942;padding:14px;border:1px solid #514969;border-radius:14px}.chat-avatar-switch input{appearance:none;width:44px;height:26px;border-radius:20px;background:#53576a;position:relative;cursor:pointer;flex-shrink:0}.chat-avatar-switch input:before{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;background:white;border-radius:50%;transition:transform .15s}.chat-avatar-switch input:checked{background:#8261e7}.chat-avatar-switch input:checked:before{transform:translateX(18px)}.chat-avatar-switch input:disabled{opacity:.45;cursor:not-allowed}.chat-avatar-preview img{max-width:220px;max-height:260px;object-fit:contain;border-radius:18px}.chat-avatar-image-panel{padding:14px;background:#111c30;border:1px solid #46506b;border-radius:18px}.chat-avatar-editor .ai-row{flex-wrap:wrap}@media(max-width:550px){.chat-avatar-switches{grid-template-columns:1fr}.chat-avatar-editor .ai-row button{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.chat-avatar-switch input:before{transition:none}}
.profile-characters-dialog{width:min(920px,94vw)}.profile-character-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:18px;margin-top:18px}.profile-character-card{min-width:0;display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid #514969;border-radius:18px;background:#152239}.profile-character-card>img{width:100%;height:220px;object-fit:cover;border-radius:12px}.profile-character-card p{overflow-wrap:anywhere}.profile-character-card h3,.profile-character-card p{margin:0}.profile-character-card a{color:#c9baff}.profile-character-card small{color:#c0bdd4}
.profile-characters-panel .profile-character-card{background:var(--surface);border-color:var(--line);color:var(--text)}.profile-characters-panel .profile-character-card a{color:var(--accent)}.profile-characters-panel .profile-character-card small{color:var(--muted)}

/* Portrait conversation: compact bubbles over the selected character's photo. */
.settings-dialog.character-chat-dialog[open]{display:flex;flex-direction:column;height:min(900px,94dvh);max-height:94dvh;overflow:hidden;padding:20px;box-sizing:border-box}
.character-chat-dialog .character-chat-heading{flex:none;padding-bottom:12px;margin-bottom:12px}
.character-chat-heading .eyebrow,.character-chat-heading .character-chat-subtitle{display:none}
.character-chat-dialog .character-chat-layout{flex:1;min-height:0;grid-template-columns:220px minmax(0,1fr);gap:18px}
.character-chat-dialog .character-chat-side{display:flex;flex-direction:column;min-height:0;padding-right:16px}
.character-chat-dialog .character-chat-cards{max-height:none;min-height:0;overflow:auto}
.character-chat-dialog .character-chat-main{position:relative;isolation:isolate;overflow:hidden;min-height:0;gap:0;border:1px solid #76638866;border-radius:22px;background:linear-gradient(155deg,#38304f,#111a2e)}
.character-chat-backdrop{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.character-chat-backdrop>.character-chat-photo{position:absolute;inset:0}
.character-chat-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.character-chat-backdrop:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#08111d80,transparent 35%,#08111d35 65%,#08111da6)}
.character-chat-photo.mature-obscured>img{filter:blur(30px);transform:scale(1.08)}
.character-chat-photo .mature-reveal,.character-chat-photo .mature-badge{display:none}
.character-chat-no-photo{position:absolute;top:34%;left:14%;right:14%;text-align:center;color:#cec3df;font-size:13px;line-height:1.6}
.character-chat-top{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:18px 20px;background:#1015258c;backdrop-filter:blur(14px);z-index:3}
.character-chat-identity{min-width:0}.character-chat-identity h3{font-size:20px;overflow-wrap:anywhere}.character-chat-caption{display:block;font-size:11px;color:#e0d8eb;margin-top:5px}
.character-chat-options{position:static}.character-chat-options>summary{cursor:pointer;list-style:none;border:1px solid #ffffff38;border-radius:20px;padding:9px 13px;background:#1f253dbb;font-size:12px;color:#fff}.character-chat-options>summary::-webkit-details-marker{display:none}
.character-chat-options[open]{position:absolute;right:12px;top:12px;width:min(310px,calc(100% - 24px));padding:12px;box-sizing:border-box;border:1px solid #817298;border-radius:18px;background:#172036;box-shadow:0 12px 40px #0008}
.character-chat-options[open]>summary{width:fit-content;margin-left:auto;margin-bottom:12px}.character-chat-options select{margin-bottom:10px}.character-chat-options .ai-note{display:block;margin-top:12px;color:#c2b9d3}
.character-chat-dialog .character-chat-thread{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-height:0;max-height:none;border:0;border-radius:0;background:transparent;padding:24px 20px;gap:14px;scrollbar-width:thin;scrollbar-color:#ffffff55 transparent}
.character-chat-dialog .character-chat-thread .ai-message{flex:none;width:fit-content;max-width:78%;box-sizing:border-box;margin:0;padding:10px 14px;background:#192238e8;border:1px solid #ffffff26;border-radius:18px 18px 18px 4px;box-shadow:0 3px 14px #0002;backdrop-filter:blur(8px);color:#fff}
.character-chat-dialog .character-chat-thread .ai-user{align-self:flex-end;margin:0;background:linear-gradient(125deg,#8959cdeb,#6555b6f5);border-color:#cbb1ff66;border-radius:18px 18px 4px 18px}
.character-chat-dialog .character-chat-thread .ai-message p{margin:4px 0 0;line-height:1.55;font-size:14px}.character-chat-dialog .character-chat-thread .ai-message small{font-size:10px;font-weight:600;color:#e3d6fa}
.character-chat-empty{align-self:center;margin-top:auto;color:#eee6f6;background:#131b32c9;padding:10px 16px;border-radius:16px;font-size:13px;text-align:center}
.character-chat-typing p{letter-spacing:5px}.character-chat-pending{opacity:.8}
.character-chat-dialog .character-chat-main .ai-compose{display:flex;align-items:flex-end;gap:8px;flex:none;margin:0;padding:12px;background:#1015259e;backdrop-filter:blur(14px);border-top:1px solid #ffffff1c}
.character-chat-dialog .ai-compose textarea{flex:1;min-width:0;min-height:48px;max-height:110px;resize:none;border:1px solid #ffffff33;border-radius:22px;background:#171e32cc;padding:12px 16px;font-size:14px;line-height:1.5}
.character-chat-dialog .ai-compose .upload-button{min-height:48px;border-radius:22px;padding:10px 18px;flex:none}
.character-chat-dialog>.form-status{flex:none;font-size:11px;margin:10px 2px 0;line-height:1.4}
@media(max-width:700px){
 .settings-dialog.character-chat-dialog[open]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:10px;border-radius:0;border:0}
 .character-chat-dialog .character-chat-heading{padding:0 2px 8px;margin-bottom:6px}.character-chat-dialog .character-chat-heading h2{font-size:20px}
 .character-chat-dialog .character-chat-layout{display:flex;flex-direction:column;gap:8px}.character-chat-dialog .character-chat-side{flex:none;display:grid;grid-template-columns:1fr auto;gap:6px;border:0;padding:0}
 .character-chat-side>.eyebrow{display:none}.character-chat-dialog .character-chat-side input{margin:0;min-width:0;padding:8px 10px}.character-chat-dialog .character-chat-side>.upload-button{font-size:11px;width:auto;padding:7px 10px}
 .character-chat-dialog .character-chat-cards{grid-column:1/-1;display:flex;padding:0 0 3px;max-height:68px;gap:6px}.character-chat-dialog .character-chat-card{flex:0 0 145px;min-width:145px;padding:6px;grid-template-columns:32px 1fr;gap:2px 7px;border-radius:12px}.character-chat-card img,.character-chat-card .character-chat-placeholder{width:32px;height:42px}.character-chat-card button{font-size:12px;padding:0;border:0}.character-chat-card small{font-size:9px}
 .character-chat-dialog .character-chat-main{flex:1;border-radius:18px}.character-chat-top{padding:12px 14px}.character-chat-identity h3{font-size:17px}.character-chat-caption{font-size:10px}
 .character-chat-dialog .character-chat-thread{padding:18px 12px;gap:12px}.character-chat-dialog .character-chat-thread .ai-message{max-width:85%;padding:9px 12px}
 .character-chat-dialog .character-chat-main .ai-compose{padding:8px}.character-chat-dialog .ai-compose textarea{font-size:16px}.character-chat-dialog .ai-compose .upload-button{padding:10px 12px;font-size:12px}.character-chat-dialog>.form-status{margin-top:5px;font-size:10px}
}

/* Keep the portrait above the panel paint, with chat controls on a separate layer. */
.character-chat-dialog .character-chat-thread,.character-chat-dialog .character-chat-main .ai-compose{position:relative;z-index:1}
.character-chat-backdrop>.character-chat-photo>img{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none}
.character-chat-photo-status{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;flex:none;padding:10px;background:#172036e8;color:#eee4ff;font-size:12px;text-align:center}
.character-chat-photo-status button{font-size:12px;padding:7px 12px}
