/* Interface sombre à trois zones, inspirée des applications de communautés. */
:root{color-scheme:dark;--bg:#313338;--sidebar:#2b2d31;--deep:#1e1f22;--panel:#383a40;--text:#f2f3f5;--muted:#949ba4;--accent:#5865f2;--hover:#404249;--border:#232428;--green:#23a559;--red:#fa777c}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden{display:none!important}.muted{color:var(--muted)}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top,#393d75 0,#232428 58%)}.auth-card{width:min(100%,430px);padding:34px;border-radius:10px;background:#313338;box-shadow:0 18px 55px #0005}.brand-mark{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 18px;border-radius:17px;background:var(--accent);font-size:29px;font-weight:900}.auth-card h1,.auth-card>p{text-align:center}.auth-card h1{margin:0 0 8px;font-size:25px}.auth-card>p{font-size:14px;margin-bottom:25px}.auth-tabs{display:flex;gap:6px;padding:4px;background:var(--deep);border-radius:7px;margin-bottom:22px}.tab{flex:1;padding:10px;border:0;border-radius:5px;background:transparent;color:var(--muted)}.tab.active{background:var(--panel);color:var(--text)}label{display:block;margin:14px 0 7px;font-size:11px;font-weight:800;color:#c9ccd1;letter-spacing:.04em}input,textarea,select{width:100%;border:1px solid transparent;border-radius:5px;padding:12px;background:var(--deep);color:var(--text);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent)}.primary{border:0;border-radius:5px;background:var(--accent);color:white;padding:11px 15px;font-weight:700}.primary:hover,.send-button:hover{background:#4752c4}.full{width:100%;margin-top:22px}.error{min-height:16px;color:var(--red);font-size:12px}
.app{display:flex;height:100dvh;min-height:460px;overflow:hidden}.server-rail{width:72px;flex:0 0 72px;background:var(--deep);display:flex;align-items:center;flex-direction:column;gap:9px;padding:12px 0}.rail-logo,.rail-add{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#313338;color:#dbdee1;font-size:22px;font-weight:800;transition:border-radius .15s,background .15s}.rail-logo:hover,.rail-add:hover,.rail-logo.active{border-radius:16px;background:var(--accent);color:white}.rail-divider{width:32px;height:2px;background:#3b3d44;border-radius:2px}.rail-add{color:var(--green);font-size:26px}.sidebar{width:252px;flex:0 0 252px;display:flex;flex-direction:column;background:var(--sidebar)}.sidebar-header{height:64px;flex:0 0 64px;padding:0 14px 0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);box-shadow:0 1px 3px #0002}.sidebar-header strong,.sidebar-header small{display:block}.sidebar-header strong{font-size:16px}.sidebar-header small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em}.side-scroll{overflow:auto;flex:1}.section-title{display:flex;align-items:center;justify-content:space-between;padding:22px 12px 7px 17px;font-size:10px;font-weight:850;letter-spacing:.07em;color:var(--muted)}.icon-button{border:0;border-radius:5px;padding:5px 7px;background:transparent;color:var(--muted);font-size:17px}.icon-button:hover{background:var(--hover);color:var(--text)}.channel-list,.member-list{padding:0 8px}.channel-item,.dm-item,.member-item{display:flex;align-items:center;gap:9px;width:100%;border:0;border-radius:5px;padding:8px 9px;margin:2px 0;background:transparent;color:var(--muted);text-align:left}.channel-item:hover,.dm-item:hover,.member-item:hover{background:#35373c;color:#dbdee1}.channel-item.active,.dm-item.active{background:var(--hover);color:white}.channel-symbol{font-size:22px;color:#80848e;line-height:1}.item-label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.unread{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--red);color:white;font-size:10px;font-weight:800}.avatar{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#5865f2;color:white;font-weight:800}.avatar img,.message-avatar img{width:100%;height:100%;object-fit:cover}.member-item{padding:6px 8px}.member-item .avatar{width:28px;height:28px;flex-basis:28px}.role-tag{font-size:9px;color:#c6a8ff;margin-left:auto}.admin-panel{padding-bottom:10px}.admin-panel>p{padding:0 16px;color:var(--muted);font-size:11px}.admin-row{display:flex;align-items:center;gap:5px;padding:5px 10px;font-size:11px}.admin-row span{flex:1;overflow:hidden;text-overflow:ellipsis}.admin-row select{width:85px;padding:5px;font-size:10px}.profile{min-height:70px;display:flex;align-items:center;gap:8px;padding:10px;background:#232428}.avatar-button{position:relative;border:0;background:transparent;padding:0}.online-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:3px solid #232428;border-radius:50%;background:var(--green)}.profile-name{min-width:0;flex:1}.profile-name strong,.profile-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-name strong{font-size:12px}.profile-name small{font-size:10px;color:var(--muted);margin-top:3px}
.chat{display:flex;flex:1;min-width:0;flex-direction:column}.chat-header{height:64px;flex:0 0 64px;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid var(--border);box-shadow:0 1px 3px #0002}.header-hash{font-size:26px;color:#80848e}.header-title{min-width:0}.header-title h2{font-size:15px;margin:0}.header-title small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.header-spacer{flex:1}.secondary{border:1px solid #4a4d55;background:#383a40;color:#dbdee1;border-radius:5px;padding:8px 10px;font-size:11px}.secondary:hover{background:#454850}.messages{flex:1;overflow:auto;padding:22px max(18px,calc((100% - 920px)/2));display:flex;flex-direction:column;gap:18px}.empty-state{margin-top:auto;color:var(--muted);padding:16px 0}.empty-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#41434a;color:#ddd;font-size:35px}.empty-state h2{color:var(--text);font-size:25px;margin:18px 0 7px}.empty-state p{font-size:13px}.message{display:flex;align-items:flex-start;gap:13px;overflow-wrap:anywhere}.message-avatar{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#5865f2;font-weight:800}.message-main{flex:1;min-width:0}.message-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:2px 0 5px}.message-meta strong{font-size:13px}.message-meta time{color:var(--muted);font-size:10px}.message-content{white-space:pre-wrap;line-height:1.45;font-size:13px}.composer{display:flex;align-items:flex-end;gap:10px;margin:0 18px;padding:8px 10px 8px 15px;background:#383a40;border-radius:8px}.composer textarea{resize:none;max-height:150px;border:0;padding:7px 0;background:transparent;line-height:1.4}.send-button{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:6px;background:var(--accent);color:white}.composer-hint{margin:8px 20px 12px;color:var(--muted);font-size:10px}.toast{position:fixed;z-index:10;right:20px;bottom:20px;max-width:calc(100vw - 40px);padding:12px 16px;background:#18191c;border:1px solid #42444b;border-radius:8px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.dialog{width:min(92vw,420px);border:1px solid #4a4d55;border-radius:10px;background:#313338;color:var(--text);padding:25px;box-shadow:0 20px 80px #0008}.dialog::backdrop{background:#0009}.dialog h2{margin:0 0 10px;font-size:20px}.dialog p{font-size:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.mobile-only,.sr-only{display:none}
@media(max-width:850px){.server-rail{width:58px;flex-basis:58px}.rail-logo,.rail-add{width:42px;height:42px}.sidebar{width:230px;flex-basis:230px}}
@media(max-width:650px){.server-rail{display:none}.sidebar{position:fixed;z-index:5;inset:0 auto 0 0;width:min(84vw,300px);transform:translateX(-105%);transition:transform .2s;box-shadow:10px 0 35px #0006}.sidebar.open{transform:translateX(0)}.mobile-only{display:inline-block}.chat-header{padding:0 10px;gap:8px}.messages{padding:17px 12px}.composer{margin:0 9px}.composer-hint{margin-left:11px}.empty-state h2{font-size:21px}.auth-card{padding:26px 22px}}

:root{--accent:#5865f2}
body.theme-light{color-scheme:light;--bg:#f2f3f5;--sidebar:#e3e5e8;--deep:#fff;--panel:#e8e9ed;--text:#232428;--muted:#5c6069;--hover:#d5d8de;--border:#c8cbd1}
body.theme-light .profile{background:#d9dce2}body.theme-light .composer{background:#e3e5e8}body.theme-light .secondary{background:#f7f7f8;color:#232428;border-color:#c8cbd1}
body.compact .channel-item,body.compact .dm-item{padding-top:4px;padding-bottom:4px}body.font-small .message-content{font-size:12px}body.font-large .message-content{font-size:16px}
.settings-dialog{width:min(94vw,900px);max-width:900px;height:min(82vh,680px);padding:0;overflow:hidden}.settings-layout{height:100%;display:grid;grid-template-columns:220px minmax(0,1fr)}
.settings-nav{background:var(--deep);border-right:1px solid var(--border);padding:24px 14px;display:flex;flex-direction:column;gap:7px;overflow:auto}.settings-nav h2{font-size:20px;margin:0}.settings-nav>p{font-size:12px;margin:0 0 12px}
.settings-tab{width:100%;text-align:left;border:0;border-radius:6px;padding:11px;background:transparent;color:var(--muted);font-size:13px}.settings-tab:hover,.settings-tab.active{background:var(--hover);color:var(--text)}.settings-close{margin-top:auto}
.settings-content{padding:28px 30px;overflow:auto}.settings-page{display:none}.settings-page.active{display:block}.settings-page h2{margin:0 0 15px;font-size:23px}
.settings-profile{display:flex;align-items:center;gap:12px;margin:20px 0;padding:14px;background:var(--panel);border-radius:8px}.settings-profile p{margin:5px 0 0;font-size:11px}.settings-action{margin-top:14px}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-size:13px}.setting-row small{margin-top:4px;font-size:11px;color:var(--muted)}.setting-row select{max-width:210px;width:42%;padding:9px}.setting-row input[type=checkbox]{width:19px;height:19px;flex:0 0 19px;accent-color:var(--accent)}
.danger-button{margin-top:22px;border:1px solid #9e343b;background:#61272c;color:white;border-radius:6px;padding:10px 13px}
@media(max-width:650px){.settings-dialog{height:90vh}.settings-layout{grid-template-columns:120px minmax(0,1fr)}.settings-nav{padding:15px 6px}.settings-nav h2{font-size:15px}.settings-nav>p{font-size:10px}.settings-tab{font-size:11px;padding:9px 6px}.settings-content{padding:18px 12px}.setting-row{gap:8px}.setting-row select{font-size:11px}}

.voice-dialog{width:min(92vw,430px);text-align:center}.voice-call-card{padding:16px 8px}.voice-call-icon{width:76px;height:76px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;font-size:32px;background:var(--panel)}.voice-call-card h2{margin:8px 0}.voice-call-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:24px}.voice-call-actions button{padding:11px 14px}#voice-remote-audio{width:100%;margin-top:12px}#voice-call-button{white-space:nowrap}@media(max-width:650px){#voice-call-button{font-size:11px;padding:7px}}

.settings-page select{background:var(--deep);color:var(--text);border:1px solid var(--border);border-radius:5px}

/* Fonds d’écran personnalisés du chat */
.chat{background-color:var(--bg);background-size:cover;background-position:center;background-repeat:no-repeat}
.wallpaper-settings{margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}
.wallpaper-settings h3{font-size:15px;margin:0 0 7px}
.wallpaper-settings>p{font-size:11px;line-height:1.5}
.wallpaper-settings input[type=file]{margin-top:8px;padding:9px;font-size:12px}
.wallpaper-preview{height:125px;margin-top:12px;border:1px solid var(--border);border-radius:8px;background-size:cover;background-position:center}
.wallpaper-actions{display:flex;justify-content:flex-start}

/* Finition visuelle ChatFR : profondeur, transitions et groupes */
:root{--accent-soft:color-mix(in srgb,var(--accent) 20%,transparent)}
button{transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.primary,.send-button{box-shadow:0 5px 16px color-mix(in srgb,var(--accent) 22%,transparent)}
.primary:hover,.send-button:hover{transform:translateY(-1px);box-shadow:0 7px 20px color-mix(in srgb,var(--accent) 30%,transparent)}
.auth-card{border:1px solid #ffffff12;backdrop-filter:blur(16px);background:linear-gradient(145deg,#363940f5,#292a30f5);border-radius:18px}
.brand-mark{box-shadow:0 8px 25px color-mix(in srgb,var(--accent) 35%,transparent)}
.sidebar{border-right:1px solid #ffffff08}
.sidebar-header{background:linear-gradient(180deg,#ffffff04,transparent)}
.section-title{margin-top:18px}
.channel-item,.dm-item,.group-item,.member-item{border-radius:8px;margin:2px 8px;width:calc(100% - 16px);transition:background .15s ease,transform .15s ease}
.channel-item:hover,.dm-item:hover,.group-item:hover,.member-item:hover{transform:translateX(2px)}
.channel-item.active,.dm-item.active,.group-item.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 3px 0 var(--accent)}
.group-item{display:flex;align-items:center;gap:9px;min-height:38px;padding:5px 9px;border:0;background:transparent;color:var(--muted);text-align:left}
.group-avatar{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,var(--accent),#8b5cf6);color:white;font-size:11px;font-weight:800}
.group-count{margin-left:auto;min-width:22px;padding:2px 6px;border-radius:999px;background:#ffffff0c;color:var(--muted);font-size:10px;text-align:center}
.chat-header{background:#313338d9;backdrop-filter:blur(12px)}
.messages{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}
.message{padding:8px 12px;border-radius:9px;margin:2px 8px;transition:background .15s ease}
.message:hover{background:#00000010}
.message-avatar{border-radius:14px}
.composer{margin-left:18px;margin-right:18px;border:1px solid #ffffff10;border-radius:14px;background:#202127;box-shadow:0 8px 28px #0002}
.composer:focus-within{border-color:color-mix(in srgb,var(--accent) 65%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}
.send-button{border-radius:10px}
.icon-button{border-radius:8px}
.dialog,.settings-dialog{border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 24px 80px #0008}
dialog::backdrop{background:#090a0db8;backdrop-filter:blur(5px)}
#group-members{min-height:150px;padding:8px}
#group-members option{padding:7px;border-radius:5px}
#group-help{display:block;line-height:1.5;margin-top:7px}
.toast{border:1px solid #ffffff18;border-radius:12px;box-shadow:0 12px 35px #0005}
@media(max-width:700px){.composer{margin-left:8px;margin-right:8px}.message{margin-left:4px;margin-right:4px}}


/* CHATFR 2.6 — interface futuriste : néon, verre dépoli et surfaces holographiques */
:root{
  color-scheme:dark;
  --bg:#080d19;--sidebar:#0b1222;--deep:#070b14;--panel:#111d32;
  --text:#e8f7ff;--muted:#8199b7;--hover:#172944;--border:#1d3554;
  --accent:#00e5ff;--accent-soft:#00e5ff1c;--green:#41ffb0;--red:#ff416c;
  --neon-purple:#a855f7;--glass:rgba(12,24,44,.78)
}
body{background:radial-gradient(ellipse at 70% -15%,#173c68 0,transparent 44%),radial-gradient(ellipse at 0% 100%,#241044 0,transparent 38%),var(--bg);color:var(--text)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.12;background-image:linear-gradient(#4cdfff18 1px,transparent 1px),linear-gradient(90deg,#4cdfff18 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,black,transparent 92%)}
#app,.auth-screen,.toast,dialog{position:relative;z-index:1}
.auth-screen{background:radial-gradient(ellipse at 50% 20%,#153d63 0,#0a1020 48%,#070a13 100%)}
.auth-card{position:relative;overflow:hidden;border:1px solid #00e5ff55;background:linear-gradient(145deg,#10223bea,#0a1020f2);box-shadow:0 0 0 1px #a855f71c,0 25px 90px #0009,0 0 50px #00d9ff13;border-radius:22px}
.auth-card:before{content:"";position:absolute;left:12%;right:12%;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),#a855f7,transparent);box-shadow:0 0 18px var(--accent)}
.brand-mark{background:linear-gradient(135deg,#00d9ff,#536dfe 60%,#a855f7);color:#06101d;border-radius:17px;box-shadow:0 0 28px #00e5ff55,0 0 60px #a855f722}
.auth-tabs{background:#050a14;border:1px solid #1b3450;border-radius:12px}.tab{border-radius:9px}.tab.active{background:linear-gradient(110deg,#00d9ff25,#a855f72a);color:#fff;box-shadow:inset 0 0 0 1px #00e5ff44}
label{color:#a9c5e2;letter-spacing:.1em}
input,textarea,select{background:#07111f;border:1px solid #1c3857;border-radius:10px;color:var(--text);transition:border-color .18s,box-shadow .18s}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #00e5ff18,0 0 18px #00e5ff13}
button{transition:all .18s ease}
.primary{background:linear-gradient(110deg,#00cbe8,#5375ff 65%,#8b5cf6);color:#04101c;border:1px solid #7cefff7a;border-radius:10px;box-shadow:0 0 22px #00d9ff20;font-weight:800}
.primary:hover,.send-button:hover{background:linear-gradient(110deg,#69f2ff,#8294ff 65%,#c084fc);box-shadow:0 0 28px #00e5ff48;transform:translateY(-1px)}
.secondary{background:linear-gradient(135deg,#14243a,#0d1728);border:1px solid #244769;color:#cceeff;border-radius:10px}
.secondary:hover,.icon-button:hover{background:#17324e;border-color:#00e5ff66;color:#fff;box-shadow:0 0 16px #00e5ff12}
.server-rail{background:linear-gradient(180deg,#080d18,#0c1426);border-right:1px solid #1c3654;box-shadow:5px 0 30px #0002}
.rail-logo,.rail-add{background:linear-gradient(145deg,#12213a,#0c1527);border:1px solid #1c3c5c;color:#91cde6;border-radius:15px}
.rail-logo:hover,.rail-add:hover,.rail-logo.active{background:linear-gradient(135deg,#00d9ff,#5d65ff 70%,#a855f7);color:#07111f;border-color:#7af1ff;box-shadow:0 0 24px #00e5ff38}
.rail-divider{background:linear-gradient(90deg,transparent,#00e5ff88,transparent);height:1px}
.sidebar{background:linear-gradient(180deg,#0d1729ed,#09111ff7);border-right:1px solid #1d3857;backdrop-filter:blur(18px)}
.sidebar-header,.chat-header{background:linear-gradient(100deg,#10233bdd,#0b1425e8);border-bottom:1px solid #1d3b5d;backdrop-filter:blur(18px)}
.sidebar-header strong{letter-spacing:.04em;text-shadow:0 0 18px #00e5ff22}
.sidebar-header small{color:#5eddf4;letter-spacing:.16em}
.section-title{color:#6f91b6;letter-spacing:.15em}
.channel-item,.dm-item,.group-item,.member-item{border:1px solid transparent;border-radius:10px;color:#8fa7c4}
.channel-item:hover,.dm-item:hover,.group-item:hover,.member-item:hover{background:#11243a;color:#e9f9ff;border-color:#1c3e5d;transform:translateX(2px)}
.channel-item.active,.dm-item.active,.group-item.active{background:linear-gradient(100deg,#00e5ff19,#536dff1c);color:#e9fcff;box-shadow:inset 3px 0 var(--accent),inset 0 0 22px #00e5ff06;border-color:#00e5ff25}
.channel-symbol,.header-hash{color:#00d9f5;text-shadow:0 0 14px #00d9f544}
.avatar,.group-avatar{background:linear-gradient(135deg,#00d9ff,#596dff 60%,#a855f7);color:#06101d;box-shadow:0 0 16px #00d9ff15}
.group-avatar{border:1px solid #8cefff66;border-radius:10px}
.group-count,.unread{border:1px solid #00e5ff38;background:#00e5ff17;color:#a8f6ff}
.profile{background:#07101de8;border-top:1px solid #1c3857}
.online-dot{box-shadow:0 0 10px #41ffb0;background:#41ffb0}
.chat{background-color:transparent;background-image:radial-gradient(ellipse at 80% 0%,#1234562a,transparent 48%)}
.chat-header{min-height:68px}
.header-title h2{letter-spacing:.02em}
.header-title small{color:#7998b9}
.messages{scrollbar-color:#244a6a transparent}
.message{border:1px solid transparent;border-radius:12px}
.message:hover{background:#0c1a2a88;border-color:#1c3b5a}
.message-avatar{border:1px solid #3c668b;border-radius:12px}
.composer{background:linear-gradient(135deg,#0a1424f5,#101c30f5);border:1px solid #24496a;border-radius:16px;box-shadow:0 10px 40px #0003,inset 0 1px #ffffff08}
.composer:focus-within{border-color:#00e5ff9c;box-shadow:0 0 0 3px #00e5ff13,0 0 30px #00e5ff0b}
.composer textarea{background:transparent;border:0;box-shadow:none}
.send-button{background:linear-gradient(135deg,#00d9ff,#6174ff 75%,#a855f7);color:#07111e;border-radius:12px}
.composer-hint{color:#597b9c}
.empty-state .empty-icon{background:linear-gradient(135deg,#00d9ff,#8b5cf6);color:#07111e;box-shadow:0 0 34px #00d9ff2c}
.dialog,.settings-dialog{background:linear-gradient(145deg,#101e32f7,#080f1dfb);color:var(--text);border:1px solid #2c5276;box-shadow:0 30px 100px #000b,0 0 45px #00d9ff0a;border-radius:20px}
dialog::backdrop{background:#020610d9;backdrop-filter:blur(10px)}
.dialog h2,.settings-page h2{letter-spacing:.02em}
.dialog-actions{gap:10px}
.settings-nav{background:linear-gradient(180deg,#0c1729,#080f1c);border-right:1px solid #1d3b5b}
.settings-tab{border:1px solid transparent;border-radius:10px}.settings-tab:hover,.settings-tab.active{background:linear-gradient(100deg,#00e5ff17,#8b5cf619);border-color:#00e5ff30;color:#eaffff}
.settings-profile{background:linear-gradient(110deg,#10243a,#11172d);border:1px solid #254766;border-radius:14px}
.setting-row{border-color:#1b3551}
.danger-button{background:linear-gradient(110deg,#651b39,#341529);border:1px solid #ff416c66;color:#ffdce5;border-radius:10px}
.danger-button:hover{box-shadow:0 0 22px #ff416c20;border-color:#ff416c}
.toast{background:#0d1b2d;border-color:#00e5ff4a;color:#e9fbff;box-shadow:0 12px 35px #0007,0 0 25px #00e5ff0b}
/* Appel : anneau animé façon interface de communication futuriste */
.voice-dialog{width:min(92vw,470px);overflow:hidden;background:radial-gradient(ellipse at 50% 25%,#153c5a 0,#0c1729 46%,#080f1d 100%);border-color:#00e5ff66;box-shadow:0 30px 100px #000c,0 0 55px #00d9ff16}
.voice-call-card{position:relative;padding:28px 18px 22px}
.voice-call-card:before{content:"COMMUNICATION // CHATFR";display:block;color:#64dff5;font-size:9px;font-weight:800;letter-spacing:.24em;margin-bottom:24px}
.voice-call-icon{position:relative;width:112px;height:112px;margin:0 auto 22px;border-radius:50%;font-size:38px;background:linear-gradient(145deg,#00d9ff1c,#7c3aed26);border:1px solid #00e5ff88;color:#bdf8ff;box-shadow:0 0 0 8px #00e5ff08,0 0 0 18px #a855f70a,0 0 36px #00d9ff2b;animation:signal-pulse 2.6s ease-in-out infinite}
.voice-call-icon:before,.voice-call-icon:after{content:"";position:absolute;inset:-10px;border:1px solid #00e5ff50;border-radius:50%;animation:signal-ring 3s ease-out infinite}
.voice-call-icon:after{inset:-20px;border-color:#a855f744;animation-delay:1.5s}
.voice-call-card h2{font-size:23px;letter-spacing:.025em;text-shadow:0 0 22px #00d9ff2b}
#voice-call-status{font-size:12px;letter-spacing:.04em;color:#8fb3d2}
.voice-call-actions{gap:9px;margin-top:28px}
.voice-call-actions button{min-height:42px;padding:11px 15px;border-radius:12px}
#voice-accept{background:linear-gradient(120deg,#41ffb0,#00c6d8);border:0;color:#041a19;box-shadow:0 0 22px #41ffb026}
#voice-hangup,#voice-decline{background:linear-gradient(120deg,#ff416c,#b42359);border:0;color:white;box-shadow:0 0 22px #ff416c26}
#voice-mute{background:#142840;border:1px solid #2a5878;color:#dffaff}
#voice-remote-audio{height:8px;opacity:.65}
@keyframes signal-pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 8px #00e5ff08,0 0 0 18px #a855f70a,0 0 36px #00d9ff2b}50%{transform:scale(1.035);box-shadow:0 0 0 11px #00e5ff0d,0 0 0 23px #a855f70d,0 0 48px #00d9ff45}}
@keyframes signal-ring{0%{transform:scale(.86);opacity:.85}100%{transform:scale(1.28);opacity:0}}
#voice-call-button{background:linear-gradient(110deg,#00d9ff,#6174ff);border:1px solid #8cefff;color:#06111d;font-weight:800;box-shadow:0 0 20px #00d9ff20}
#edit-group-button{border-color:#7652b9;color:#e5d7ff}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
@media(max-width:650px){.voice-call-icon{width:90px;height:90px}.voice-call-card{padding:22px 10px 16px}.voice-call-card:before{letter-spacing:.12em}.auth-card{margin:12px}}


/* Pseudos plus visibles et mémorisation de connexion */
.remember-pseudo{display:flex;align-items:center;gap:11px;margin:14px 0 18px;padding:12px 13px;border:1px solid #00e5ff38;border-radius:12px;background:linear-gradient(100deg,#00e5ff0d,#8b5cf60d);cursor:pointer}
.remember-pseudo input{width:18px;height:18px;flex:0 0 18px;accent-color:#00d9ff}
.remember-pseudo span,.remember-pseudo strong,.remember-pseudo small{display:block}
.remember-pseudo strong{font-size:12px;color:#e6faff;letter-spacing:.02em}
.remember-pseudo small{margin-top:4px;font-size:10px;color:#82a4c4;font-weight:400}
.message-meta{display:flex;align-items:center;gap:10px;margin-bottom:5px;min-height:25px}
.message-meta strong{display:inline-flex;align-items:center;max-width:min(70%,360px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 9px;border-radius:7px;border:1px solid #00e5ff45;background:linear-gradient(100deg,#00e5ff17,#8b5cf615);color:#8df2ff;font-size:13px;font-weight:850;letter-spacing:.015em;text-shadow:0 0 14px #00e5ff1a}
.message-meta time{font-size:10px;color:#7897b8;letter-spacing:.04em}
.message-content{line-height:1.55;overflow-wrap:anywhere}
.profile-name strong{font-size:14px;font-weight:850;color:#e9fbff;text-shadow:0 0 16px #00e5ff24}
.profile-name small{font-size:10px;letter-spacing:.07em;color:#69dff5}
.item-label{font-size:13px;font-weight:700;letter-spacing:.005em}
.member-item .item-label{font-weight:750;color:#d6e9ff}
.voice-call-card h2{overflow-wrap:anywhere;max-width:100%}
@media(max-width:650px){.message-meta strong{font-size:12px;max-width:65%}.remember-pseudo{padding:10px}}

/* ChatFR 3.1.6 — affichage fiable des appels audio/vidéo */
#video-call-button{white-space:nowrap}
#voice-local-video,#voice-remote-video{display:none;width:100%;max-height:42vh;object-fit:cover;background:#08090c;border-radius:12px;margin-top:10px}
#voice-local-video.visible,#voice-remote-video.visible{display:block}
.voice-dialog[open]{z-index:1000}

/* ChatFR 3.2.0 — refonte ergonomique : hiérarchie claire, surfaces douces, actions lisibles */
:root{
  --bg:#080e1b;--sidebar:#0c1526;--deep:#070c16;--panel:#111e33;
  --text:#edf5ff;--muted:#9aacc5;--hover:#1a2b43;--border:#20334d;
  --accent:#65d9ff;--accent-soft:#65d9ff1c;--green:#4ce0a0;--red:#ff6685;
  --glass:rgba(12,22,39,.92)
}
body{font-size:14px;line-height:1.45;background:radial-gradient(ellipse at 72% -12%,#183b63 0,transparent 42%),radial-gradient(ellipse at 0 100%,#29143f 0,transparent 34%),var(--bg)}
body:before{opacity:.045;background-size:44px 44px}
button,input,textarea,select{font-family:inherit}
button{min-height:34px}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #65d9ffb8;outline-offset:2px}
.primary,.secondary,.send-button,.danger-button{font-size:12px;font-weight:750;border-radius:10px;min-height:38px;padding:9px 13px}
.primary{background:linear-gradient(120deg,#65d9ff,#8e9bff);color:#071323;box-shadow:0 5px 18px #65d9ff16}
.primary:hover{background:linear-gradient(120deg,#91e6ff,#abb4ff)}
.secondary{background:#132239;border:1px solid #2b4565;color:#e4f2ff}
.secondary:hover{background:#1c314d;border-color:#4c729c}
input,textarea,select{border:1px solid #263c58;border-radius:10px;background:#0a1424;padding:11px 12px}
input::placeholder,textarea::placeholder{color:#7187a4}
.auth-screen{background:radial-gradient(ellipse at 50% 0,#244a77 0,transparent 45%),radial-gradient(ellipse at 0 100%,#34204e 0,transparent 40%),#080e1b}
.auth-card{width:min(100%,460px);padding:36px;border:1px solid #8edfff24;border-radius:24px;background:linear-gradient(150deg,#14233af5,#0b1424f7);box-shadow:0 28px 90px #0007,0 0 45px #65d9ff09}
.brand-mark{width:62px;height:62px;border-radius:20px;background:linear-gradient(145deg,#65d9ff,#7c8cff 72%,#bb8aff);color:#081222;box-shadow:0 10px 34px #65d9ff28}
.auth-card h1{font-size:27px;letter-spacing:-.035em}
.auth-card>p{font-size:13px;color:#a9bdd5;line-height:1.6}
.auth-tabs{padding:5px;border:1px solid #243954;border-radius:12px;background:#081321}
.tab{min-height:40px;border-radius:9px;font-weight:700}.tab.active{background:#1b2c45;color:#f2f8ff;box-shadow:0 2px 8px #0003}
label{font-size:11px;letter-spacing:.07em;color:#c2d4e9}
.remember-pseudo{border-color:#294765;background:#101e32}
.remember-pseudo strong{color:#edf7ff}.remember-pseudo small{color:#9aafca}
.app{background:linear-gradient(135deg,#0b1322,#0a101d)}
.server-rail{background:#070d18;border-right:1px solid #182a41;padding-top:16px;gap:12px}
.rail-logo,.rail-add{width:44px;height:44px;border:1px solid #263d59;background:#101c2e;color:#c8e5ff;border-radius:15px}
.rail-logo.active,.rail-logo:hover,.rail-add:hover{background:linear-gradient(145deg,#65d9ff,#7187ff);color:#071323;border-color:transparent;border-radius:15px}
.sidebar{background:linear-gradient(180deg,#0e192b,#0a1322);border-right:1px solid #20334d}
.sidebar-header{height:72px;flex-basis:72px;padding:0 18px;background:transparent;border-bottom:1px solid #1e3048;box-shadow:none}
.sidebar-header strong{font-size:18px;letter-spacing:-.03em}.sidebar-header small{font-size:9px;color:#8da5c1;letter-spacing:.13em}
.section-title{padding:20px 14px 8px 16px;margin:0;color:#91a8c5;font-size:10px;letter-spacing:.12em}
.channel-list,.member-list{padding:0 6px}
.channel-item,.dm-item,.group-item,.member-item{min-height:39px;padding:7px 10px;margin:2px 0;width:100%;border-radius:10px;color:#a9bad1}
.channel-item:hover,.dm-item:hover,.group-item:hover,.member-item:hover{background:#172941;border-color:#263e5b;transform:none}
.channel-item.active,.dm-item.active,.group-item.active{background:linear-gradient(100deg,#65d9ff19,#8e86ff17);border-color:#65d9ff2e;box-shadow:inset 3px 0 #65d9ff;color:#f2f8ff}
.item-label{font-size:13px;font-weight:650}.channel-symbol{font-size:20px;color:#7ea3c7}
.profile{min-height:78px;padding:12px;background:#091220;border-top:1px solid #1e3048}
.profile-name strong{font-size:13px;color:#f0f7ff;text-shadow:none}.profile-name small{font-size:11px;letter-spacing:0;color:#8fa8c6}
.avatar{box-shadow:none;border:1px solid #6cdfff35;color:#071323}
.chat{position:relative;background:radial-gradient(ellipse at 90% 0,#18365820,transparent 46%),#0b1321}
.chat-header{height:74px;flex-basis:74px;gap:10px;padding:0 22px;background:#0d1728eF;border-bottom:1px solid #20334d;box-shadow:none}
.header-hash{font-size:27px;color:#65d9ff;text-shadow:none}.header-title h2{font-size:16px;letter-spacing:-.02em}.header-title small{font-size:11px;color:#92a9c5}
.chat-header .header-spacer{min-width:8px}
.chat-header .secondary{white-space:nowrap}
.messages{gap:8px;padding:24px max(18px,calc((100% - 900px)/2));scrollbar-color:#2a4360 transparent}
.empty-state{max-width:520px;margin:auto 0;padding:26px 0}
.empty-icon{width:62px;height:62px;border-radius:19px;background:linear-gradient(145deg,#65d9ff,#8c88ff);color:#081323;box-shadow:0 8px 30px #65d9ff20}
.empty-state h2{font-size:26px;letter-spacing:-.035em}.empty-state p{font-size:14px;line-height:1.65;color:#9aafc9}
.message{padding:10px 12px;margin:0;border:1px solid transparent;border-radius:12px;gap:12px}
.message:hover{background:#132138a6;border-color:#243954}
.message-avatar{width:38px;height:38px;flex-basis:38px;border-radius:13px;border-color:#2a4869}
.message-meta{gap:8px;margin:0 0 5px}.message-meta strong{font-size:13px;padding:2px 0;border:0;background:none;text-shadow:none;color:#8ce5ff;max-width:70%}
.message-meta time{color:#7f96b2;font-size:10px}
.message-content{font-size:14px;line-height:1.65;color:#e0eafa}
.composer{margin:0 auto;width:calc(100% - 44px);max-width:900px;padding:9px 10px 9px 16px;gap:12px;border-radius:15px;background:#101d30;border:1px solid #2a4260;box-shadow:0 10px 32px #0002}
.composer textarea{min-height:38px;padding:8px 0;color:#f0f7ff;font-size:14px}
.composer:focus-within{border-color:#65d9ff9c;box-shadow:0 0 0 3px #65d9ff13,0 10px 35px #0003}
.send-button{width:40px;height:40px;flex-basis:40px;border-radius:12px;background:linear-gradient(145deg,#65d9ff,#8994ff);color:#071323;font-size:17px}
.composer-hint{max-width:900px;width:calc(100% - 50px);margin:8px auto 14px;color:#7189a7;font-size:11px}
.toast{background:#12233a;border:1px solid #355576;color:#eff8ff;border-radius:12px}
.dialog,.settings-dialog{background:linear-gradient(145deg,#14233a,#0b1424);border:1px solid #2b496b;border-radius:20px}
.settings-layout{grid-template-columns:205px minmax(0,1fr)}
.settings-nav{padding:24px 12px;background:#0a1424;border-right:1px solid #20334d}
.settings-nav h2{font-size:19px;letter-spacing:-.03em}.settings-tab{padding:11px 12px;font-size:12px}.settings-tab.active,.settings-tab:hover{background:#172a43;border-color:#2d4a69;color:#eff8ff}
.settings-content{padding:30px 32px}.settings-page h2{font-size:24px;letter-spacing:-.03em}
.settings-profile{background:#122239;border:1px solid #253e5b;border-radius:14px}
.setting-row{padding:17px 0;border-color:#21354f}.setting-row strong{font-size:13px}.setting-row small{font-size:11px;line-height:1.5;color:#96abc5}
.danger-button{background:#3a1727;border-color:#713049;color:#ffdce5}
.voice-dialog{background:radial-gradient(ellipse at 50% 15%,#1b4663,#0d1b30 54%,#091322);border-color:#37658a}
#voice-call-button{background:linear-gradient(120deg,#65d9ff,#8994ff);color:#071323;border:0;box-shadow:none}
#video-call-button{background:#172b44;color:#dff6ff;border-color:#376080}
@media(max-width:850px){.sidebar{width:238px;flex-basis:238px}.chat-header{padding:0 14px}.messages{padding-left:14px;padding-right:14px}}
@media(max-width:650px){
 .sidebar{width:min(86vw,320px);background:#0b1526;border-right:1px solid #35516f}
 .sidebar.open{box-shadow:18px 0 50px #0009}
 .chat-header{height:64px;min-height:64px;flex-basis:64px;padding:0 10px;gap:7px}
 .header-title h2{font-size:14px}.header-title small{font-size:10px}
 .chat-header .secondary{min-height:34px;padding:7px 9px;font-size:11px}
 #rename-channel{display:none}
 .messages{padding:14px 8px;gap:5px}.message{padding:9px 7px;gap:9px}.message-avatar{width:34px;height:34px;flex-basis:34px}
 .message-content{font-size:13px;line-height:1.6}
 .composer{width:calc(100% - 16px);padding:6px 7px 6px 12px;gap:8px}.composer textarea{font-size:14px}
 .composer-hint{width:calc(100% - 24px);font-size:10px;margin:7px 12px 10px}
 .auth-card{padding:28px 22px;border-radius:20px}.auth-card h1{font-size:24px}
 .settings-dialog{height:92dvh;width:96vw}.settings-layout{grid-template-columns:112px minmax(0,1fr)}.settings-nav{padding:16px 6px}.settings-nav h2{font-size:15px}.settings-tab{font-size:10px;padding:10px 6px}.settings-content{padding:18px 12px}.settings-page h2{font-size:20px}
 #voice-call-button,#video-call-button{font-size:10px;padding:6px 8px}
}
@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* ChatFR 3.3 — recherche rapide, favoris et actions de message */
.utility-button{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.utility-dialog{width:min(92vw,650px);max-height:min(82vh,760px);padding:0;overflow:hidden;color:var(--text);background:linear-gradient(150deg,#13243b,#0a1424);border:1px solid #355675;border-radius:20px;box-shadow:0 30px 100px #000a}
.utility-dialog::backdrop{background:#030812c9;backdrop-filter:blur(7px)}
.utility-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px 14px;border-bottom:1px solid var(--border)}
.utility-dialog-head h2{margin:0;font-size:22px;letter-spacing:-.035em}
.eyebrow{margin:0 0 5px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.16em}
.quick-search-input{display:block;width:calc(100% - 40px);margin:18px 20px 8px;font-size:15px;padding:14px 16px}
.utility-help{margin:0 22px 12px;color:var(--muted);font-size:11px}
.quick-search-results,.saved-list{padding:6px 14px 16px;max-height:52vh;overflow:auto}
.search-empty{padding:18px;text-align:center;color:var(--muted);font-size:13px;line-height:1.6}
.search-result{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.search-result:hover,.search-result:focus-visible{background:#1b304b;border-color:#355675;outline:none}
.search-result-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#65d9ff16;color:#83e8ff;font-size:18px;font-weight:800}
.search-result-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.search-result-copy strong{font-size:13px;overflow-wrap:anywhere}
.search-result-copy small,.search-result-arrow{font-size:11px;color:var(--muted)}
.search-result-arrow{font-size:17px}
.message-main{min-width:0;position:relative}
.message-actions{display:flex;gap:6px;align-items:center;min-height:24px;margin-top:5px;opacity:.48;transition:opacity .15s ease}
.message:hover .message-actions,.message:focus-within .message-actions{opacity:1}
.message-action{border:1px solid #35516f;background:#101e31;color:#a9c3df;border-radius:7px;padding:3px 8px;min-height:25px;font-size:10px;cursor:pointer}
.message-action:hover{border-color:var(--accent);color:#eafaff;background:#18314b}
.message.search-hit{background:#65d9ff20;border-color:#65d9ff80;box-shadow:0 0 0 3px #65d9ff18}
.saved-count{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:6px;padding:0 7px;border-radius:99px;background:#65d9ff1c;color:#8ce8ff;font-size:12px;vertical-align:middle}
.saved-list{padding-top:12px}
.saved-card{padding:14px;margin-bottom:10px;border:1px solid var(--border);border-radius:13px;background:#0b1728}
.saved-card-heading,.saved-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}
.saved-card-heading strong{font-size:12px;color:#8ce5ff}.saved-card-heading span,.saved-card-footer small{font-size:10px;color:var(--muted)}
.saved-card p{margin:10px 0 12px;font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.saved-card-footer{padding-top:9px;border-top:1px solid #20334d}
@media(max-width:650px){.utility-button{padding:6px 8px!important;min-width:34px;justify-content:center}.utility-button span{display:none}.utility-dialog{width:96vw;border-radius:16px}.utility-dialog-head{padding:17px 16px 12px}.utility-dialog-head h2{font-size:19px}.quick-search-input{width:calc(100% - 24px);margin:14px 12px 8px}.utility-help{margin:0 14px 8px}.quick-search-results,.saved-list{padding:5px 8px 12px;max-height:55vh}.message-actions{opacity:.8}}


/* ChatFR 3.4 — outils de confort */
.emoji-quickbar{display:flex;align-items:center;gap:7px;padding:5px 14px 8px;flex-wrap:wrap}
.emoji-quickbar>span{font-size:11px;color:var(--muted);margin-right:3px}
.emoji-quickbar button{border:1px solid var(--border);background:var(--surface, #101b2b);border-radius:9px;padding:4px 7px;cursor:pointer;transition:transform .15s,border-color .15s}
.emoji-quickbar button:hover{transform:translateY(-2px);border-color:var(--accent)}
#focus-mode-button.active{border-color:var(--accent);color:var(--accent)}
body.chatfr-focus-mode #sidebar,body.chatfr-focus-mode #server-rail{display:none!important}
body.chatfr-focus-mode .app-layout,body.chatfr-focus-mode #app{grid-template-columns:minmax(0,1fr)!important}
body.chatfr-focus-mode .chat{width:100%;max-width:1100px;margin:0 auto}
.message-actions{flex-wrap:wrap}
@media(max-width:650px){.emoji-quickbar{padding:4px 9px 7px;gap:5px}.emoji-quickbar>span{width:100%}.emoji-quickbar button{padding:4px 6px}}


/* ChatFR 3.5 — réactions, export et navigation des messages */
.message-reactions{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.reaction-chip{border:1px solid var(--border);background:rgba(100,130,170,.09);border-radius:999px;padding:3px 8px;min-width:32px;font-size:12px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}
.reaction-chip:hover{transform:translateY(-1px);border-color:var(--accent)}
.reaction-chip.selected{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.jump-latest{position:absolute;bottom:94px;left:50%;transform:translateX(-50%);z-index:4;border:1px solid var(--border);border-radius:999px;padding:9px 15px;background:var(--panel,#172338);color:var(--text,#f3f6fc);box-shadow:0 8px 30px #0005;cursor:pointer}
.jump-latest:hover{border-color:var(--accent)}


/* ChatFR 3.6 — Radar vivant */
.radar-dialog{width:min(760px,94vw)}
.radar-live-dot{display:inline-block;width:8px;height:8px;background:#52e0ae;border-radius:50%;margin-left:6px;box-shadow:0 0 12px #52e0ae80;vertical-align:middle}
.radar-content{padding:8px 18px 16px;max-height:62vh;overflow:auto}
.radar-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0 18px}
.radar-metric{padding:13px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,rgba(92,130,190,.12),rgba(92,130,190,.025));min-width:0}
.radar-metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.radar-metric-top strong{font-size:23px;letter-spacing:-.04em}
.radar-metric-icon{font-size:17px;color:var(--accent)}
.radar-metric-label{display:block;font-size:12px;font-weight:700;margin-top:9px}
.radar-metric small{display:block;color:var(--muted);font-size:10px;margin-top:4px;line-height:1.4}
.radar-sections{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.radar-section{border:1px solid var(--border);border-radius:14px;padding:14px;min-width:0}
.radar-section h3{font-size:13px;margin:0 0 12px}
.radar-section:last-child{grid-column:1/-1}
.radar-word-cloud{display:flex;flex-wrap:wrap;gap:7px}
.radar-word{display:inline-flex;padding:6px 9px;border-radius:8px;background:rgba(95,180,255,.1);border:1px solid rgba(95,180,255,.18);font-size:11px}
.radar-word-1{font-size:14px;color:#9ce8ff}.radar-word-2{color:#c0b5ff}.radar-word-3{color:#b0f0d3}
.radar-person{display:grid;grid-template-columns:minmax(60px,.8fr) minmax(50px,1.3fr) auto;align-items:center;gap:8px;margin:12px 0;font-size:11px}
.radar-person>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.radar-track{height:6px;background:rgba(130,150,180,.15);border-radius:99px;overflow:hidden}
.radar-track span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#65d9ff);border-radius:99px}
.radar-person small{color:var(--muted);font-size:10px}
.radar-signal{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--border);cursor:pointer}
.radar-signal:hover .radar-signal-copy strong{color:var(--accent)}
.radar-signal-icon{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:9px;background:rgba(95,180,255,.12);color:var(--accent);font-weight:800}
.radar-signal-copy{min-width:0}.radar-signal-copy strong{font-size:11px}.radar-signal-copy p{font-size:12px;line-height:1.5;margin:4px 0 0;overflow-wrap:anywhere;color:var(--muted)}
.radar-muted,.radar-disclaimer{font-size:11px;line-height:1.55;color:var(--muted)}
.radar-disclaimer{border-top:1px solid var(--border);padding-top:12px;margin:14px 0 0}
.radar-empty{padding:38px 16px;text-align:center;display:grid;justify-items:center;gap:10px}
.radar-empty>span{font-size:38px;color:var(--accent)}.radar-empty p{margin:0;color:var(--muted);font-size:12px}
.radar-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px 16px;border-top:1px solid var(--border);font-size:10px;color:var(--muted)}
@media(max-width:620px){.radar-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.radar-sections{grid-template-columns:1fr}.radar-section:last-child{grid-column:auto}.radar-content{padding:8px 12px 14px}.radar-footer{align-items:flex-start;flex-direction:column}}


/* ChatFR 3.7 — Cabine à chaos, un mini laboratoire ludique */
.chaos-dialog{width:min(700px,94vw)}
.chaos-tabs{display:flex;flex-wrap:wrap;gap:7px;padding:12px 18px}
.chaos-tab{border:1px solid var(--border);background:rgba(110,135,170,.08);border-radius:999px;padding:8px 11px;font-size:11px;cursor:pointer;color:var(--text,#eef4ff)}
.chaos-tab.active{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}
.chaos-stage{margin:6px 18px 16px;min-height:220px;border:1px solid var(--border);border-radius:20px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 0%,rgba(110,95,255,.18),transparent 62%),linear-gradient(145deg,rgba(65,190,255,.07),rgba(120,80,255,.05))}
.chaos-stage:before,.chaos-stage:after{content:"✦";position:absolute;color:color-mix(in srgb,var(--accent) 55%,transparent);font-size:25px;animation:chaos-twinkle 3s ease-in-out infinite}
.chaos-stage:before{top:18px;left:22px}.chaos-stage:after{bottom:15px;right:24px;animation-delay:1.3s}
.chaos-orb{display:grid;place-items:center;width:62px;height:62px;border-radius:21px;font-size:30px;background:linear-gradient(135deg,rgba(100,130,255,.23),rgba(90,220,255,.13));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:0 0 35px color-mix(in srgb,var(--accent) 18%,transparent);animation:chaos-float 3s ease-in-out infinite}
.chaos-result-tag{font-size:9px;letter-spacing:.13em;color:var(--accent);font-weight:800;margin-top:18px}
.chaos-result-text{max-width:480px;font-size:clamp(17px,3vw,22px);line-height:1.5;font-weight:750;letter-spacing:-.02em;margin:12px 0}
.chaos-dice-decoration{font-size:13px;letter-spacing:.6em;color:var(--muted)}
.chaos-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 16px}
.chaos-actions button{flex:1;min-width:125px}
.chaos-footnote{font-size:10px;color:var(--muted);padding:0 18px 18px;margin:0}
@keyframes chaos-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@keyframes chaos-twinkle{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}
@media(prefers-reduced-motion:reduce){.chaos-orb,.chaos-stage:before,.chaos-stage:after{animation:none}}
@media(max-width:600px){.chaos-stage{margin:5px 10px 14px;padding:20px 15px;min-height:210px}.chaos-tabs{padding:10px;gap:5px}.chaos-tab{padding:7px 9px}.chaos-actions{padding:0 10px 14px}.chaos-actions button{min-width:110px}}


/* ChatFR 3.8 — Club des légendes */
.legends-dialog{width:min(94vw,760px);max-height:88vh;overflow:auto}
.legends-intro{padding:0 22px;margin:13px 0 16px;line-height:1.55}
.legend-daily-card,.legend-bingo-section,.legend-prompt-card{margin:0 18px 16px;padding:17px;border:1px solid #355675;border-radius:16px;background:linear-gradient(135deg,#132b43,#10192c)}
.legend-card-top,.legend-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.legend-pill{display:inline-block;border:1px solid #65d9ff55;border-radius:999px;padding:4px 8px;color:#8ce8ff;font-size:9px;font-weight:850;letter-spacing:.12em}
.legend-date{font-size:11px;color:var(--muted);text-transform:capitalize}
.legend-daily-card h3,.legend-prompt-card h3,.legend-section-heading h3{margin:12px 0 6px;font-size:17px;letter-spacing:-.02em}
.legend-daily-card>p,.legend-prompt-card p,.legend-section-heading p{margin:5px 0 13px;font-size:13px;line-height:1.55;color:#c2d2e5}
.legend-daily-card button{width:100%;margin-top:5px}
.legend-daily-card button.legend-done{background:#1d5a4d;color:#c7ffeb;border-color:#3cae8b}
.legend-status{font-size:11px!important;margin-bottom:0!important;color:var(--muted)!important;text-align:center}
.legend-section-heading{align-items:flex-start}.legend-section-heading h3{margin:0}.legend-section-heading p{font-size:11px;margin:5px 0 0}.legend-section-heading>strong{white-space:nowrap;color:#8ce8ff;font-size:12px}
.legend-bingo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px}
.legend-bingo-cell{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:10px;min-height:88px;padding:10px;border:1px solid #344b68;border-radius:11px;background:#0a1727;color:var(--text);font-size:11px;line-height:1.35;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,background .15s}
.legend-bingo-cell:hover{transform:translateY(-2px);border-color:var(--accent)}.legend-bingo-cell>span:first-child{font-size:15px;color:#8ce8ff}.legend-bingo-cell.checked{background:#12463f;border-color:#36b78e;color:#d7fff0}.legend-bingo-cell.checked>span:first-child{color:#7fffc6}
.legend-reward{margin-top:12px;padding:10px;border-radius:10px;background:#65d9ff0c;color:#b7d7ef;font-size:11px;line-height:1.5}
.legend-prompt-card{display:grid;grid-template-columns:1fr;gap:10px}.legend-prompt-card h3{margin-top:10px}.legend-prompt-card p{margin-bottom:0}.legend-prompt-actions{display:flex;flex-wrap:wrap;gap:7px}.legend-prompt-actions button{flex:1;min-width:100px}
@media(max-width:600px){.legends-dialog{width:96vw}.legends-intro{padding:0 13px}.legend-daily-card,.legend-bingo-section,.legend-prompt-card{margin-left:10px;margin-right:10px;padding:12px}.legend-bingo-grid{gap:5px}.legend-bingo-cell{min-height:83px;padding:7px;font-size:10px}.legend-prompt-actions button{min-width:85px;padding:8px}}
