:root{
  color-scheme:dark;
  --bg:#071311;--surface:#0b1a18;--surface-2:#102420;--surface-3:#17312c;--line:rgba(231,244,239,.10);
  --text:#f4f8f6;--muted:#8fa7a0;--accent:#23877e;--accent-hover:#2a9b90;--danger:#e75858;--success:#57c596;
  --radius:var(--bonjour-panel-radius,18px);--shadow:0 24px 70px rgba(0,0,0,.32);
  /* Agenda / formulaires : métriques communes, utilisées par la Web App au lieu d'overrides écran par écran. */
  --bonjour-agenda-gutter:12px;--bonjour-agenda-pad-x:14px;--bonjour-agenda-radius:18px;
  --bonjour-agenda-control-h:42px;--bonjour-agenda-field-size:.82rem;--bonjour-agenda-label-size:.72rem;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-width:100%;min-height:100%;background:var(--bg);color:var(--text)}body{min-height:100vh}button,input,select{font:inherit;color:inherit}.hidden{display:none!important}.app-shell,.view{min-height:100vh}.home-view,.regions-view{display:grid;place-items:center;padding:34px;background:radial-gradient(circle at 50% 0%,#0d2420 0,#071311 52%)}
.home-card{width:min(840px,100%)}.brand-mark{display:flex;align-items:flex-end;gap:5px;height:32px;margin-bottom:30px}.brand-mark span{width:8px;border-radius:99px;background:var(--accent);display:block}.brand-mark span:nth-child(1){height:16px}.brand-mark span:nth-child(2){height:30px}.brand-mark span:nth-child(3){height:22px}h1{font-size:clamp(38px,5vw,58px);margin:0 0 10px;letter-spacing:-.04em}.lead{color:var(--muted);font-size:19px;margin:0 0 42px}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.home-actions .primary-action{grid-column:1/-1}.action-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:24px;display:flex;align-items:center;gap:18px;text-align:left;cursor:pointer;transition:.18s ease;min-height:112px;box-shadow:0 8px 30px rgba(0,0,0,.12)}.action-card:hover{transform:translateY(-2px);background:var(--surface-2);border-color:rgba(255,255,255,.16)}.primary-action{background:linear-gradient(135deg,#0b3f3c,#16645e);border-color:rgba(99,189,180,.18)}.primary-action:hover{filter:brightness(1.05)}.action-icon{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:28px;flex:0 0 auto}.action-card strong,.action-card small{display:block}.action-card strong{font-size:17px;margin-bottom:5px}.action-card small{color:#c5cad5}.primary-action small{color:rgba(255,255,255,.82)}
.regions-card{width:min(900px,100%);background:rgba(23,26,33,.88);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow)}.page-head{display:flex;gap:24px;align-items:flex-start}.page-head h2{font-size:32px;margin:7px 0 0;letter-spacing:-.03em}.regions-help{margin:12px 0 24px 86px;color:var(--muted)}.regions-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.region-row{border:1px solid var(--line);background:#0a1815;border-radius:14px;padding:16px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.region-row:hover{background:var(--surface-2)}.region-row strong,.region-row small{display:block}.region-row small{color:var(--muted);margin-top:4px}.status-pill{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:6px 9px}.status-pill.open{background:rgba(87,197,150,.13);color:#7fd8b3}.status-pill.closed{background:rgba(231,88,88,.13);color:#ff8989}.loading-list,.empty-list{grid-column:1/-1;padding:30px;text-align:center;color:var(--muted)}
.prejoin-view{display:grid;place-items:center;padding:34px;background:#081613}.prejoin-layout{width:min(1040px,100%);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:28px}.preview-card{position:relative;background:#090b0f;border-radius:24px;overflow:hidden;aspect-ratio:16/10;box-shadow:var(--shadow);display:grid;place-items:center}.preview-card video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.preview-controls{position:absolute;bottom:20px;display:flex;gap:10px}.round-control{width:48px;height:48px;border:0;border-radius:50%;background:rgba(24,27,34,.88);cursor:pointer;box-shadow:0 5px 20px rgba(0,0,0,.25)}.round-control.off{background:var(--danger)}.join-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow);align-self:center}.quiet-link{border:0;background:none;color:var(--muted);padding:0;margin-bottom:28px;cursor:pointer}.eyebrow{color:var(--bonjour-gold,#ffcb48);font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.join-card h2{font-size:28px;letter-spacing:-.025em;margin:8px 0 22px}.join-card label,.field-label{display:block;font-size:13px;color:#c8cdd7;margin:16px 0 0}.join-card input{width:100%;margin-top:8px;background:#091714;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:14px 15px;font-size:16px}.join-card input::placeholder{color:#6e7583}.optional{color:#757d8b;font-weight:400}.primary-button{width:100%;border:0;border-radius:12px;padding:14px 18px;background:var(--bonjour-gold-gradient);color:var(--bonjour-green-deep);font-weight:600;cursor:pointer;margin-top:24px}.primary-button:hover:not(:disabled){filter:brightness(1.035)}.primary-button:disabled{opacity:.45;cursor:not-allowed}.hint,.room-status{margin-top:12px;padding:11px 12px;border-radius:11px;background:rgba(35,135,126,.10);color:#b6ddd8;font-size:13px;display:flex;justify-content:space-between;gap:12px}.room-status.closed{background:rgba(231,88,88,.10);color:#ffaaaa}.error-message{min-height:18px;color:#ff8a86;font-size:13px;margin:12px 0 0;text-align:center}.avatar-choice-wrap{margin-top:15px}.avatar-choices{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}.avatar-choice{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.avatar-choice.selected{border-color:#fff;box-shadow:0 0 0 3px rgba(35,135,126,.35)}
.avatar{border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;user-select:none;background:#3b4352}.avatar-sky{background:linear-gradient(145deg,#6c91ff,#3d5bb8)}.avatar-violet{background:linear-gradient(145deg,#9c78ff,#6546b8)}.avatar-coral{background:linear-gradient(145deg,#ff8a74,#bd4f43)}.avatar-mint{background:linear-gradient(145deg,#64cfa5,#308a68)}.avatar-amber{background:linear-gradient(145deg,#71a67f,#355b45)}.avatar-slate{background:linear-gradient(145deg,#7d8797,#434b59)}.avatar-rose{background:linear-gradient(145deg,#e476a5,#a53e6b)}.avatar-ocean{background:linear-gradient(145deg,#4eb6c8,#237487)}.avatar-xl{width:118px;height:118px;font-size:36px}.avatar-small{width:30px!important;height:30px!important;font-size:10px!important;flex:0 0 auto}
.room-view{display:flex;flex-direction:column;min-height:100vh;background:#081512}.room-header{height:68px;flex:0 0 68px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);background:#0a1a17}.room-identity{display:flex;align-items:center;gap:11px;min-width:0}.room-identity strong,.room-identity small{display:block}.room-identity strong{font-size:15px}.room-identity small{font-size:12px;color:var(--muted);margin-top:2px}.brand-dot{width:13px;height:13px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(35,135,126,.11)}.header-actions{display:flex;align-items:center;gap:8px}.secondary-button,.icon-text-button{border:1px solid var(--bonjour-gold-border,rgba(255,205,79,.9));background:var(--bonjour-deep-gradient,linear-gradient(155deg,#12473e,#052b25));color:var(--bonjour-gold,#ffcb48);border-radius:var(--bonjour-control-radius,12px);min-height:38px;padding:0 12px;cursor:pointer}.icon-text-button{display:flex;align-items:center;gap:7px}.secondary-button:hover,.icon-text-button:hover{background:var(--surface-3)}.badge,.mini-badge{min-width:18px;height:18px;border-radius:99px;background:var(--danger);display:inline-grid;place-items:center;font-size:10px;padding:0 5px}.room-body{flex:1;min-height:0;display:flex}.stage-wrap{position:relative;flex:1;min-width:0;padding:14px;overflow:hidden;display:flex;flex-direction:column;gap:10px}.regional-intro{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;padding:2px 4px}.regional-intro strong{color:#d9deea}.video-grid{flex:1;min-height:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));grid-auto-rows:minmax(220px,1fr);align-content:center}.video-grid:has(.video-tile:nth-child(2)){grid-template-columns:1fr 1fr}.video-tile{position:relative;min-height:220px;background:#1a1e26;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.06);display:grid;place-items:center}.video-tile video{width:100%;height:100%;object-fit:cover;background:#0a0c10}.video-tile.local video{transform:scaleX(-1)}.video-tile .avatar{width:96px;height:96px;font-size:30px}.tile-footer{position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.name-pill{background:rgba(10,12,16,.7);backdrop-filter:blur(10px);border-radius:9px;padding:6px 9px;font-size:12px;max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-pill{background:rgba(10,12,16,.7);border-radius:9px;padding:5px 7px;font-size:12px}.empty-stage{grid-column:1/-1;display:grid;place-items:center;align-content:center;gap:7px;color:var(--muted);border:1px dashed var(--line);border-radius:18px;min-height:240px}.empty-stage strong{color:#dfe3ec;font-size:18px}.audience-strip{flex:0 0 auto;border:1px solid var(--line);background:#0b1c19;border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:14px}.audience-title{min-width:108px}.audience-title strong,.audience-title span{display:block}.audience-title strong{font-size:12px}.audience-title span{font-size:11px;color:var(--muted);margin-top:2px}.audience-avatars{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden}.audience-person{position:relative;flex:0 0 auto}.hand-dot{position:absolute;right:-4px;top:-5px;font-size:11px;background:#fff;border-radius:50%;width:17px;height:17px;display:grid;place-items:center}.audience-more{font-size:11px;color:var(--muted);padding-left:4px}.toast{position:absolute;left:50%;bottom:90px;transform:translateX(-50%);background:#17312c;border:1px solid var(--line);box-shadow:var(--shadow);padding:10px 14px;border-radius:10px;font-size:13px;z-index:20}
.side-panel{width:370px;flex:0 0 370px;border-left:1px solid var(--line);background:#0b1c19;display:flex;flex-direction:column}.side-tabs{min-height:58px;display:flex;align-items:center;padding:0 10px;border-bottom:1px solid var(--line);gap:4px}.side-tab{border:0;background:none;color:var(--muted);padding:10px 8px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px}.side-tab.active{color:var(--text);background:var(--surface-2)}.panel-close{margin-left:auto;width:34px;height:34px;border:0;background:none;color:var(--muted);font-size:24px;cursor:pointer}.panel-content{flex:1;min-height:0;overflow:auto}.participants-list,.requests-list{padding:10px}.participant-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:11px}.participant-row:hover{background:var(--surface-2)}.participant-row.is-reconnecting{opacity:.68}.participant-row.is-reconnecting .participant-media{color:#d9b86c;animation:reconnectPulse 1.2s ease-in-out infinite}@keyframes reconnectPulse{0%,100%{opacity:.55}50%{opacity:1}}.participant-row>.avatar{width:36px;height:36px;font-size:12px}.participant-meta{min-width:0}.participant-meta strong,.participant-meta small{display:block}.participant-meta strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participant-meta small{font-size:11px;color:var(--muted);margin-top:2px}.participant-media{font-size:11px;color:var(--muted)}.role-chip{margin-left:6px;color:#a5d4ce;font-size:9px;text-transform:uppercase;font-weight:700;letter-spacing:.04em}.row-actions{grid-column:2/4;display:flex;gap:6px;flex-wrap:wrap}.row-actions button,.row-actions select,.request-row button{border:1px solid var(--line);background:#17362f;border-radius:8px;padding:7px 8px;font-size:11px;cursor:pointer}.row-actions .danger-lite{color:#ffaaaa}.request-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px;border-bottom:1px solid var(--line)}.request-row>.avatar{width:36px;height:36px;font-size:12px}.request-row strong,.request-row small{display:block}.request-row strong{font-size:13px}.request-row small{font-size:11px;color:var(--muted);margin-top:3px}.request-row button{background:var(--accent);border-color:transparent;font-weight:700}.empty-list{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}.chat-panel{display:flex;flex-direction:column;overflow:hidden}.messages{flex:1;overflow:auto;padding:14px}.message{display:flex;gap:9px;margin-bottom:15px}.message-content{min-width:0;flex:1}.message-head{display:flex;gap:7px;align-items:baseline;margin-bottom:4px}.message-head strong{font-size:12px}.message-head time{font-size:10px;color:#737b89}.message-delete{margin-left:auto;border:0;background:none;color:#8d95a4;font-size:10px;cursor:pointer}.message-delete:hover{color:#ff9c9c}.message p{margin:0;color:#d8dce5;font-size:13px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}.chat-form input{min-width:0;flex:1;background:#081411;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:11px 12px}.chat-form button{width:42px;border:0;border-radius:10px;background:var(--accent);cursor:pointer}
.control-bar{height:82px;flex:0 0 82px;border-top:1px solid var(--line);background:#0a1a17;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 18px;gap:14px}.control-group{display:flex;gap:6px}.center-controls{justify-content:center}.right-controls{justify-content:flex-end}.control-button{min-width:72px;border:0;background:transparent;border-radius:11px;color:#d9dde6;padding:8px 9px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px}.control-button:hover{background:var(--surface-2)}.control-button.off .control-icon{background:var(--danger)}.control-button.active-hand .control-icon{background:#d79f3e}.control-icon{width:32px;height:28px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;font-size:14px}.muted-controls{opacity:.45}.leave-button{border:0;background:var(--danger);border-radius:10px;padding:11px 18px;font-weight:700;cursor:pointer}.leave-button:hover{filter:brightness(1.08)}
@media(max-width:900px){.regions-list{grid-template-columns:1fr}.regions-help{margin-left:0}.prejoin-layout{grid-template-columns:1fr}.prejoin-view{padding:18px}.preview-card{aspect-ratio:16/10}.join-card{padding:22px}.room-header{padding:0 10px}.secondary-button{display:none}.side-panel{position:absolute;right:0;top:68px;bottom:82px;z-index:30;width:min(390px,100%);box-shadow:-20px 0 40px rgba(0,0,0,.25)}.control-bar{padding:0 8px;grid-template-columns:auto 1fr auto}.control-button{min-width:58px}.center-controls #shareBtn{display:none}.desktop-only{display:none}.stage-wrap{padding:8px}.video-grid,.video-grid:has(.video-tile:nth-child(2)){grid-template-columns:1fr}.video-grid{overflow:auto}.video-tile{min-height:260px}.room-identity small{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:560px){.home-view,.regions-view{padding:20px}.home-actions{grid-template-columns:1fr}.home-actions .primary-action{grid-column:auto}.action-card{padding:18px;min-height:94px}.regions-card{padding:20px;border-radius:18px}.page-head{gap:14px}.page-head h2{font-size:26px}.prejoin-layout{gap:14px}.preview-card,.join-card{border-radius:16px}.control-button span:last-child{display:none}.control-button{min-width:44px}.control-icon{width:36px;height:34px}.control-bar{height:72px;flex-basis:72px}.side-panel{bottom:72px}.video-tile{min-height:220px}.audience-title{display:none}.avatar-choices{gap:10px}.avatar-choice{width:35px;height:35px}}


/* Invitation simple et directe */
.invite-button{font-weight:600;background:#f3f5f8;color:#0b1a18;border-color:transparent}.invite-button:hover{background:#fff}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(4,6,10,.70);backdrop-filter:blur(8px);display:grid;place-items:center;padding:22px}
.invite-modal{width:min(560px,100%);background:#0b1a18;border:1px solid var(--line);border-radius:22px;box-shadow:0 32px 90px rgba(0,0,0,.52);padding:24px}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.modal-head h3{font-size:25px;letter-spacing:-.025em;margin:7px 0 0}.modal-close{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#16342e;color:#dce1ea;font-size:24px;line-height:1;cursor:pointer}.modal-close:hover{background:#1b4038}.modal-subtitle{margin:10px 0 20px;color:var(--muted);font-size:14px}
.share-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.share-action{min-height:74px;border:1px solid var(--line);background:#091714;border-radius:14px;padding:12px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.share-action:hover{background:#15312b;border-color:rgba(255,255,255,.16);transform:translateY(-1px)}.share-action strong,.share-action small{display:block}.share-action strong{font-size:14px}.share-action small{font-size:11px;color:var(--muted);margin-top:3px}.share-icon{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;font-weight:700;font-size:17px;color:#fff}.share-icon.whatsapp{background:#22a95d}.share-icon.messenger{background:#2777e8}.share-icon.sms{background:#4f86f7}.share-icon.email{background:#7b8496}.share-icon.copy{background:#5d6574}.share-icon.native{background:#8a63d2}
.invite-preview{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.invite-preview>span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.invite-preview>div{display:flex;gap:8px}.invite-preview code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#081411;border:1px solid var(--line);border-radius:10px;padding:10px 11px;color:#cdd3df;font-family:inherit;font-size:12px}.invite-preview button{border:1px solid var(--line);background:#17312c;border-radius:10px;padding:0 12px;cursor:pointer}.invite-preview button:hover{background:#20493f}
@media(max-width:900px){.header-actions .invite-button{display:inline-flex;align-items:center}.center-controls #inviteFooterBtn{display:flex}.center-controls #shareBtn{display:none}}
@media(min-width:901px){#inviteFooterBtn{display:none}}
@media(max-width:560px){.modal-backdrop{padding:12px}.invite-modal{padding:18px;border-radius:18px}.share-actions{grid-template-columns:1fr}.modal-head h3{font-size:22px}.invite-preview>div{flex-direction:column}.invite-preview button{min-height:40px}}

/* Réglages simples du salon */
.settings-modal{width:min(540px,100%)}
.settings-section{border:1px solid var(--line);background:#091714;border-radius:15px;padding:16px}
.settings-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.settings-section-head strong,.settings-section-head small{display:block}.settings-section-head strong{font-size:15px}.settings-section-head small{font-size:12px;color:var(--muted);margin-top:3px}
.settings-label{display:grid;gap:7px;font-size:12px;color:#cfd4df}.settings-label input{width:100%;background:#06110f;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:12px 13px;outline:none}.settings-label input:focus{border-color:var(--accent)}
.settings-actions{display:flex;gap:9px;margin-top:12px;flex-wrap:wrap}.compact-button{min-height:42px;padding:10px 14px;width:auto}.danger-outline{color:#ffb3b3;border-color:rgba(255,90,90,.3);background:transparent}.danger-outline:hover{background:rgba(255,90,90,.08)}
.settings-tip{margin-top:14px;padding:13px 14px;border-radius:12px;background:#15312b}.settings-tip strong,.settings-tip span{display:block}.settings-tip strong{font-size:13px}.settings-tip span{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}
@media(max-width:560px){.settings-actions{display:grid;grid-template-columns:1fr}.compact-button{width:100%}}

/* Salon permanent — prise de parole simple et gestion hors scène */
.regional-welcome{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:38px;gap:10px;background:radial-gradient(circle at 50% 30%,#202633 0,#0c0f14 65%)}
.regional-welcome .avatar{margin-bottom:8px}.regional-welcome strong{font-size:24px;letter-spacing:-.025em}.regional-welcome span{max-width:470px;color:var(--muted);font-size:14px;line-height:1.55}
.settings-section-gap{margin-top:12px}.settings-label select{width:100%;background:#06110f;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:12px 13px;outline:none}.settings-label select:focus{border-color:var(--accent)}
.row-actions button:disabled,.request-row button:disabled{opacity:.45;cursor:not-allowed}
/* 1.22.33 — Fenêtre « Une place vidéo » : charte Bonjour unifiée. */
#stageInviteModal .stage-invite-modal{
  position:relative;width:min(510px,100%)!important;max-width:510px!important;max-height:min(90dvh,780px)!important;overflow-y:auto;
  padding:clamp(20px,4vw,30px);border-radius:23px;
  background:radial-gradient(circle at 45% 7%,rgba(242,255,252,.075),transparent 40%),linear-gradient(155deg,#0a312c,#061f1b 72%,#041713)!important;
  border:1px solid rgba(202,232,224,.19);box-shadow:0 28px 80px rgba(0,0,0,.41);text-align:left;
}
#stageInviteModal .stage-invite-head{display:flex;gap:13px;align-items:center;padding-right:37px;margin:2px 0 12px;}
#stageInviteModal .speak-mark{
  width:51px;height:51px;min-width:51px;margin:0;border-radius:13px;
  display:grid;place-items:center;background:linear-gradient(145deg,rgba(20,78,67,.88),rgba(6,37,32,.92));
  border:1px solid rgba(244,207,104,.21);color:#f5d275;box-shadow:none;
}
#stageInviteModal .speak-mark svg,#stageInviteModal .speak-action-icon svg{width:25px;height:25px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
#stageInviteModal .stage-invite-head-copy{min-width:0;}
#stageInviteModal .eyebrow{color:#ffd05f!important;letter-spacing:.14em;font-size:10px;font-weight:750;}
#stageInviteModal h3{font-size:clamp(21px,4.7vw,27px);line-height:1.13;letter-spacing:-.028em;color:#fff;margin:8px 0 0;overflow-wrap:normal;}
#stageInviteModal .modal-subtitle{margin:12px 0 23px;color:#e4eeeb;font-size:14px;line-height:1.54;text-align:left;}
#stageInviteModal .speak-actions{display:grid;gap:10px;}
#stageInviteModal .speak-action{
  min-height:76px!important;width:100%;padding:12px 15px!important;display:flex!important;align-items:center!important;gap:14px!important;text-align:left!important;
  background:linear-gradient(155deg,#0f4038,#062a25);border:1px solid rgba(244,207,104,.31);
  border-radius:14px;cursor:pointer;color:#f6f8f7;box-shadow:none;transition:filter .16s ease,transform .16s ease;
}
#stageInviteModal .speak-action.primary{
  background:linear-gradient(180deg,#ffe17e 0%,#ffcc52 50%,#f7ad2e 100%);border-color:#ffdb70;color:#10372e;
}
#stageInviteModal .speak-action:hover{filter:brightness(1.045);transform:translateY(-1px);}
#stageInviteModal .speak-action:disabled{opacity:.5;cursor:wait;transform:none;}
#stageInviteModal .speak-action>span:last-child{display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-width:0!important;gap:2px!important}
#stageInviteModal .speak-action-icon{flex:0 0 26px;width:26px;height:28px;display:grid;place-items:center;background:none;border:0;border-radius:0;color:inherit;}
#stageInviteModal .speak-action-icon svg{width:23px;height:23px;}
#stageInviteModal .speak-action strong{display:block!important;font-size:15px!important;line-height:1.3!important;color:inherit!important;}
#stageInviteModal .speak-action small{display:block!important;font-size:11.5px!important;line-height:1.35!important;margin-top:2px!important;color:#cbdad5!important;}
#stageInviteModal .speak-action.primary small{color:#33564a!important;}
#stageInviteModal .quiet-stage-button{display:block;width:100%;margin:10px auto 0;padding:10px 12px;border:0;background:none;color:#cad8d3;font-size:12.5px;font-weight:600;}
#stageInviteModal .quiet-stage-button:hover{color:#fff;}
#stageInviteModal .modal-corner{position:absolute;right:16px;top:16px;width:39px;height:39px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(160deg,#10443b,#062922);border:1px solid rgba(218,236,231,.23);color:#f4f8f5;}

@media(max-width:560px){.regional-welcome{padding:26px}.regional-welcome strong{font-size:21px}.regional-welcome .avatar{width:96px;height:96px}#stageInviteModal .stage-invite-modal{padding:22px}#stageInviteModal h3{font-size:22px}#stageInviteModal .speak-action{min-height:72px}}

/* Salon permanent — autonomie, file vidéo, hôte transmissible et règles */
.lobby-view{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#0d2420 0,#071311 55%)}
.lobby-card{width:min(680px,100%);background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}
.lobby-card h2{font-size:32px;letter-spacing:-.03em;margin:8px 0 8px}.lobby-lead{margin-bottom:24px;font-size:16px}
.lobby-hours-card{display:flex;align-items:flex-start;gap:13px;margin:0 0 18px;padding:15px 16px;border:1px solid rgba(35,135,126,.30);background:rgba(35,135,126,.09);border-radius:14px}.lobby-hours-icon{width:34px;height:34px;flex:0 0 34px;border-radius:11px;background:rgba(35,135,126,.16);display:grid;place-items:center;color:#b6ddd8;font-size:18px}.lobby-hours-card strong,.lobby-hours-card small{display:block}.lobby-hours-card strong{font-size:14px;line-height:1.4}.lobby-hours-card small{margin-top:5px;color:#b8c0d0;font-size:12px;line-height:1.5}
.rules-list{display:grid;gap:10px}.rule-item{display:flex;gap:13px;align-items:flex-start;padding:14px;border:1px solid var(--line);background:#091714;border-radius:14px}.rule-item>span{width:30px;height:30px;border-radius:10px;background:rgba(35,135,126,.14);display:grid;place-items:center;color:#a5d4ce;font-weight:700;flex:0 0 30px}.rule-item strong,.rule-item small{display:block}.rule-item strong{font-size:14px}.rule-item small{color:var(--muted);font-size:12px;line-height:1.45;margin-top:3px}.lobby-actions{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:20px}.lobby-actions .primary-button{margin:0}.lobby-actions .secondary-button{min-width:110px}
.queue-notice{border:1px solid rgba(35,135,126,.28);background:rgba(35,135,126,.10);color:#d5ebe7;border-radius:12px;padding:10px 12px;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.queue-notice strong{font-size:13px}.queue-notice span{color:#94c9c2;font-size:12px}
.stage-timer{position:absolute;top:10px;right:10px;z-index:2;background:rgba(9,11,15,.78);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);border-radius:10px;padding:7px 9px;font-size:12px;font-weight:700;letter-spacing:.04em}.stage-timer.warning{background:rgba(231,88,88,.85)}
.participant-controls{margin-left:auto}.participant-controls details{position:relative}.participant-controls summary{list-style:none;border:1px solid var(--line);background:#17312c;border-radius:9px;padding:7px 9px;cursor:pointer;font-size:12px}.participant-controls summary::-webkit-details-marker{display:none}.participant-control-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:220px;background:#181c23;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 14px 40px rgba(0,0,0,.35);display:grid;gap:6px}.participant-control-menu button,.participant-control-menu select{width:100%;min-height:38px;border:1px solid var(--line);background:#193a33;border-radius:9px;padding:8px 10px;text-align:left;cursor:pointer}.participant-control-menu .host-transfer{background:rgba(35,135,126,.13);color:#d5ebe7}.participant-control-menu .danger-lite{color:#ffb1b1}.participant-control-menu label{font-size:11px;color:var(--muted);display:grid;gap:5px}
.moderator-invite-result{margin-top:12px;border:1px solid rgba(35,135,126,.25);background:rgba(35,135,126,.08);border-radius:12px;padding:12px}.moderator-invite-result strong,.moderator-invite-result small{display:block}.moderator-invite-result>div{display:flex;gap:8px;margin:8px 0}.moderator-invite-result code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#07120f;border:1px solid var(--line);border-radius:9px;padding:9px}.moderator-invite-result button{border:1px solid var(--line);background:#1a3d36;border-radius:9px;padding:0 10px;cursor:pointer}.moderator-invite-result small{color:var(--muted);font-size:11px;line-height:1.4}.share-icon.moderator{background:#7a67d8}
.host-badge{background:rgba(35,135,126,.14);color:#a5d4ce}.moderator-badge{background:rgba(87,197,150,.13);color:#8bdcb9}
.control-button:disabled{opacity:.45;cursor:not-allowed}.control-button:disabled:hover{background:transparent}
@media(max-width:560px){.lobby-view{padding:12px}.lobby-card{padding:20px;border-radius:18px}.lobby-card h2{font-size:26px}.lobby-actions{grid-template-columns:1fr}.lobby-actions .secondary-button{display:block;min-height:44px}.participant-control-menu{position:fixed;left:12px;right:12px;bottom:82px;top:auto;width:auto}.queue-notice{align-items:flex-start;flex-direction:column}}

/* V7 — consolidation, administration, signalements et responsive */
html,body,.app-shell,.view{min-height:100dvh}.room-view{min-height:100dvh;height:100dvh;overflow:hidden}
.room-header{padding-top:env(safe-area-inset-top);height:calc(68px + env(safe-area-inset-top));flex-basis:calc(68px + env(safe-area-inset-top))}
.control-bar{padding-bottom:env(safe-area-inset-bottom);height:calc(82px + env(safe-area-inset-bottom));flex-basis:calc(82px + env(safe-area-inset-bottom))}
.modal-backdrop{overflow:auto;overscroll-behavior:contain}.invite-modal{position:relative;max-height:min(92dvh,900px);overflow:auto;overscroll-behavior:contain}.modal-corner{position:absolute;right:16px;top:16px}.sticky-modal-head{position:sticky;top:-1px;z-index:4;background:#0b1a18;padding-bottom:10px}
.region-row-wrap{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px}.region-row-wrap .region-row{width:100%}.region-row-wrap.national-room{grid-column:1/-1}.region-row-wrap.national-room .region-row{background:linear-gradient(135deg,rgba(35,135,126,.18),#0a1815)}.region-manage{border:1px solid var(--line);background:#102420;border-radius:12px;padding:0 14px;cursor:pointer}.region-manage:hover{background:#17312c}.region-notification{position:absolute;right:-6px;top:-7px;z-index:3;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--danger);display:grid;place-items:center;font-size:11px;font-weight:700;box-shadow:0 3px 12px rgba(0,0,0,.35)}
.more-menu{position:fixed;right:118px;bottom:92px;z-index:70;width:240px;padding:8px;background:#181c23;border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 50px rgba(0,0,0,.4);display:grid;gap:5px}.more-menu button{min-height:44px;border:0;background:transparent;border-radius:9px;text-align:left;padding:9px 11px;cursor:pointer}.more-menu button:hover{background:#17312c}
.message-report{border:0;background:none;color:#737b89;font-size:10px;cursor:pointer}.message-report:hover{color:#c4cbe0}.message-delete{margin-left:auto}.message-head .message-report{margin-left:2px}
.settings-label textarea{width:100%;resize:vertical;min-height:110px;background:#06110f;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:12px 13px;outline:none;font:inherit;line-height:1.45}.settings-label textarea:focus{border-color:var(--accent)}
.report-context{margin:12px 0 0;padding:11px 12px;border-radius:10px;background:#091714;border:1px solid var(--line);font-size:12px;color:#cbd1dc;line-height:1.45}.compact-modal{width:min(460px,100%)}.moderation-actions{display:grid;gap:9px}.moderation-actions button{min-height:48px;border:1px solid var(--line);background:#193a33;border-radius:11px;text-align:left;padding:11px 13px;cursor:pointer}.moderation-actions button:hover{background:#1d443b}.moderation-actions .danger-action{color:#ffb2b2;border-color:rgba(231,88,88,.35);background:rgba(231,88,88,.08)}
.admin-room-modal{width:min(900px,100%)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0 16px}.admin-stats span{background:#091714;border:1px solid var(--line);border-radius:12px;padding:12px}.admin-stats strong,.admin-stats small{display:block}.admin-stats strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-stats small{font-size:10px;color:var(--muted);margin-top:3px}.admin-reports-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 10px}.admin-reports-head strong,.admin-reports-head small{display:block}.admin-reports-head small{font-size:11px;color:var(--muted);margin-top:3px}.admin-reports-list{display:grid;gap:9px}.admin-report{border:1px solid var(--line);background:#091714;border-radius:13px;padding:13px}.admin-report.status-new{border-color:rgba(231,88,88,.35)}.admin-report.status-in-progress{border-color:rgba(226,166,73,.35)}.admin-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-report-head strong,.admin-report-head small{display:block}.admin-report-head small{color:var(--muted);font-size:10px;margin-top:3px}.admin-report-head select{background:#17312c;border:1px solid var(--line);border-radius:8px;padding:7px}.admin-report p,.admin-report blockquote{font-size:12px;line-height:1.5}.admin-report blockquote{margin:10px 0;padding:9px 11px;border-left:3px solid var(--accent);background:#171b22;color:#c9cfda}.admin-report .report-meta{color:var(--muted)}.admin-report details{font-size:11px;color:var(--muted)}.admin-report pre{white-space:pre-wrap;word-break:break-word;background:#06110f;padding:9px;border-radius:8px}.screen-sharing video{transform:none!important;object-fit:contain;background:#050608}
.share-action:disabled,.participant-control-menu button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}

@media(max-width:900px){
  .region-row-wrap{grid-template-columns:1fr auto}.region-row-wrap.national-room{grid-column:auto}.region-manage{display:block;min-width:72px}.invite-modal .secondary-button,.lobby-card .secondary-button,.admin-room-modal .secondary-button{display:inline-flex;align-items:center;justify-content:center}.side-panel{top:calc(68px + env(safe-area-inset-top));bottom:calc(82px + env(safe-area-inset-bottom))}.more-menu{right:10px;bottom:calc(88px + env(safe-area-inset-bottom))}.admin-grid{grid-template-columns:1fr}.admin-stats{grid-template-columns:1fr 1fr}.admin-room-modal{width:min(720px,100%)}
}
@media(max-width:560px){
  .room-header{height:calc(62px + env(safe-area-inset-top));flex-basis:calc(62px + env(safe-area-inset-top))}.room-identity strong{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-panel{top:calc(62px + env(safe-area-inset-top));bottom:calc(72px + env(safe-area-inset-bottom));width:100%}.control-bar{height:calc(72px + env(safe-area-inset-bottom));flex-basis:calc(72px + env(safe-area-inset-bottom));gap:2px;padding-left:4px;padding-right:4px}.control-button{min-width:42px;padding:6px 5px}.leave-button{padding:10px 12px}.video-grid{gap:8px}.video-tile{min-height:200px}.empty-stage{min-height:200px;padding:20px;text-align:center}.region-row-wrap{grid-template-columns:1fr}.region-manage{min-height:42px}.region-notification{right:7px;top:-7px}.more-menu{left:10px;right:10px;width:auto;bottom:calc(78px + env(safe-area-inset-bottom))}.admin-stats{grid-template-columns:1fr 1fr}.time-grid{grid-template-columns:1fr}.admin-report-head{display:grid;grid-template-columns:1fr}.admin-report-head select{width:100%}.modal-backdrop{padding:8px;padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}.invite-modal{max-height:94dvh}.lobby-card{max-height:94dvh;overflow:auto}.lobby-actions .secondary-button{display:flex}.message-head{flex-wrap:wrap}.message-delete{margin-left:0}.toast{bottom:calc(82px + env(safe-area-inset-bottom));max-width:calc(100vw - 28px);text-align:center}.participant-control-menu{bottom:calc(78px + env(safe-area-inset-bottom))}
}

/* V7 — sur tablette, le partage d’écran reste visible lorsqu’il est réellement pris en charge.
   Sur iPhone/iPad non compatibles, le JavaScript conserve le bouton caché. */
@media(max-width:900px){
  .center-controls #shareBtn:not(.hidden){display:flex}
}

/* Sur petit smartphone, deux intervenants restent visibles sans imposer un long défilement. */
@media(max-width:560px){
  .video-grid:has(.video-tile:nth-child(2)){
    grid-template-columns:1fr;
    grid-template-rows:repeat(2,minmax(150px,1fr));
    overflow:hidden;
  }
  .video-grid:has(.video-tile:nth-child(2)) .video-tile{min-height:150px}
}


/* V9+ — fermeture douce des salons permanents */
.closing-notice{position:fixed;right:18px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:85;width:min(410px,calc(100vw - 36px));display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 44px 14px 14px;border:1px solid rgba(226,166,73,.34);background:rgba(24,27,34,.97);backdrop-filter:blur(14px);border-radius:16px;box-shadow:0 18px 60px rgba(0,0,0,.38)}
.closing-notice.final{border-color:rgba(35,135,126,.42);background:rgba(19,22,29,.98)}
.closing-notice-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(226,166,73,.12);font-size:20px}.closing-notice.final .closing-notice-icon{background:rgba(35,135,126,.14)}
.closing-notice-copy{min-width:0}.closing-notice-copy strong{display:block;font-size:14px;line-height:1.25}.closing-notice-copy p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.closing-notice-ack{min-height:38px;border:0;border-radius:10px;background:#f0f2f6;color:#17191e;font-weight:600;padding:0 14px;cursor:pointer}.closing-notice-ack:hover{filter:brightness(.96)}
.closing-notice-close{position:absolute;right:9px;top:7px;width:30px;height:30px;border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;border-radius:8px}.closing-notice-close:hover{background:#1b4038;color:var(--text)}
.room-closing-locked .control-bar button:not(#leaveBtn),.room-closing-locked .header-actions button{opacity:.42;pointer-events:none}.room-closing-locked #chatForm{opacity:.55;pointer-events:none}
@media(max-width:560px){.closing-notice{left:10px;right:10px;bottom:calc(80px + env(safe-area-inset-bottom));width:auto;grid-template-columns:auto 1fr;padding:13px 42px 13px 13px}.closing-notice-ack{grid-column:1/-1;width:100%}.closing-notice-copy p{font-size:11.5px}}

/* V10+ — liens permanents visibles dans l’administration */
.permanent-link-box{display:flex;align-items:center;gap:10px;margin-top:10px}.permanent-link-box code{flex:1;min-width:0;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#07120f;color:#e8ebf2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit;font-size:13px}.permanent-link-actions{display:flex;gap:8px;flex:0 0 auto}.permanent-link-help{display:block;margin-top:9px;color:var(--muted);line-height:1.45}.permanent-link-section.is-pending .settings-section-head small{color:#e0a64b}.permanent-link-section.is-active .settings-section-head small{color:#7fd49f}@media(max-width:620px){.permanent-link-box{align-items:stretch;flex-direction:column}.permanent-link-actions{display:grid;grid-template-columns:1fr 1fr}.permanent-link-actions button{width:100%}}


/* V12 — identité Bonjour, palette forêt et entrée humaine */
.home-view,.regions-view{background:radial-gradient(circle at 50% -10%,#10372f 0,#091b17 34%,#071311 68%)}
.prejoin-view{background:radial-gradient(circle at 28% 20%,#0d2924 0,#071311 58%)}
.brand-mark{gap:5px;margin-bottom:24px;filter:drop-shadow(0 8px 20px rgba(0,0,0,.18))}
.brand-mark span{background:linear-gradient(180deg,#fff2b7 0%,#d6aa4b 48%,#8f6722 100%)}
.product-signature{margin:-2px 0 10px;color:#b4c9c3;font-size:14px;font-weight:600;letter-spacing:.015em}
.home-card .lead{margin-top:0}
.primary-action{background:linear-gradient(135deg,#0b3f3c 0%,#145c56 58%,#1b7068 100%);box-shadow:0 16px 45px rgba(5,46,41,.26)}
.primary-action:hover{background:linear-gradient(135deg,#0e4945,#197068);filter:none}
.action-card{background:linear-gradient(180deg,rgba(15,39,34,.94),rgba(9,27,23,.96))}.action-card:hover{background:linear-gradient(180deg,#153f37,#0d2d27)}
.eyebrow{color:#72bfb6}.brand-dot{background:#23877e;box-shadow:0 0 0 5px rgba(35,135,126,.12)}
.regions-card{background:rgba(9,27,23,.90)}
.region-row{background:#0a1916}.region-row:hover{background:#102a24}.region-row-wrap.national-room .region-row{background:linear-gradient(135deg,rgba(35,135,126,.18),#0a1916)}
.region-admin-actions{display:flex;gap:7px}.region-share,.region-manage{border:1px solid var(--line);background:#102420;border-radius:12px;padding:0 13px;cursor:pointer;min-height:100%}.region-share:hover,.region-manage:hover{background:#17312c}.region-share{color:#bfe3de}
.prejoin-layout{width:min(1260px,100%);grid-template-columns:minmax(0,1.18fr) minmax(430px,.82fr);gap:32px;align-items:stretch}
.preview-card{aspect-ratio:auto;min-height:650px;background:#06110f;border:1px solid rgba(231,244,239,.06)}
.join-card{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:38px 40px;min-height:650px;background:linear-gradient(180deg,#0c201c,#091713)}
.join-card h2{font-size:31px;margin-bottom:20px}.join-card label,.field-label{color:#c8d9d4}.join-card input{background:#071512;border-color:rgba(231,244,239,.12)}.join-card input:focus{outline:none;border-color:#3a9b91;box-shadow:0 0 0 3px rgba(35,135,126,.12)}
.identity-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.identity-first,.identity-city{grid-column:1/-1}.required-mark{color:#78c7bd}.field-help{display:block;margin:7px 2px 0;color:var(--muted);font-size:11px;line-height:1.35}
.avatar-choice{width:36px;height:36px}.avatar-choice.selected{border-color:#dcebe7;box-shadow:0 0 0 3px rgba(35,135,126,.35)}
.regional-welcome{background:radial-gradient(circle at 50% 30%,#153b34 0,#071310 68%)}
.room-view{background:#071311}.room-header{background:#091915}.video-tile{background:#0c211c}.audience-strip{background:#0a1b17}.side-panel,.more-menu{background:#0a1a17}
.sticky-modal-head{background:#0b1a18}.modal-close{background:#102420}.modal-close:hover{background:#17312c}.invite-modal{background:#0b1a18}.settings-section,.admin-report{background:#091714}
.permanent-link-box code{background:#07120f}.admin-share-button{width:auto;margin-top:0;white-space:nowrap}
.message-city{color:var(--muted);font-weight:500;font-size:.92em}
@media(max-width:1050px){.prejoin-layout{grid-template-columns:minmax(0,1fr) minmax(360px,.85fr)}.preview-card,.join-card{min-height:580px}.join-card{padding:32px}}
@media(max-width:900px){.prejoin-layout{width:min(720px,100%);grid-template-columns:1fr}.preview-card{min-height:360px;aspect-ratio:16/9}.join-card{min-height:auto;padding:30px}.region-admin-actions{align-self:stretch}}
@media(max-width:620px){.identity-fields{grid-template-columns:1fr}.identity-first,.identity-city{grid-column:auto}.join-card{padding:24px 20px}.preview-card{min-height:280px}.region-row-wrap{grid-template-columns:1fr}.region-admin-actions{display:grid;grid-template-columns:1fr 1fr}.region-share,.region-manage{min-height:42px}.permanent-link-actions{grid-template-columns:1fr 1fr}.permanent-link-actions .admin-share-button{grid-column:1/-1}}

#inviteModal{z-index:130}


/* V12 — Bonjour Network */
.network-action{grid-column:1/-1;background:linear-gradient(135deg,rgba(15,73,65,.64),rgba(9,38,34,.9));border-color:rgba(69,154,136,.24)}
.network-view{padding:clamp(18px,3vw,42px)}
.network-card{width:min(1240px,100%);margin:auto;background:linear-gradient(180deg,rgba(14,34,31,.97),rgba(7,20,18,.99));border:1px solid rgba(133,174,163,.14);border-radius:28px;padding:clamp(18px,2.8vw,34px);box-shadow:0 34px 90px rgba(0,0,0,.28)}
.network-page-head{align-items:flex-start;gap:18px}.network-page-head>div{flex:1}.network-intro{margin:7px 0 0;color:var(--muted);font-size:14px}
.network-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0 18px}.network-summary article{padding:18px;border-radius:18px;background:rgba(7,26,23,.72);border:1px solid rgba(121,164,153,.14);display:flex;flex-direction:column;gap:5px}.network-summary strong{font-size:clamp(24px,3vw,34px);letter-spacing:-.04em}.network-summary span{font-size:12px;color:var(--muted)}
.network-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.8fr);gap:16px}.network-map-panel,.network-nodes-panel{background:rgba(4,17,15,.72);border:1px solid rgba(121,164,153,.13);border-radius:22px;padding:18px;min-width:0}.network-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.network-panel-head>div{display:flex;flex-direction:column;gap:3px}.network-panel-head small,.network-panel-head>span{color:var(--muted);font-size:11px;line-height:1.4}
.network-map{display:block;width:100%;max-height:560px;min-height:390px}.network-france-shape{fill:#081c19;stroke:rgba(73,145,129,.30);stroke-width:5}.network-france-inner{fill:transparent;stroke:rgba(92,176,156,.10);stroke-width:2}.network-overseas-labels text{fill:#7f9d96;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.network-node circle{fill:#3fa48e;stroke:#9be3d2;stroke-width:2;filter:url(#nodeGlow);cursor:pointer}.network-node text{fill:#effffb;font-size:12px;font-weight:700;text-anchor:middle;pointer-events:none}.network-node .network-node-capacity{fill:#8fb4aa;font-size:9px;font-weight:600}.network-node.community circle{stroke:#d8b15b}.network-node.offline circle{opacity:.4;filter:none}.network-map-detail{min-height:48px;padding:11px 13px;border-radius:14px;background:rgba(13,46,40,.54);color:#bdd0cb;font-size:12px;line-height:1.5}.network-map-detail strong{color:#fff}
.network-edition-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.network-edition-stats div{background:rgba(15,49,43,.5);border-radius:12px;padding:9px;text-align:center}.network-edition-stats strong{display:block;font-size:17px}.network-edition-stats small{color:var(--muted);font-size:10px}.network-nodes-list{display:flex;flex-direction:column;gap:8px;max-height:455px;overflow:auto;padding-right:4px}.network-node-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px 12px;border:1px solid rgba(121,164,153,.12);background:rgba(11,35,31,.52);border-radius:14px}.network-node-row strong{font-size:13px}.network-node-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.network-node-row .network-cap{font-size:12px;font-weight:700;color:#81dbc7;align-self:center}.network-note{display:flex;gap:14px;align-items:flex-start;margin-top:16px;padding:14px 16px;border-radius:16px;background:rgba(42,85,75,.18);border:1px solid rgba(95,156,141,.12);font-size:12px;line-height:1.5}.network-note strong{white-space:nowrap}.network-note span{color:var(--muted)}
@media(max-width:900px){.network-summary{grid-template-columns:repeat(2,1fr)}.network-layout{grid-template-columns:1fr}.network-map{min-height:330px}.network-note{flex-direction:column;gap:4px}}
@media(max-width:560px){.network-view{padding:10px}.network-card{border-radius:20px;padding:14px}.network-page-head{display:grid;grid-template-columns:1fr auto}.network-page-head>div{grid-column:1/-1;grid-row:2}.network-summary{gap:8px;margin-top:16px}.network-summary article{padding:13px}.network-summary strong{font-size:23px}.network-map-panel,.network-nodes-panel{padding:12px;border-radius:17px}.network-map{min-height:280px}.network-edition-stats{grid-template-columns:1fr 1fr 1fr}}


/* V13 — signature 3 barres + B et profil Community reconnu */
.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;margin-bottom:8px}
.brand-lockup .brand-mark{height:40px;gap:6px;margin:0 0 1px 3px;filter:drop-shadow(0 8px 20px rgba(0,0,0,.22))}
.brand-lockup .brand-mark span{width:10px;border-radius:999px;background:linear-gradient(180deg,#fff3bc 0%,#e1ba5c 43%,#a77927 100%)}
.brand-lockup .brand-mark span:nth-child(1){height:22px}.brand-lockup .brand-mark span:nth-child(2){height:38px}.brand-lockup .brand-mark span:nth-child(3){height:29px}
.brand-lockup h1{margin-top:0}.home-card .product-signature{margin-top:0}
.community-profile-badge{margin:0 0 14px;padding:10px 12px;border:1px solid rgba(86,194,174,.26);background:rgba(35,135,126,.10);border-radius:12px;display:flex;align-items:center;gap:8px;color:#d6ebe7;font-size:12px}.community-profile-dot{width:8px;height:8px;border-radius:50%;background:#62d5b8;box-shadow:0 0 0 4px rgba(98,213,184,.10)}.community-profile-badge button{margin-left:auto;border:0;background:transparent;color:#8fd7ca;cursor:pointer;padding:3px 4px;font:inherit}.community-profile-badge button:hover{color:#dff7f2}.avatar.profile-photo{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;color:transparent!important}
@media(max-width:560px){.brand-lockup .brand-mark{height:34px}.brand-lockup .brand-mark span{width:8px}.brand-lockup .brand-mark span:nth-child(1){height:19px}.brand-lockup .brand-mark span:nth-child(2){height:33px}.brand-lockup .brand-mark span:nth-child(3){height:25px}}

/* V14 — Fight */
.fight-notice{position:absolute;left:18px;bottom:18px;z-index:70;width:min(430px,calc(100% - 36px));display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:16px;border:1px solid rgba(230,166,73,.38);border-radius:16px;background:rgba(22,20,13,.96);box-shadow:0 22px 60px rgba(0,0,0,.35);backdrop-filter:blur(14px)}
.fight-notice-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(226,166,73,.16);color:#efc56f;font-weight:700;font-size:18px}
.fight-notice-copy strong,.fight-notice-copy p,.fight-notice-copy small{display:block}.fight-notice-copy strong{font-size:14px}.fight-notice-copy p{margin:5px 0 4px;color:#e8e0cf;font-size:12px;line-height:1.5}.fight-notice-copy small{color:#b9ad94;font-size:10px;line-height:1.45}
.fight-notice-ack{grid-column:2;border:1px solid rgba(235,194,108,.28);background:#3c321d;color:#f5dfad;border-radius:10px;min-height:36px;padding:0 12px;cursor:pointer;justify-self:start;font:inherit;font-size:12px;font-weight:700}.fight-notice-ack:hover{background:#4a3b20}
.fight-notice.is-ban{border-color:rgba(231,88,88,.46);background:rgba(31,14,14,.97)}.fight-notice.is-ban .fight-notice-icon{background:rgba(231,88,88,.18);color:#ff8d8d}.fight-notice.is-ban .fight-notice-ack{background:#542121;border-color:rgba(231,88,88,.35);color:#ffd4d4}
.fight-admin-section{padding:0;overflow:hidden}.fight-admin-section>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;cursor:pointer}.fight-admin-section>summary::-webkit-details-marker{display:none}.fight-admin-section>summary strong,.fight-admin-section>summary small{display:block}.fight-admin-section>summary small{font-size:11px;color:var(--muted);margin-top:3px}.fight-summary-pill{font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:5px 8px;border-radius:999px;background:rgba(35,135,126,.15);color:#8ed7ce;font-weight:700}.fight-admin-section[open]>summary{border-bottom:1px solid var(--line)}.fight-admin-body{padding:16px}.fight-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fight-toggle{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:#07120f;border-radius:12px;padding:12px;cursor:pointer}.fight-toggle input{margin-top:3px;accent-color:var(--accent)}.fight-toggle strong,.fight-toggle small{display:block}.fight-toggle strong{font-size:12px}.fight-toggle small{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.4}.fight-policy-note{margin:12px 0 0;padding:11px 12px;border-radius:12px;background:rgba(226,166,73,.08);border:1px solid rgba(226,166,73,.15);color:#cdbf9f;font-size:11px;line-height:1.5}.fight-terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.fight-terms-grid textarea{width:100%;margin-top:8px;resize:vertical;min-height:180px;background:#06110f;border:1px solid var(--line);border-radius:11px;color:var(--text);padding:11px 12px;line-height:1.45;font:inherit;font-size:12px}.fight-terms-grid textarea:focus{outline:none;border-color:var(--accent)}
.fight-bans-head,.fight-events-head{margin:18px 0 9px}.fight-bans-head strong,.fight-bans-head small{display:block}.fight-bans-head small{font-size:10px;color:var(--muted);margin-top:3px}.fight-bans-list,.fight-events-list{display:grid;gap:8px}.fight-ban-row,.fight-event-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#07120f}.fight-ban-row strong,.fight-ban-row small,.fight-event-row strong,.fight-event-row small{display:block}.fight-ban-row strong,.fight-event-row strong{font-size:12px}.fight-ban-row small,.fight-event-row small{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.4}.fight-ban-row button{border:1px solid rgba(231,88,88,.28);background:rgba(231,88,88,.08);color:#ffaaaa;border-radius:9px;min-height:34px;padding:0 10px;cursor:pointer;font:inherit;font-size:11px;font-weight:600}.fight-event-row{grid-template-columns:1fr}.fight-event-row.warning{border-color:rgba(226,166,73,.22)}.fight-event-row.ban{border-color:rgba(231,88,88,.28)}
@media(max-width:760px){.fight-admin-grid,.fight-terms-grid{grid-template-columns:1fr}.fight-notice{left:10px;right:10px;bottom:92px;width:auto}.fight-notice-ack{justify-self:stretch}.fight-admin-body{padding:13px}}

/* V15 — signature d'accueil : 3 barres + Bonjour. Le logo carré reste réservé à l'icône système. */
.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;margin-bottom:8px}
.brand-lockup .brand-mark{height:42px;gap:6px;margin:0 0 2px 4px;filter:drop-shadow(0 8px 20px rgba(0,0,0,.22))}
.brand-lockup .brand-mark span{width:11px;border-radius:999px;background:linear-gradient(180deg,#fff3bc 0%,#e1ba5c 43%,#a77927 100%)}
.brand-lockup .brand-mark span:nth-child(1){height:24px}.brand-lockup .brand-mark span:nth-child(2){height:40px}.brand-lockup .brand-mark span:nth-child(3){height:31px}
.brand-lockup h1{margin:0 0 10px 0}
@media(max-width:560px){.brand-lockup .brand-mark{height:35px;margin-left:3px}.brand-lockup .brand-mark span{width:9px}.brand-lockup .brand-mark span:nth-child(1){height:20px}.brand-lockup .brand-mark span:nth-child(2){height:34px}.brand-lockup .brand-mark span:nth-child(3){height:26px}}


/* V16 — mobile Safari : parcours compact, aucune interface desktop tassée */
.room-view{height:100dvh;min-height:100dvh;overflow:hidden}
.prejoin-view{min-height:100dvh;overflow:auto}
@media(max-width:700px){
  .prejoin-view{display:block;padding:max(10px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom))}
  .prejoin-layout{display:block;width:100%;max-width:560px;margin:0 auto}
  .prejoin-layout .preview-card{min-height:0;aspect-ratio:auto;height:auto;border:0;background:transparent;box-shadow:none;overflow:visible;margin:0 0 10px}
  .prejoin-layout .preview-card>video,.prejoin-layout .preview-card>#previewAvatar,.prejoin-layout .preview-card>.preview-controls{display:none!important}
  .regional-welcome{position:static;min-height:0;padding:14px 16px;display:grid!important;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:2px;text-align:left;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(16,55,48,.9),rgba(7,24,21,.95))}
  .regional-welcome .avatar{grid-row:1/3;width:52px;height:52px;font-size:18px;align-self:center}
  .regional-welcome strong{font-size:16px;align-self:end}
  .regional-welcome span{font-size:12px;line-height:1.35;max-width:none;overflow-wrap:anywhere;color:var(--muted)}
  .join-card{min-height:0;padding:20px 18px;border-radius:20px;box-shadow:none}
  .quiet-link{margin-bottom:16px}.join-card h2{font-size:28px;margin:6px 0 14px}.join-card label,.field-label{margin-top:12px}.join-card input{padding:13px 14px}
  .room-status{margin-top:9px}.avatar-choice-wrap{margin-top:12px}.primary-button{margin-top:18px}
}
@media(max-width:560px){
  html,body,#app{max-width:100%;overflow-x:hidden}
  .room-header{height:auto;min-height:58px;flex-basis:auto;padding:8px 10px;gap:8px;padding-top:max(8px,env(safe-area-inset-top))}
  .room-identity{gap:8px;flex:1}.room-identity strong{font-size:15px;max-width:110px}.room-identity small{font-size:11px}.brand-dot{width:10px;height:10px;box-shadow:0 0 0 4px rgba(35,135,126,.11)}
  .header-actions{gap:5px;flex:0 0 auto}.header-actions .secondary-button,.header-actions .icon-text-button{min-height:38px;padding:0 10px}.invite-button{font-size:0}.invite-button::before{content:'↗';font-size:19px}.header-actions .desktop-only{display:none!important}
  .room-body{min-height:0;overflow:hidden}.stage-wrap{padding:8px;gap:7px;overflow:auto;overscroll-behavior:contain}
  .regional-intro{padding:0 3px;font-size:11px;gap:8px}.regional-intro strong{font-size:11px;white-space:nowrap}.queue-notice{margin:0;padding:9px 11px;border-radius:12px}.queue-notice strong{font-size:13px}.queue-notice span{font-size:11px}
  .video-grid{flex:0 0 auto;display:grid;grid-template-columns:1fr!important;grid-auto-rows:auto;align-content:start;overflow:visible;gap:8px}
  .video-tile{min-height:0!important;height:min(44dvh,430px);aspect-ratio:auto;border-radius:16px}.video-tile video{object-position:center center}.video-tile .avatar{width:74px;height:74px;font-size:24px}
  .video-grid:has(.video-tile:nth-child(2)){grid-template-columns:1fr 1fr!important;grid-template-rows:auto!important}.video-grid:has(.video-tile:nth-child(2)) .video-tile{height:min(31dvh,300px);min-height:0!important}
  .name-pill{font-size:11px;max-width:70%}.media-pill{font-size:11px}.stage-timer{font-size:13px;padding:7px 9px}
  .audience-strip{padding:8px 10px;gap:8px;border-radius:12px;min-height:54px}.audience-title{min-width:86px}.audience-title strong{font-size:11px}.audience-title span{font-size:10px}
  .control-bar{position:relative;height:auto;min-height:64px;flex-basis:auto;padding:7px 8px max(7px,env(safe-area-inset-bottom));gap:4px;z-index:30}.control-group{gap:3px}.control-button{min-width:44px;height:48px;padding:5px 6px}.control-button>span:last-child{display:none}.control-icon{font-size:18px}.leave-button{height:48px;padding:0 14px;font-size:14px;border-radius:12px}
  .side-panel{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;z-index:75;border:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .side-tabs{min-height:54px}.panel-close{font-size:28px}
}
.remote-audio-sink{position:fixed!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;left:-9999px!important;top:-9999px!important}


/* GOLDEN V16.1 HD1 — cadrage vidéo non destructif sur PC */
.video-tile{background:#061713}
.video-tile video{object-fit:contain!important;object-position:center center;background:#061713}
.video-tile.screen-sharing video{object-fit:contain!important}

@media(min-width:901px){
  .video-grid{justify-items:center;align-items:center}
  .video-grid>.video-tile{justify-self:center;align-self:center;max-width:100%;max-height:100%}
  .video-grid>.video-tile.is-portrait{width:min(38vw,560px);height:min(calc(100vh - 235px),820px);aspect-ratio:var(--media-aspect,9/16)}
  .video-grid>.video-tile.is-portrait video{object-fit:contain!important}
  .video-grid>.video-tile.is-landscape{width:min(100%,1400px);height:min(calc(100vh - 235px),820px);aspect-ratio:var(--media-aspect,16/9)}
  .video-grid>.video-tile.is-landscape video{object-fit:contain!important}
  .video-grid:has(.video-tile:nth-child(2))>.video-tile.is-portrait{width:min(42vw,500px);height:min(calc(100vh - 235px),760px)}
  .video-grid:has(.video-tile:nth-child(2))>.video-tile.is-landscape{width:min(48vw,900px);height:min(calc(100vh - 235px),760px)}
}

@media(max-width:900px){
  .video-tile video{object-fit:cover!important}
  .video-tile.screen-sharing video{object-fit:contain!important}
}

/* V19 — audio hors plateau, photo externe, visite guidée, salons permanents personnalisés */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.regions-page-head{grid-template-columns:auto 1fr auto;align-items:center}
.photo-upload-button{border:1px solid var(--line);background:#0b211d;color:var(--text);border-radius:10px;min-height:34px;padding:0 11px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.photo-upload-button:hover{background:#11312b;border-color:#2b5a50}.avatar-choice-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.avatar-choice-head .field-label{margin:0}.avatar-choice-wrap>.field-help{display:block;margin:6px 0 8px}

/* Qui parle ? */
.audience-person,.participant-row,.video-tile{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.audience-person{position:relative;border-radius:999px}
.audience-person .voice-dot{position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;background:#19352f;border:2px solid #071311;opacity:0;transform:scale(.7);transition:.16s ease}
.audience-person.is-speaking .voice-dot{opacity:1;transform:scale(1);background:#56e2b2;box-shadow:0 0 0 4px rgba(86,226,178,.13),0 0 16px rgba(86,226,178,.45)}
.audience-person.is-speaking .avatar{box-shadow:0 0 0 3px #56e2b2,0 0 20px rgba(86,226,178,.25)}
.participant-row.is-speaking{background:rgba(86,226,178,.075);border-color:rgba(86,226,178,.32)}
.participant-row.is-speaking .participant-media,.participant-media.speaking-now{color:#82f0c7;text-shadow:0 0 14px rgba(86,226,178,.4)}
.video-tile.is-speaking{border-color:#56e2b2!important;box-shadow:0 0 0 2px rgba(86,226,178,.24),0 14px 40px rgba(0,0,0,.28)!important}
.video-tile.is-speaking .name-pill::after{content:' · parle';color:#8af2ce;font-weight:700}


.active-speaker-badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:4px 10px;border-radius:999px;background:rgba(86,226,178,.11);border:1px solid rgba(86,226,178,.26);color:#91f4d1;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 0 18px rgba(86,226,178,.08)}
@media(max-width:700px){.regional-intro .active-speaker-badge{order:3;width:100%;margin-top:5px;white-space:normal}.active-speaker-badge{font-size:12px}}

/* Visite guidée V20.2 — spotlight ancré et présentation contextuelle */
.guide-overlay{position:fixed;inset:0;z-index:5000;pointer-events:none;overflow:hidden}.guide-backdrop{position:absolute;inset:0;z-index:1;background:rgba(0,7,6,.08);pointer-events:auto}.guide-spotlight{position:fixed;z-index:2;border:2px solid rgba(108,238,201,.85);border-radius:16px;background:transparent;box-shadow:0 0 0 9999px rgba(0,7,6,.48),0 0 0 5px rgba(86,226,178,.13),0 0 36px rgba(86,226,178,.36);transition:left .22s ease,top .22s ease,width .22s ease,height .22s ease,opacity .15s ease;pointer-events:none}.guide-spotlight.guide-spotlight-off{opacity:0}.guide-card{position:fixed;z-index:4;width:min(470px,calc(100vw - 24px));padding:18px;border:1px solid rgba(112,221,198,.34);border-radius:18px;background:linear-gradient(155deg,#0d2621,#091a17 72%);color:var(--text);box-shadow:0 24px 80px rgba(0,0,0,.48);pointer-events:auto;will-change:transform,opacity;transition:left .18s ease,top .18s ease}.guide-card-enter{animation:guideCardIn .24s cubic-bezier(.2,.75,.25,1)}@keyframes guideCardIn{from{opacity:.35;transform:translateY(6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.guide-arrow{position:absolute;width:14px;height:14px;background:#0c211d;border:1px solid rgba(112,221,198,.34);transform:rotate(45deg);z-index:0;pointer-events:none}.guide-card[data-place="bottom"] .guide-arrow{left:calc(var(--guide-arrow-x) - 7px);top:-8px;border-right:0;border-bottom:0}.guide-card[data-place="top"] .guide-arrow{left:calc(var(--guide-arrow-x) - 7px);bottom:-8px;border-left:0;border-top:0}.guide-card[data-place="right"] .guide-arrow{left:-8px;top:calc(var(--guide-arrow-y) - 7px);border-right:0;border-top:0}.guide-card[data-place="left"] .guide-arrow{right:-8px;top:calc(var(--guide-arrow-y) - 7px);border-left:0;border-bottom:0}.guide-progress{display:flex;align-items:center;justify-content:space-between;color:#8ac9bb;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em}.guide-close{border:0;background:transparent;color:#9ab1ab;font-size:24px;cursor:pointer;line-height:1;transition:.15s ease}.guide-close:hover{color:#fff;transform:rotate(5deg)}.guide-meter{height:3px;margin:8px 0 14px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08)}.guide-meter>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#23877e,#70e4c8);border-radius:inherit;transition:width .25s ease}.guide-heading{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}.guide-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(48,158,142,.28),rgba(86,226,178,.09));border:1px solid rgba(111,224,199,.2);font-size:20px;box-shadow:inset 0 0 22px rgba(86,226,178,.05);animation:guideIconFloat 2.6s ease-in-out infinite}@keyframes guideIconFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}.guide-card h3{font-size:21px;line-height:1.15;margin:0 0 7px;letter-spacing:-.02em}.guide-card p{margin:0;color:#b9cbc6;line-height:1.52;font-size:13px}.guide-impact{margin-top:13px;padding:10px 12px;border-left:3px solid #56e2b2;border-radius:0 10px 10px 0;background:rgba(86,226,178,.075);color:#dcf5ed;font-size:11px;line-height:1.45;font-weight:600}.guide-auto-toggle{display:flex;align-items:center;gap:8px;margin-top:13px;font-size:10px;color:#97ada7;cursor:pointer}.guide-auto-toggle input{accent-color:var(--accent)}.guide-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.guide-highlight{animation:guideTargetPulse 1.7s ease-in-out infinite}@keyframes guideTargetPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.12)}}@media(prefers-reduced-motion:reduce){.guide-card-enter,.guide-icon,.guide-highlight{animation:none!important}.guide-spotlight{transition:none!important}}

/* Création d'un salon permanent */
.create-permanent-modal{max-width:540px}.create-permanent-modal .time-grid{margin-top:12px}

@media(max-width:700px){
  .regions-page-head{grid-template-columns:auto 1fr}.regions-page-head #createPermanentRoomBtn{grid-column:1/-1;width:100%;margin-top:8px}
  .avatar-choice-head{align-items:flex-start;flex-direction:column}.photo-upload-button{width:100%}
  .guide-card{padding:16px}.guide-card h3{font-size:20px}.guide-actions>*{flex:1}
}

/* V20 Network — informations produit et état satellite */
.product-meta{margin:18px 0 0;text-align:center;font-size:11px;line-height:1.5;color:rgba(235,244,240,.58);letter-spacing:.02em}
.product-meta span{color:rgba(235,244,240,.42)}
.satellite-network-status{margin:16px auto 0;max-width:620px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);font-size:12px;line-height:1.45;text-align:center;color:rgba(241,247,244,.76)}
.satellite-network-status strong{color:#fff;font-weight:700}
.satellite-network-status.is-active{border-color:rgba(101,210,155,.25);background:rgba(101,210,155,.06)}
.satellite-network-status.is-relay{border-color:rgba(101,210,155,.4);background:rgba(101,210,155,.1)}
.network-zone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:16px 6px 4px}
.network-zone-card{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);padding:12px;min-height:78px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.network-zone-card strong{font-size:16px}.network-zone-card small{opacity:.65;line-height:1.35}
.relay-head{margin-top:22px}
@media (max-width:760px){.product-meta{margin-top:14px}.network-zone-grid{grid-template-columns:1fr 1fr}.satellite-network-status{margin-left:0;margin-right:0}}


/* V20.1 — Mode Diffusion hôte longue durée */
.broadcast-stage{position:relative;flex:1;min-height:0;background:#020504;overflow:hidden;display:grid;place-items:center;border-radius:18px;border:1px solid rgba(255,255,255,.08);isolation:isolate}.broadcast-stage.hidden{display:none}.broadcast-media{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:1}.broadcast-file-source{z-index:2}.broadcast-file-source::-webkit-media-controls-panel{background:linear-gradient(transparent,rgba(0,0,0,.72))}.broadcast-shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.44),transparent 18%,transparent 76%,rgba(0,0,0,.32))}.broadcast-topbar{position:absolute;top:0;left:0;right:0;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px}.broadcast-status{display:flex;align-items:center;gap:10px;min-width:0;background:rgba(5,12,10,.68);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:9px 12px}.broadcast-status strong,.broadcast-status small{display:block}.broadcast-status strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(54vw,620px)}.broadcast-status small{font-size:10px;color:#a9bbb5;margin-top:2px}.broadcast-live-dot{width:9px;height:9px;border-radius:50%;background:#f34f4f;box-shadow:0 0 0 5px rgba(243,79,79,.14);flex:0 0 auto}.broadcast-actions{display:flex;align-items:center;gap:7px}.broadcast-overlay-button,.broadcast-stop-button{border:1px solid rgba(255,255,255,.12);background:rgba(5,12,10,.72);backdrop-filter:blur(16px);color:#f5f8f7;border-radius:10px;min-height:40px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:600}.broadcast-overlay-button:hover{background:rgba(19,49,42,.88)}.broadcast-stop-button{background:#b93e3e;border-color:transparent}.broadcast-stop-button:hover{filter:brightness(1.08)}.broadcast-waiting{position:relative;z-index:4;display:grid;place-items:center;text-align:center;gap:8px;color:#d9e1de}.broadcast-waiting.hidden{display:none}.broadcast-waiting span{color:#84958f;font-size:12px}.broadcast-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.13);border-top-color:#fff;animation:broadcast-spin .9s linear infinite}@keyframes broadcast-spin{to{transform:rotate(360deg)}}.broadcast-rotate-hint{display:none;position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:8;background:rgba(5,12,10,.86);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px 14px;text-align:center;min-width:min(88vw,340px)}.broadcast-rotate-hint>span{font-size:25px;display:block}.broadcast-rotate-hint strong,.broadcast-rotate-hint small{display:block}.broadcast-rotate-hint strong{font-size:12px;margin-top:2px}.broadcast-rotate-hint small{font-size:10px;color:#9aaba5;margin-top:2px}.broadcast-control .control-icon{background:linear-gradient(135deg,#0f756d,#19483f)}.broadcast-control.broadcasting .control-icon{background:#b93e3e}.broadcast-modal{width:min(720px,100%)}.broadcast-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.broadcast-source-card{border:1px solid var(--line);background:#091714;border-radius:16px;min-height:156px;padding:18px;text-align:left;color:var(--text);display:flex;align-items:flex-start;gap:14px;cursor:pointer}.broadcast-source-card:hover{background:#12302a;border-color:rgba(255,255,255,.17);transform:translateY(-1px)}.broadcast-source-card strong,.broadcast-source-card small{display:block}.broadcast-source-card strong{font-size:15px;line-height:1.25}.broadcast-source-card small{font-size:12px;line-height:1.45;color:var(--muted);margin-top:7px}.broadcast-source-icon{width:44px;height:44px;border-radius:13px;background:rgba(35,135,126,.18);display:grid;place-items:center;font-size:20px;flex:0 0 44px}.broadcast-quality-note{margin-top:14px;padding:12px 14px;border:1px solid rgba(35,135,126,.22);background:rgba(35,135,126,.08);border-radius:12px}.broadcast-quality-note strong,.broadcast-quality-note span{display:block}.broadcast-quality-note strong{font-size:12px}.broadcast-quality-note span{font-size:11px;color:#a7bbb4;line-height:1.45;margin-top:4px}.room-view.broadcast-mode{background:#000}.room-view.broadcast-mode .room-header,.room-view.broadcast-mode .control-bar{display:none}.room-view.broadcast-mode .room-body{height:100vh;min-height:100vh;position:relative}.room-view.broadcast-mode .stage-wrap{padding:0;gap:0;background:#000}.room-view.broadcast-mode .regional-intro,.room-view.broadcast-mode .queue-notice,.room-view.broadcast-mode .video-grid,.room-view.broadcast-mode .audience-strip,.room-view.broadcast-mode .closing-notice{display:none!important}.room-view.broadcast-mode .broadcast-stage{border:0;border-radius:0;width:100%;height:100vh}.room-view.broadcast-mode .side-panel{position:absolute;right:0;top:0;bottom:0;z-index:40;height:100%;box-shadow:-24px 0 56px rgba(0,0,0,.50)}.room-view.broadcast-mode .toast{z-index:60;bottom:24px}.room-view.broadcast-mode .fight-notice{z-index:65}.broadcast-stage:fullscreen,.broadcast-stage:-webkit-full-screen{width:100vw;height:100vh;border-radius:0;border:0}.broadcast-stage:fullscreen .broadcast-media,.broadcast-stage:-webkit-full-screen .broadcast-media{width:100vw;height:100vh}
@media(max-width:900px){.broadcast-source-grid{grid-template-columns:1fr}.broadcast-topbar{padding:10px}.broadcast-status small{display:none}.broadcast-overlay-button span:not(.mini-badge){display:none}.broadcast-overlay-button{width:42px;padding:0;justify-content:center}.broadcast-stop-button{padding:0 10px}.room-view.broadcast-mode .side-panel{top:0;bottom:0;width:min(390px,100%)}}
@media(max-width:560px){.broadcast-modal{padding:18px}.broadcast-source-card{min-height:118px;padding:14px}.broadcast-status strong{max-width:44vw}.broadcast-stop-button{font-size:0;width:42px}.broadcast-stop-button::after{content:'■';font-size:14px}}
@media(max-width:900px) and (orientation:portrait){.room-view.broadcast-mode .broadcast-rotate-hint{display:block}.room-view.broadcast-mode .broadcast-status{max-width:58vw}}

.broadcast-desktop-picker{display:grid;gap:14px}.broadcast-desktop-picker.hidden{display:none}.broadcast-picker-head{display:flex;align-items:flex-start;gap:12px}.broadcast-picker-head>div{display:grid;gap:3px}.broadcast-picker-head strong{font-size:14px}.broadcast-picker-head small{font-size:11px;line-height:1.4;color:var(--muted)}.broadcast-desktop-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:min(48vh,460px);overflow:auto;padding:2px}.broadcast-desktop-source{appearance:none;border:1px solid var(--line);background:#07120f;color:var(--text);border-radius:13px;padding:8px;display:grid;gap:8px;text-align:left;cursor:pointer}.broadcast-desktop-source:hover{border-color:rgba(98,218,191,.42);background:#102620}.broadcast-source-preview{aspect-ratio:16/9;border-radius:9px;overflow:hidden;background:#020504;display:grid;place-items:center;font-size:26px}.broadcast-source-preview img{width:100%;height:100%;object-fit:cover;display:block}.broadcast-source-name{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px 2px}@media(max-width:620px){.broadcast-desktop-sources{grid-template-columns:1fr}.broadcast-picker-head{flex-direction:column}.broadcast-picker-head .secondary-button{width:auto}}


/* V20.1.2 — commandes de diffusion hôte visibles */
.host-broadcast-toolbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid rgba(98,218,191,.18);background:linear-gradient(135deg,rgba(15,62,53,.92),rgba(8,31,27,.92));border-radius:15px;box-shadow:0 10px 28px rgba(0,0,0,.18)}
.host-broadcast-copy{min-width:0;display:grid;gap:2px}.host-broadcast-kicker{font-size:9px;letter-spacing:.12em;font-weight:700;color:#7ee0d1}.host-broadcast-copy>strong{font-size:13px}.host-broadcast-copy>small{font-size:10px;color:#9fb6af;line-height:1.35}
.host-broadcast-actions{display:flex;align-items:stretch;gap:8px;flex:0 0 auto}.host-broadcast-action{appearance:none;border:1px solid rgba(255,255,255,.11);background:#0a211c;color:#edf8f5;border-radius:12px;min-height:52px;padding:8px 11px;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;transition:.16s ease}.host-broadcast-action:hover{background:#12342c;border-color:rgba(126,224,209,.34);transform:translateY(-1px)}.host-broadcast-action-video{background:#17231f}.host-broadcast-action-icon{width:34px;height:34px;border-radius:9px;background:rgba(35,135,126,.22);display:grid;place-items:center;font-size:15px;flex:0 0 34px}.host-broadcast-action>span:last-child{display:grid;gap:2px}.host-broadcast-action strong{font-size:11px;white-space:nowrap}.host-broadcast-action small{font-size:9px;color:#94aaa3;white-space:nowrap}
.room-view.broadcast-mode .host-broadcast-toolbar{display:none!important}
@media(max-width:980px){.host-broadcast-toolbar{align-items:stretch;flex-direction:column;gap:9px}.host-broadcast-actions{width:100%}.host-broadcast-action{flex:1;min-width:0}.host-broadcast-action strong,.host-broadcast-action small{white-space:normal}}
@media(max-width:620px){.host-broadcast-toolbar{padding:10px;border-radius:12px}.host-broadcast-copy>small{display:none}.host-broadcast-actions{display:grid;grid-template-columns:1fr 1fr}.host-broadcast-action{padding:8px}.host-broadcast-action-icon{width:30px;height:30px;flex-basis:30px}.host-broadcast-action small{display:none}.host-broadcast-action strong{font-size:10px}}


/* Cast / projection V20.2 */
.cast-modal{max-width:600px}.cast-status{margin:10px 0 12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#081713;color:#afc3bd;font-size:11px}.cast-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:min(46vh,420px);overflow:auto}.cast-target{appearance:none;border:1px solid rgba(255,255,255,.09);background:#081713;color:var(--text);border-radius:13px;padding:12px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;transition:.16s ease}.cast-target:hover{background:#10251f;border-color:rgba(86,226,178,.3);transform:translateY(-1px)}.cast-target.active{border-color:rgba(86,226,178,.62);background:rgba(35,135,126,.16);box-shadow:0 0 0 2px rgba(86,226,178,.08)}.cast-target-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:rgba(35,135,126,.18);font-size:17px;flex:0 0 36px}.cast-target-copy{min-width:0;display:grid;gap:3px}.cast-target-copy strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cast-target-copy small{font-size:9px;color:#8fa59e;line-height:1.35}.cast-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.cast-help{margin:12px 0 0;color:#81968f;font-size:10px;line-height:1.45}.cast-control .control-icon{font-size:19px}@media(max-width:620px){.cast-targets{grid-template-columns:1fr}.cast-actions>*{flex:1}.guide-card{padding:15px}.guide-heading{grid-template-columns:38px minmax(0,1fr);gap:10px}.guide-icon{width:38px;height:38px;border-radius:11px}.guide-card h3{font-size:18px}.guide-card p{font-size:12px}.guide-impact{font-size:10px}}

/* V20.3 — Network Reliability */
.network-reliability{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-6px 0 18px}.network-reliability article{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border-radius:16px;background:rgba(7,26,23,.66);border:1px solid rgba(121,164,153,.13)}.network-reliability article>div{min-width:0}.network-reliability strong{display:block;font-size:12px}.network-reliability small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}.network-health-dot{width:9px;height:9px;border-radius:50%;margin-top:4px;flex:0 0 auto;background:#9b7a38;box-shadow:0 0 0 4px rgba(155,122,56,.12)}.network-health-dot.healthy{background:#43b99e;box-shadow:0 0 0 4px rgba(67,185,158,.12)}.network-health-dot.warning{background:#d5a642;box-shadow:0 0 0 4px rgba(213,166,66,.12)}.network-health-dot.danger{background:#cf665f;box-shadow:0 0 0 4px rgba(207,102,95,.12)}
@media(max-width:760px){.network-reliability{grid-template-columns:1fr}}

/* V20.4 — Streaming Studio HUB */
.streaming-action{border-color:rgba(212,177,92,.28);background:linear-gradient(180deg,rgba(45,40,24,.94),rgba(24,28,22,.96))}.streaming-action:hover{background:linear-gradient(180deg,rgba(70,58,28,.96),rgba(29,39,29,.98))}.streaming-action .action-icon{background:linear-gradient(145deg,#d9b85e,#8b6b1d);color:#071311}
.streaming-view{min-height:100vh;padding:clamp(14px,2vw,28px);background:radial-gradient(circle at 50% 0,rgba(11,63,60,.32),transparent 38%),#071311}.streaming-shell{width:min(1720px,100%);margin:0 auto}.streaming-head{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:18px;padding:4px 2px 20px}.streaming-head h2{margin:4px 0 4px;font-size:clamp(28px,3vw,42px);letter-spacing:-.04em}.streaming-head p{margin:0;color:var(--muted);font-size:14px}.streaming-head-status{display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(7,19,17,.82);font-size:12px;color:#cbd6d2}.streaming-status-dot{width:9px;height:9px;border-radius:50%;background:#816f3c;box-shadow:0 0 0 4px rgba(129,111,60,.12)}.streaming-status-dot.ready{background:#5ed69b;box-shadow:0 0 0 4px rgba(94,214,155,.12)}.streaming-status-dot.error{background:#ed7777;box-shadow:0 0 0 4px rgba(237,119,119,.12)}
.streaming-layout{display:grid;grid-template-columns:minmax(250px,310px) minmax(460px,1fr) minmax(270px,340px);gap:14px;align-items:start}.streaming-panel,.streaming-program-panel{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(13,31,27,.96),rgba(8,23,20,.98));border-radius:20px;box-shadow:0 18px 50px rgba(0,0,0,.22)}.streaming-panel{padding:18px;display:grid;gap:14px;max-height:calc(100vh - 126px);overflow:auto}.streaming-panel-title{display:flex;gap:11px;align-items:center}.streaming-panel-title>span{width:29px;height:29px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#d9b85e,#8b6b1d);color:#071311;font-weight:700;font-size:13px}.streaming-panel-title strong,.streaming-panel-title small{display:block}.streaming-panel-title strong{font-size:15px}.streaming-panel-title small{font-size:11px;color:var(--muted);margin-top:2px}.streaming-panel-title.compact{margin-top:6px;padding-top:15px;border-top:1px solid var(--line)}
.streaming-source-actions{display:grid;grid-template-columns:1fr;gap:8px}.streaming-source-button{border:1px solid var(--line);border-radius:13px;background:#0a1916;color:var(--text);padding:11px 12px;display:grid;grid-template-columns:34px 1fr;column-gap:10px;text-align:left;cursor:pointer}.streaming-source-button>span{grid-row:1/3;width:34px;height:34px;border-radius:10px;background:#173a33;display:grid;place-items:center}.streaming-source-button strong,.streaming-source-button small{display:block}.streaming-source-button strong{font-size:13px}.streaming-source-button small{font-size:10px;color:var(--muted);margin-top:2px}.streaming-source-button:hover,.streaming-source-button.active{border-color:rgba(218,184,94,.6);background:#11241f}.stream-display-sources{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#06110f}.stream-display-source{border:1px solid var(--line);background:#0c1c19;border-radius:10px;padding:6px;color:var(--text);cursor:pointer;overflow:hidden;text-align:left}.stream-display-source img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#050807}.stream-display-source span{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.streaming-setting-row{border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:#091714}.streaming-setting-row small{display:block;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.35}.switch-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.switch-label input{accent-color:#d8b65b}.stream-field{display:grid;gap:6px;font-size:11px;color:#c8d1cd}.stream-field input,.stream-field select,.stream-destination-fields input,.stream-destination-fields select{width:100%;border:1px solid var(--line);background:#06110f;color:var(--text);border-radius:10px;padding:10px 11px;outline:none}.stream-field input:focus,.stream-destination-fields input:focus,.stream-destination-fields select:focus{border-color:rgba(218,184,94,.65)}.stream-brand-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.stream-brand-row label{display:grid;gap:5px;font-size:10px;color:var(--muted)}.stream-brand-row input[type=color]{width:100%;height:38px;border:1px solid var(--line);border-radius:10px;background:#06110f;padding:3px}.quiet-stream-button{border:0;background:transparent;color:var(--muted);font-size:11px;text-align:left;padding:0;cursor:pointer}.quiet-stream-button:hover{color:var(--text)}
.streaming-program-panel{padding:14px;position:sticky;top:14px}.streaming-program-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 11px}.streaming-program-head>div:first-child{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em}.streaming-live-dot{width:8px;height:8px;border-radius:50%;background:#78817d}.streaming-program-panel.is-live .streaming-live-dot{background:#ff5555;box-shadow:0 0 0 5px rgba(255,85,85,.12);animation:streamPulse 1.6s infinite}.streaming-format-switch{display:flex;gap:3px;border:1px solid var(--line);background:#06110f;padding:3px;border-radius:10px}.streaming-format-switch button{border:0;background:transparent;color:var(--muted);padding:6px 10px;border-radius:7px;font-size:11px;cursor:pointer}.streaming-format-switch button.active{background:#173a33;color:#fff}.streaming-preview-frame{position:relative;width:100%;overflow:hidden;border-radius:15px;background:#020504;border:1px solid rgba(255,255,255,.08);transition:max-width .25s ease,aspect-ratio .25s ease;margin:auto}.streaming-preview-frame.landscape{aspect-ratio:16/9}.streaming-preview-frame.portrait{aspect-ratio:9/16;max-width:min(430px,72vh)}.streaming-preview-frame canvas{width:100%;height:100%;display:block;object-fit:contain;background:#020504}.streaming-empty-preview{position:absolute;inset:0;display:grid;place-items:center;align-content:center;text-align:center;gap:5px;background:radial-gradient(circle at 50% 40%,rgba(11,63,60,.24),transparent 40%)}.streaming-empty-preview>span{font-size:44px;color:#d9b85e}.streaming-empty-preview strong{font-size:17px}.streaming-empty-preview small{color:var(--muted);font-size:11px}.streaming-control-strip{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:14px 4px 2px}.streaming-control-copy strong,.streaming-control-copy small{display:block}.streaming-control-copy strong{font-size:13px}.streaming-control-copy small{font-size:10px;color:var(--muted);margin-top:4px;max-width:520px}.stream-go-live,.stream-stop-live{min-height:48px;border-radius:13px;border:0;padding:0 18px;font-weight:700;letter-spacing:.04em;cursor:pointer}.stream-go-live{background:#d4ad43;color:#071311}.stream-go-live:hover:not(:disabled){filter:brightness(1.08)}.stream-go-live:disabled{opacity:.35;cursor:not-allowed}.stream-stop-live{background:#b83f46;color:white}.stream-runtime-stats{display:flex;gap:14px;align-items:center;margin-top:12px;padding:10px 12px;border-radius:11px;background:rgba(184,63,70,.09);border:1px solid rgba(184,63,70,.22);font-size:11px}.stream-runtime-stats span:first-child{font-variant-numeric:tabular-nums;font-weight:700}.stream-event-log{margin-top:8px;max-height:82px;overflow:auto;font-size:10px;color:#aebbb6}.stream-event-entry{padding:3px 2px}.stream-event-entry.error{color:#ff9b9b}.stream-event-entry.success{color:#8ee3b8}
.stream-destinations{display:grid;gap:8px}.stream-destination{border:1px solid var(--line);border-radius:13px;background:#091714;overflow:hidden}.stream-destination-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px}.stream-platform-mark{width:34px;height:34px;border-radius:10px;background:#173a33;display:grid;place-items:center;font-weight:700;font-size:12px}.stream-destination-title strong,.stream-destination-title small{display:block}.stream-destination-title strong{font-size:12px}.stream-destination-title small{font-size:9px;color:var(--muted);margin-top:2px}.stream-destination-toggle{accent-color:#d8b65b;width:17px;height:17px}.stream-destination-fields{display:none;gap:7px;padding:0 10px 10px}.stream-destination.enabled .stream-destination-fields{display:grid}.stream-destination-fields .row{display:grid;grid-template-columns:1fr 88px;gap:7px}.stream-destination-fields small{font-size:9px;line-height:1.35;color:var(--muted)}.stream-key-wrap{position:relative}.stream-key-wrap input{padding-right:42px}.stream-key-toggle{position:absolute;right:5px;top:5px;border:0;background:#173a33;color:#dbe4df;border-radius:7px;height:30px;width:32px;cursor:pointer}.streaming-add-destination{width:100%;justify-content:center;min-height:42px}.stream-secure-storage{font-size:10px;line-height:1.4;color:#aebbb6;background:#06110f;border-radius:10px;padding:9px 10px}.streaming-parity-note{display:grid;gap:4px;padding:11px;border-left:2px solid #d4ad43;background:rgba(212,173,67,.06);font-size:10px}.streaming-parity-note span{color:var(--muted);line-height:1.45}
@keyframes streamPulse{0%,100%{opacity:1}50%{opacity:.52}}
@media(max-width:1250px){.streaming-layout{grid-template-columns:260px 1fr}.streaming-destinations-panel{grid-column:1/-1;max-height:none}.stream-destinations{grid-template-columns:repeat(2,minmax(0,1fr))}.streaming-panel{max-height:none}.streaming-program-panel{top:8px}}
@media(max-width:850px){.streaming-head{grid-template-columns:auto 1fr}.streaming-head-status{grid-column:1/-1;justify-self:start}.streaming-layout{grid-template-columns:1fr}.streaming-program-panel{position:relative;top:auto;grid-row:1}.streaming-sources-panel{grid-row:2}.streaming-destinations-panel{grid-row:3}.stream-destinations{grid-template-columns:1fr}.streaming-control-strip{grid-template-columns:1fr}.stream-go-live,.stream-stop-live{width:100%}}

/* V20.5 · Streaming Studio Pro ------------------------------------------------ */
.streaming-production-grid{display:grid;grid-template-columns:1.2fr 1fr 1.1fr;gap:14px;margin-top:14px}.streaming-production-panel{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(13,31,27,.96),rgba(8,23,20,.98));border-radius:20px;padding:18px;display:grid;gap:13px;min-width:0}.stream-invite-row,.stream-scene-actions,.stream-comment-actions{display:flex;gap:8px;flex-wrap:wrap}.stream-guest-invite-box{display:grid;gap:6px}.stream-guest-invite-box input{width:100%;border:1px solid var(--line);background:#06110f;color:#dbe4df;border-radius:10px;padding:10px 11px;font-size:10px}.stream-guest-invite-box small{font-size:9px;line-height:1.4;color:var(--muted)}
.stream-backstage-list{display:grid;gap:8px;max-height:360px;overflow:auto}.stream-backstage-card{display:grid;grid-template-columns:110px 1fr;gap:10px;border:1px solid var(--line);background:#091714;border-radius:13px;padding:8px}.stream-backstage-card.on-stage{border-color:rgba(212,173,67,.58);box-shadow:inset 0 0 0 1px rgba(212,173,67,.14)}.stream-backstage-preview{position:relative;aspect-ratio:16/9;border-radius:9px;overflow:hidden;background:#020504}.stream-backstage-preview video{width:100%;height:100%;object-fit:cover;display:block}.stream-backstage-preview span{position:absolute;left:5px;bottom:5px;border-radius:999px;padding:3px 6px;background:rgba(4,12,10,.8);font-size:7px;font-weight:700;letter-spacing:.08em}.stream-backstage-card.on-stage .stream-backstage-preview span{background:#a67f20;color:#071311}.stream-backstage-body{display:grid;gap:4px;align-content:center}.stream-backstage-body>strong{font-size:12px}.stream-backstage-body>small{font-size:9px;color:var(--muted)}.stream-backstage-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}.stream-backstage-actions button{min-height:28px;padding:0 8px;border-radius:7px;font-size:9px}.quiet-stream-button.danger{color:#f08b8f}
.stream-studio-chat-host{border-top:1px solid var(--line);padding-top:10px}.stream-studio-chat-log{max-height:120px;overflow:auto;display:grid;gap:5px;margin-bottom:7px}.stream-studio-chat-row{display:grid;grid-template-columns:auto 1fr;gap:6px;font-size:9px}.stream-studio-chat-row strong{color:#d9b85e}.stream-studio-chat-row span{color:#c9d4cf}.stream-studio-chat-host form{display:grid;grid-template-columns:1fr auto;gap:6px}.stream-studio-chat-host input{border:1px solid var(--line);background:#06110f;color:var(--text);border-radius:9px;padding:9px}.stream-studio-chat-host button{border:0;border-radius:9px;background:#173a33;color:#fff;padding:0 11px;font-weight:700}
.stream-layout-toolbar{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.stream-layout-toolbar button{border:1px solid var(--line);background:#081713;color:var(--muted);border-radius:9px;min-height:38px;font-size:9px;cursor:pointer}.stream-layout-toolbar button.active{border-color:#d4ad43;background:rgba(212,173,67,.12);color:#fff}.stream-scenes-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.stream-scene-card{border:1px solid var(--line);background:#091714;color:#fff;border-radius:11px;padding:10px;text-align:left;display:grid;gap:3px;cursor:pointer}.stream-scene-card:hover{border-color:rgba(212,173,67,.55)}.stream-scene-card strong{font-size:11px}.stream-scene-card span{font-size:8px;color:var(--muted)}
.stream-comment-connector{border:1px solid var(--line);border-radius:12px;background:#091714;padding:9px}.stream-comment-connector summary{cursor:pointer;font-size:11px;font-weight:700;display:flex;justify-content:space-between;gap:8px}.stream-comment-connector summary span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stream-comment-connector summary span.connected{color:#70d9a5}.stream-comment-connector label{display:grid;gap:4px;margin-top:8px;font-size:9px;color:var(--muted)}.stream-comment-connector input{border:1px solid var(--line);background:#06110f;color:#fff;border-radius:9px;padding:9px}.stream-comments-list{display:grid;gap:6px;max-height:310px;overflow:auto}.stream-comment-row{border:1px solid var(--line);background:#091714;color:#fff;border-radius:11px;padding:9px;text-align:left;display:grid;gap:4px;cursor:pointer}.stream-comment-row:hover{border-color:rgba(212,173,67,.55)}.stream-comment-author{font-size:8px;color:#d9b85e;text-transform:uppercase;letter-spacing:.05em}.stream-comment-row strong{font-size:10px;line-height:1.4;font-weight:600}

/* Guest page */
.stream-guest-body{min-height:100vh;background:radial-gradient(circle at 50% 0,rgba(11,63,60,.34),transparent 40%),#071311;color:#fff}.stream-guest-shell{width:min(900px,calc(100% - 28px));margin:0 auto;padding:28px 0 50px}.stream-guest-brand{display:flex;align-items:center;gap:11px;margin-bottom:16px}.stream-guest-brand img{width:42px;height:42px;border-radius:12px}.stream-guest-brand strong,.stream-guest-brand span{display:block}.stream-guest-brand strong{font-size:15px}.stream-guest-brand span{font-size:10px;color:var(--muted)}.stream-guest-card{border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(13,31,27,.98),rgba(8,23,20,.98));border-radius:22px;padding:clamp(18px,4vw,32px);box-shadow:0 24px 70px rgba(0,0,0,.3)}.stream-guest-card h1{font-size:clamp(27px,5vw,46px);line-height:1.02;letter-spacing:-.04em;margin:8px 0 10px}.stream-guest-card>p{color:var(--muted);line-height:1.55;max-width:700px}.stream-guest-preview,.stream-guest-program{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#020504;border:1px solid var(--line);margin:18px 0}.stream-guest-preview video,.stream-guest-program video{width:100%;height:100%;object-fit:cover;display:block}.stream-guest-preview #guestPreviewFallback,.stream-guest-program #guestProgramWait{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:12px;padding:20px;background:radial-gradient(circle at center,rgba(11,63,60,.22),transparent 50%)}.stream-guest-prejoin-controls,.stream-guest-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.stream-guest-prejoin-controls button,.stream-guest-actions button{border:1px solid var(--line);background:#091714;color:#c9d4cf;border-radius:11px;padding:10px 13px;cursor:pointer}.stream-guest-prejoin-controls button.active,.stream-guest-actions button.active{border-color:rgba(212,173,67,.55);color:#fff;background:#11241f}.stream-guest-status{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center}.stream-guest-status>span{width:10px;height:10px;border-radius:50%;background:#76817d;grid-row:1/3}.stream-guest-status>span.live{background:#ee5a62;box-shadow:0 0 0 5px rgba(238,90,98,.12)}.stream-guest-status strong{font-size:15px}.stream-guest-status small{font-size:10px;color:var(--muted)}.stream-guest-chat{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.stream-guest-chat>strong{font-size:12px}.stream-guest-chat>div{display:grid;gap:5px;max-height:150px;overflow:auto;margin:9px 0}.stream-guest-chat-row{display:grid;grid-template-columns:auto 1fr;gap:7px;font-size:10px}.stream-guest-chat-row strong{color:#d9b85e}.stream-guest-chat-row span{color:#cbd6d2}.stream-guest-chat form{display:grid;grid-template-columns:1fr auto;gap:7px}.stream-guest-chat input{border:1px solid var(--line);background:#06110f;color:#fff;border-radius:10px;padding:10px}.stream-guest-chat button{border:0;border-radius:10px;background:#173a33;color:#fff;padding:0 14px;font-weight:700}

@media(max-width:1250px){.streaming-production-grid{grid-template-columns:1fr 1fr}.streaming-production-panel:last-child{grid-column:1/-1}}
@media(max-width:850px){.streaming-production-grid{grid-template-columns:1fr}.streaming-production-panel:last-child{grid-column:auto}.stream-layout-toolbar{grid-template-columns:repeat(2,1fr)}.stream-backstage-card{grid-template-columns:96px 1fr}}
@media(max-width:600px){.stream-guest-shell{width:min(100% - 18px,900px);padding-top:14px}.stream-guest-card{border-radius:16px}.stream-guest-prejoin-controls,.stream-guest-actions{display:grid;grid-template-columns:1fr 1fr}.stream-guest-actions button:last-child{grid-column:1/-1}.stream-scenes-list{grid-template-columns:1fr}}
.stream-guest-volume{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;font-size:8px;color:var(--muted)}.stream-guest-volume input{width:100%;accent-color:#d4ad43}

/* V20.6 — Portails Streaming Régisseur / Modérateur */
.studio-operator-page{margin:0;min-height:100vh;background:radial-gradient(circle at top,#123a34 0,#071311 46%,#030908 100%);color:#f8f4ea;font-family:Roboto,Arial,sans-serif}
.operator-shell{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:32px 0 60px}
.operator-login-card{width:min(520px,100%);margin:8vh auto 0;padding:34px;border:1px solid rgba(212,177,92,.22);background:rgba(7,19,17,.94);box-shadow:0 24px 70px rgba(0,0,0,.34)}
.operator-brand{display:flex;align-items:center;gap:16px}.operator-brand img{width:54px;height:54px;object-fit:contain}.operator-brand h1{margin:3px 0 0;font-size:26px}.operator-brand p{margin:4px 0 0;color:rgba(255,255,255,.62)}
.operator-login-card>p{color:rgba(255,255,255,.68);line-height:1.55}.operator-login-form{display:grid;gap:15px;margin-top:24px}.operator-login-form label{display:grid;gap:7px;font-weight:700}.operator-login-form input{width:100%;box-sizing:border-box;background:#0a201c;border:1px solid rgba(255,255,255,.13);color:#fff;padding:13px 14px;font-size:15px}.operator-login-error{margin-top:14px;padding:12px 14px;background:rgba(176,42,49,.18);border:1px solid rgba(255,92,101,.35);color:#ffd5d8}.operator-security-note{display:block;margin-top:18px;color:rgba(255,255,255,.48)}
.operator-console{display:grid;gap:18px}.operator-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 20px;background:rgba(7,19,17,.9);border:1px solid rgba(255,255,255,.08)}.operator-head-actions{display:flex;align-items:center;gap:12px}.operator-connection{padding:7px 10px;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.6);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.operator-connection.online{border-color:rgba(89,213,151,.35);color:#8ce5b8;background:rgba(43,129,91,.12)}
.operator-main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,.8fr);gap:18px}.operator-bottom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.operator-program-card,.operator-panel{background:rgba(7,19,17,.9);border:1px solid rgba(255,255,255,.08);padding:18px}.operator-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.operator-section-head>div{display:grid;gap:3px}.operator-section-head small{color:rgba(255,255,255,.52)}
.operator-program-frame{position:relative;aspect-ratio:16/9;background:#020706;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.operator-program-frame video{width:100%;height:100%;object-fit:contain;background:#000}.operator-program-wait{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:30px;color:rgba(255,255,255,.5)}.operator-live-badge{font-size:11px;font-weight:700;letter-spacing:.1em;padding:6px 9px;background:rgba(255,255,255,.07)}.operator-live-badge.live{background:#b62d35;color:#fff}
.operator-producer-controls{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:10px}.operator-producer-controls>span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.58)}.operator-layouts,.operator-scenes{display:flex;flex-wrap:wrap;gap:8px}.operator-layouts button{background:#102823;color:#fff;border:1px solid rgba(255,255,255,.1);padding:8px 11px;cursor:pointer}.operator-layouts button:hover{border-color:rgba(212,177,92,.55)}
.operator-guest-list{display:grid;gap:10px;max-height:590px;overflow:auto}.operator-guest-card{display:grid;gap:10px;padding:13px;background:#0a201c;border-left:3px solid rgba(255,255,255,.12)}.operator-guest-card.on-stage{border-left-color:#d4b15c}.operator-guest-card>div:first-child{display:grid;gap:4px}.operator-guest-card small{color:rgba(255,255,255,.52)}.operator-guest-actions{display:flex;flex-wrap:wrap;gap:7px}.operator-chat-form{display:flex;gap:8px;margin-top:10px}.operator-chat-form input{flex:1;min-width:0;background:#0a201c;border:1px solid rgba(255,255,255,.11);color:#fff;padding:10px}
.operator-team-list{display:grid;gap:8px}.operator-team-row{display:flex;align-items:center;gap:10px;padding:10px;background:#0a201c}.operator-team-row>div{display:grid}.operator-team-row small{color:rgba(255,255,255,.5)}.operator-team-dot{width:9px;height:9px;border-radius:50%;background:#58cf91;box-shadow:0 0 0 4px rgba(88,207,145,.1)}
.operator-toast{position:fixed;right:24px;bottom:24px;max-width:420px;padding:13px 16px;background:#123a34;border:1px solid rgba(212,177,92,.35);box-shadow:0 18px 45px rgba(0,0,0,.35);z-index:100}.operator-toast.error{background:#4c171b;border-color:rgba(255,102,110,.4)}

/* Administration locale de l'équipe Streaming */
.stream-team-panel{grid-column:1/-1}.stream-team-create{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end;margin:12px 0 16px}.stream-team-create label{display:grid;gap:6px;font-size:12px;color:rgba(255,255,255,.64)}.stream-team-create input,.stream-team-create select{background:#0a201c;border:1px solid rgba(255,255,255,.12);color:#fff;padding:10px}.stream-team-list{display:grid;gap:9px}.stream-team-card{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.3fr) auto;gap:12px;align-items:center;padding:12px;background:#0a201c;border-left:3px solid rgba(212,177,92,.55)}.stream-team-card.revoked{opacity:.55;border-left-color:rgba(255,255,255,.2)}.stream-team-card>div{display:grid;gap:3px}.stream-team-card small{color:rgba(255,255,255,.48)}.stream-team-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.stream-team-credentials{margin-top:12px;padding:13px;background:rgba(212,177,92,.08);border:1px solid rgba(212,177,92,.22);display:grid;gap:6px}.stream-team-credentials code{word-break:break-all;color:#f3d887}.stream-team-security{margin-top:10px;color:rgba(255,255,255,.52);font-size:12px;line-height:1.5}
@media(max-width:1000px){.operator-main-grid,.operator-bottom-grid{grid-template-columns:1fr}.stream-team-create{grid-template-columns:1fr 1fr}.stream-team-card{grid-template-columns:1fr}.stream-team-actions{justify-content:flex-start}}
@media(max-width:620px){.operator-shell{width:min(100% - 18px,1500px);padding-top:14px}.operator-head{align-items:flex-start;flex-direction:column}.operator-head-actions{width:100%;justify-content:space-between}.operator-login-card{padding:22px;margin-top:4vh}.stream-team-create{grid-template-columns:1fr}}
.operator-branding{margin-top:6px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px}.operator-branding summary{cursor:pointer;color:rgba(255,255,255,.72);font-weight:700}.operator-branding-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.operator-branding-grid label{display:grid;gap:5px;font-size:12px;color:rgba(255,255,255,.55)}.operator-branding-grid input{background:#0a201c;border:1px solid rgba(255,255,255,.11);color:#fff;padding:9px}.operator-branding-grid button{align-self:end}@media(max-width:620px){.operator-branding-grid{grid-template-columns:1fr}}

/* V20.6.2 — Salon Diffusion : expérience cinéma mobile */
.broadcast-topbar,.broadcast-shade{transition:opacity .24s ease,transform .24s ease}
.broadcast-stage.broadcast-ui-hidden .broadcast-topbar{opacity:0;transform:translateY(-8px);pointer-events:none}
.broadcast-stage.broadcast-ui-hidden .broadcast-shade{opacity:0}
.broadcast-stage:not(.broadcast-ui-hidden) .broadcast-topbar{opacity:1;transform:translateY(0)}

@media(max-width:900px){
  .room-view.broadcast-mode .side-panel{
    position:fixed;
    z-index:55;
    left:max(8px,env(safe-area-inset-left));
    right:max(8px,env(safe-area-inset-right));
    top:auto;
    bottom:max(8px,env(safe-area-inset-bottom));
    width:auto;
    height:min(44dvh,420px);
    max-height:calc(100dvh - 28px);
    border:1px solid rgba(255,255,255,.14);
    border-radius:18px;
    overflow:hidden;
    background:rgba(7,20,17,.97);
    box-shadow:0 -22px 58px rgba(0,0,0,.52);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
  }
  .room-view.broadcast-mode .side-tabs{
    min-height:50px;
    flex:0 0 50px;
    padding:5px 7px 5px 13px;
    background:rgba(12,31,27,.98);
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  .room-view.broadcast-mode #participantsTab,
  .room-view.broadcast-mode #requestsTab{display:none!important}
  .room-view.broadcast-mode #chatTab{
    display:flex!important;
    flex:1;
    justify-content:flex-start;
    min-height:38px;
    padding-left:4px;
    font-weight:700;
    color:#eef8f5;
    background:transparent;
  }
  .room-view.broadcast-mode #chatTab::before{content:'Discussion pendant la diffusion';font-size:12px}
  .room-view.broadcast-mode #chatTab{font-size:0}
  .room-view.broadcast-mode .panel-close{
    margin-left:auto;
    width:40px;
    height:40px;
    flex:0 0 40px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#17362f;
    color:#fff;
    font-size:27px;
    line-height:1;
  }
  .room-view.broadcast-mode .chat-panel{min-height:0;overflow:hidden;background:rgba(5,14,12,.96)}
  .room-view.broadcast-mode .messages{min-height:0;overflow:auto;padding:12px 13px 8px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .room-view.broadcast-mode .chat-form{flex:0 0 auto;padding:9px 10px max(9px,env(safe-area-inset-bottom));background:rgba(9,24,20,.98)}
  .room-view.broadcast-mode .chat-form input{font-size:16px;min-height:43px}
  .room-view.broadcast-mode .chat-form button{width:44px;min-height:43px}
  .broadcast-stage{touch-action:manipulation}
}

@media(max-width:900px) and (orientation:landscape){
  .room-view.broadcast-mode .side-panel{height:min(48dvh,300px)}
  .room-view.broadcast-mode .broadcast-rotate-hint{display:none!important}
}

@media(max-width:560px){
  .room-view.broadcast-mode .broadcast-topbar{padding:max(8px,env(safe-area-inset-top)) 9px 8px}
  .room-view.broadcast-mode .broadcast-status{padding:7px 9px;max-width:calc(100vw - 112px)}
  .room-view.broadcast-mode .broadcast-status strong{max-width:calc(100vw - 158px);font-size:11px}
  .room-view.broadcast-mode .broadcast-actions{gap:6px}
  .room-view.broadcast-mode .broadcast-overlay-button{width:40px;min-height:38px}
}


/* V20.6.2 — Cinéma mobile équilibré + tiroir social */
.broadcast-audience-bar{display:none}
@media(max-width:900px){
  .room-view.broadcast-mode .broadcast-audience-bar{display:flex;align-items:center;gap:10px;min-height:58px;padding:7px 9px 7px 12px;background:linear-gradient(180deg,rgba(15,43,36,.99),rgba(10,29,25,.98));border-bottom:1px solid rgba(255,255,255,.09);flex:0 0 58px}
  .room-view.broadcast-mode .broadcast-audience-bar.hidden{display:none}
  .broadcast-audience-copy{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.broadcast-audience-copy>div{min-width:0}.broadcast-audience-copy strong,.broadcast-audience-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.broadcast-audience-copy strong{font-size:11px;color:#edf8f4}.broadcast-audience-copy small{font-size:9px;color:#89a39b;margin-top:2px}.broadcast-audience-dot{width:8px;height:8px;border-radius:50%;background:#59d597;box-shadow:0 0 0 4px rgba(89,213,151,.10);flex:0 0 auto}
  .broadcast-audience-avatars{display:flex;align-items:center;flex:0 0 auto;padding-left:4px}.broadcast-audience-avatar{position:relative;margin-left:-7px}.broadcast-audience-avatar:first-child{margin-left:0}.broadcast-audience-avatar .avatar{width:29px;height:29px;font-size:9px;border:2px solid #102b25;box-shadow:0 2px 8px rgba(0,0,0,.24)}.broadcast-audience-speaking{position:absolute;right:0;bottom:0;width:7px;height:7px;border-radius:50%;background:#62e3a5;border:1px solid #102b25}.broadcast-audience-more{height:27px;min-width:27px;padding:0 5px;margin-left:-6px;border-radius:14px;background:#183b33;border:2px solid #102b25;display:grid;place-items:center;font-size:9px;font-weight:700;color:#dff3ed}
  .broadcast-audience-open{height:34px;padding:0 9px;border:1px solid rgba(255,255,255,.10);background:#173a32;color:#e9f6f2;border-radius:9px;font-size:10px;font-weight:700;cursor:pointer}
  .room-view.broadcast-mode #participantsTab{display:flex!important}
  .room-view.broadcast-mode #requestsTab{display:none!important}
  .room-view.broadcast-mode .side-tabs{min-height:46px;flex-basis:46px;padding:4px 7px;gap:5px}
  .room-view.broadcast-mode #participantsTab,.room-view.broadcast-mode #chatTab{font-size:11px!important;flex:0 0 auto;justify-content:center;min-height:36px;padding:0 11px;border-radius:9px}
  .room-view.broadcast-mode #chatTab::before{content:none}
  .room-view.broadcast-mode .panel-close{margin-left:auto}
  .room-view.broadcast-mode .participants-list{padding:7px 9px}.room-view.broadcast-mode .participant-row{padding:8px;gap:8px}.room-view.broadcast-mode .participant-row>.avatar{width:31px;height:31px}.room-view.broadcast-mode .participant-meta strong{font-size:12px}.room-view.broadcast-mode .participant-meta small{font-size:10px}
}
@media(max-width:560px){
  .room-view.broadcast-mode .side-panel{height:min(52dvh,390px)}
  .broadcast-audience-copy small{display:none}.broadcast-audience-open{display:none}.broadcast-audience-avatars{max-width:128px;overflow:hidden;padding-right:2px}
}
@media(max-width:900px) and (orientation:landscape){
  .room-view.broadcast-mode .side-panel{height:min(58dvh,320px)}
  .room-view.broadcast-mode .broadcast-audience-bar{min-height:50px;flex-basis:50px}.broadcast-audience-copy small{display:none}
}

/* V20.6.5 — conversation privée Community persistante depuis un Salon. */
.private-chat-trigger{border:1px solid rgba(217,174,55,.5);background:rgba(217,174,55,.12);color:#f2d986;font-size:12px;font-weight:700;padding:7px 9px;cursor:pointer;white-space:nowrap}
.private-chat-trigger:hover{background:rgba(217,174,55,.2)}
.private-chat-drawer{position:fixed;z-index:1900;right:18px;bottom:18px;width:min(390px,calc(100vw - 36px));height:min(580px,72vh);display:flex;flex-direction:column;background:#081714;border:1px solid rgba(217,174,55,.34);box-shadow:0 24px 70px rgba(0,0,0,.5);color:#f7f7f4}
.private-chat-drawer.hidden{display:none!important}.private-chat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.1);background:#0b211d}.private-chat-head strong{display:block}.private-chat-head small{display:block;color:#9fb9b3;margin-top:2px}.private-chat-head button{border:0;background:transparent;color:#fff;font-size:26px;line-height:1;cursor:pointer}
.private-chat-messages{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.private-chat-empty{margin:auto;color:#8fa9a3;text-align:center;padding:24px}.private-chat-msg{max-width:84%;padding:9px 10px;background:#102923;border:1px solid rgba(255,255,255,.08);font-size:13px;line-height:1.4}.private-chat-msg.mine{align-self:flex-end;background:#173e35;border-color:rgba(217,174,55,.22)}.private-chat-msg small{display:block;margin-top:4px;color:#86a39d;font-size:10px}.private-chat-msg.pending{opacity:.7}.private-chat-compose{display:flex;gap:8px;padding:10px;border-top:1px solid rgba(255,255,255,.1)}.private-chat-compose textarea{flex:1;min-height:42px;max-height:110px;resize:none;border:1px solid rgba(255,255,255,.14);background:#06100e;color:#fff;padding:10px;font:13px/1.4 inherit}.private-chat-compose button{border:0;background:linear-gradient(135deg,#d9ae37,#f2d67b);color:#17352f;font-weight:700;padding:0 14px;cursor:pointer}.private-chat-continuity{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:#0d1c19;color:#91aaa4;font-size:11px}.private-chat-continuity a{color:#e8c95d;font-weight:700;text-decoration:none}.private-chat-continuity a.hidden{display:none}.private-chat-status{padding:6px 12px;color:#c0d0cc;font-size:11px;background:#0b1715}.private-chat-status.error{color:#ffb3a8}
@media(max-width:680px){.private-chat-drawer{left:0;right:0;bottom:0;width:100%;height:min(50vh,460px);border-left:0;border-right:0;border-bottom:0}.broadcast-mode .private-chat-drawer{height:min(44vh,400px)}.participant-row .private-chat-trigger{padding:6px 8px}}
.message-private{border:0;background:transparent;color:#e8c95d;font-size:10px;font-weight:700;cursor:pointer;padding:2px 4px}.message-private:hover{text-decoration:underline}


/* Bonjour Presenter */
.presenter-stage{position:absolute;inset:0;background:#111;display:flex;align-items:center;justify-content:center;z-index:1}.presenter-stage.hidden{display:none}.presenter-frame{width:100%;height:100%;border:0;background:#fff}.presenter-controls{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:9px 12px;background:rgba(9,24,23,.94);border:1px solid rgba(214,174,72,.36);box-shadow:0 12px 34px rgba(0,0,0,.35);z-index:6;color:#fff;border-radius:14px}.presenter-controls.hidden{display:none}.presenter-controls button{min-width:42px;height:38px;border:0;border-radius:9px;background:#fff;color:#0B3F3C;font-size:20px;font-weight:700;cursor:pointer}.presenter-controls label{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.presenter-controls input[type=number]{width:58px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:#fff;color:#111;padding:0 7px}.presenter-controls select{height:34px;border-radius:8px;border:0;padding:0 7px}.presenter-loop input{accent-color:#d8b45d}.presenter-source-card{border-color:rgba(214,174,72,.5)!important}.whats-new-modal{max-width:690px}.update-version-card{padding:18px;border:1px solid rgba(214,174,72,.38);background:linear-gradient(135deg,rgba(11,63,60,.08),rgba(214,174,72,.09));margin:14px 0}.update-version-card p{margin:8px 0 0}.update-roadmap{display:grid;gap:9px}.update-roadmap article{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:center;padding:12px;border:1px solid rgba(0,0,0,.08);border-radius:10px}.update-roadmap article small{grid-column:2;color:#68716f}.update-status{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.update-status.available{background:#dff5e7;color:#176a37}.update-status.active{background:#fff0c7;color:#8b6100}.update-status.planned{background:#e9edf0;color:#445058}.update-footnote{font-size:12px;color:#6c7572}.modal-actions{display:flex;justify-content:flex-end;margin-top:16px}
@media(max-width:760px){.presenter-controls{bottom:10px;max-width:calc(100vw - 16px);overflow-x:auto;justify-content:flex-start}.presenter-controls label{font-size:11px}.whats-new-modal{max-height:92vh;overflow:auto}}

/* V20.8.0 — Administration des mises à jour Satellite */
.satellite-update-admin{margin-top:20px;padding:20px;border:1px solid rgba(214,174,72,.28);background:linear-gradient(145deg,rgba(10,31,27,.96),rgba(11,63,60,.9));border-radius:18px;box-shadow:0 16px 40px rgba(0,0,0,.18);color:#fff}.satellite-update-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.satellite-update-head h3{margin:5px 0 7px;font-size:22px}.satellite-update-head p{max-width:760px;margin:0;color:#bed0ca;font-size:13px;line-height:1.55}.satellite-update-current{margin:18px 0}.satellite-update-release{padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);border-radius:14px}.satellite-update-release-main{display:flex;gap:12px;align-items:center}.satellite-update-release-main strong,.satellite-update-release-main small{display:block}.satellite-update-release-main strong{font-size:16px}.satellite-update-release-main small{margin-top:3px;color:#b8c9c3;font-size:11px}.satellite-update-release p{margin:12px 0;color:#eef5f2;font-size:12px;line-height:1.55}.satellite-update-deployment{display:flex;gap:10px;flex-wrap:wrap}.satellite-update-deployment span{padding:8px 10px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.12);border-radius:10px;font-size:11px;color:#c7d8d2}.satellite-update-deployment strong{color:#fff;font-size:14px}.satellite-update-hash{display:block;margin-top:10px;color:#80958e;font-size:10px;word-break:break-all}.satellite-update-form{display:grid;grid-template-columns:minmax(160px,.55fr) minmax(220px,1fr);gap:12px}.satellite-update-form label{display:grid;gap:6px}.satellite-update-form label>span{font-size:11px;font-weight:700;color:#d8e4df}.satellite-update-form input[type=text],.satellite-update-form textarea,.satellite-update-form input[type=file]{width:100%;border:1px solid rgba(255,255,255,.16);background:#fff;color:#14211e;border-radius:10px;padding:11px 12px;font:inherit}.satellite-update-form textarea{resize:vertical;min-height:92px}.satellite-update-notes-field,.satellite-update-file-field{grid-column:1/-1}.satellite-update-file-field small{color:#9eb3ac;font-size:10px}.satellite-update-required{grid-column:1/-1;width:max-content}.satellite-update-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px}.satellite-update-message{margin-right:auto;color:#b8c9c3;font-size:12px}.satellite-update-message.success{color:#9de3b7}.satellite-update-message.error{color:#ffb2ae}.satellite-update-message.active{color:#f1cf70}.danger-button{border:1px solid rgba(255,105,97,.42);background:rgba(130,33,29,.38);color:#fff;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.danger-button:hover{background:rgba(168,39,33,.55)}
@media(max-width:760px){.satellite-update-head{display:grid}.satellite-update-form{grid-template-columns:1fr}.satellite-update-notes-field,.satellite-update-file-field,.satellite-update-required{grid-column:1}.satellite-update-actions{align-items:stretch;flex-direction:column}.satellite-update-message{margin:0}.satellite-update-actions button{width:100%}}

.hub-admin-version{display:inline-flex;margin-top:8px;padding:5px 9px;border:1px solid rgba(214,174,72,.35);border-radius:999px;background:rgba(214,174,72,.08);color:#f0cf70;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.satellite-update-admin{scroll-margin-top:18px}

/* V20.8.9 — PPTX grands fichiers dans Bonjour Presenter */
.presenter-canvas{display:block;flex:0 0 auto;width:auto;height:auto;max-width:none;max-height:none;background:#fff;box-shadow:0 22px 78px rgba(0,0,0,.48);border-radius:2px;image-rendering:auto;transform:translateZ(0);backface-visibility:hidden}.presenter-canvas.hidden{display:none}.presenter-frame.hidden{display:none}.presenter-load-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;padding:12px 16px;border-radius:10px;background:rgba(6,32,30,.92);border:1px solid rgba(214,174,72,.45);color:#fff;font-size:13px;font-weight:700;text-align:center;max-width:min(520px,80vw)}.presenter-load-status.hidden{display:none}

/* Presenter Fidelity — V20.8.9 */
.presenter-stage{overflow:hidden;padding:0;box-sizing:border-box}.presenter-canvas{will-change:width,height}.broadcast-stage:fullscreen .presenter-stage,.broadcast-stage:-webkit-full-screen .presenter-stage{width:100vw;height:100vh}.broadcast-stage:fullscreen .presenter-canvas,.broadcast-stage:-webkit-full-screen .presenter-canvas{max-width:none;max-height:none}@media(max-width:900px){.presenter-canvas{box-shadow:0 14px 46px rgba(0,0,0,.42)}}


/* Presenter Fidelity — le document ne doit jamais intercepter les commandes de diffusion. */
.presenter-stage{pointer-events:none}
.presenter-frame,.presenter-canvas,.presenter-pptx-host{pointer-events:none}
.presenter-controls{pointer-events:auto;z-index:70}
.broadcast-topbar{z-index:90!important;pointer-events:auto!important}
.broadcast-actions,.broadcast-overlay-button,.broadcast-stop-button{position:relative;z-index:92;pointer-events:auto!important}
.broadcast-stop-button{touch-action:manipulation;user-select:none}
.presenter-pptx-host{display:block;flex:0 0 auto;position:relative;overflow:hidden;background:#fff;box-shadow:0 22px 78px rgba(0,0,0,.48);border-radius:2px;transform:translateZ(0);contain:layout paint}
.presenter-pptx-host.hidden{display:none}
.presenter-pptx-host>*,.presenter-pptx-host [data-pptx-slide]{max-width:100%;max-height:100%}
.broadcast-stage:fullscreen .presenter-pptx-host,.broadcast-stage:-webkit-full-screen .presenter-pptx-host{max-width:none;max-height:none}
@media(max-width:900px){.presenter-pptx-host{box-shadow:0 14px 46px rgba(0,0,0,.42)}}



/* Presenter Identity & Interaction */
.broadcast-modal{width:min(920px,100%)}
.broadcast-branding-config{margin:14px 0 16px;padding:15px;border:1px solid rgba(214,174,72,.28);background:linear-gradient(135deg,rgba(11,63,60,.26),rgba(6,31,28,.72));border-radius:16px}
.broadcast-branding-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}.broadcast-branding-head strong,.broadcast-branding-head small{display:block}.broadcast-branding-head strong{font-size:15px;margin-top:2px}.broadcast-branding-head small{color:#9eb4ad;font-size:11px;margin-top:4px}.broadcast-branding-toggle{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:#e9f1ef;white-space:nowrap}.broadcast-branding-toggle input{accent-color:#d8b45d}
.broadcast-branding-grid{display:grid;grid-template-columns:180px minmax(0,1fr) 150px;gap:14px;align-items:stretch}.broadcast-brand-logo-editor{display:grid;align-content:start;gap:8px}.broadcast-brand-logo-preview{height:94px;border:1px dashed rgba(214,174,72,.38);border-radius:12px;background:rgba(0,0,0,.18);display:grid;place-items:center;overflow:hidden;color:#759088;font-size:11px;font-weight:700;letter-spacing:.08em}.broadcast-brand-logo-preview img{width:100%;height:100%;object-fit:contain;padding:10px}.broadcast-brand-logo-actions{display:flex;gap:6px;flex-wrap:wrap}.broadcast-brand-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}.broadcast-brand-fields label{display:grid;gap:5px;color:#aec0ba;font-size:10px;font-weight:700}.broadcast-brand-fields input,.broadcast-brand-fields select{width:100%;height:38px;border-radius:9px;border:1px solid rgba(255,255,255,.13);background:#071713;color:#f6f8f7;padding:0 10px;outline:none}.broadcast-brand-fields input:focus,.broadcast-brand-fields select:focus{border-color:rgba(214,174,72,.72);box-shadow:0 0 0 2px rgba(214,174,72,.10)}.broadcast-brand-qr-preview{border:1px solid rgba(214,174,72,.26);border-radius:12px;background:rgba(255,255,255,.94);color:#0B3F3C;display:grid;place-items:center;align-content:center;gap:5px;padding:9px;text-align:center}.broadcast-brand-qr-preview-code{width:92px;height:92px}.broadcast-brand-qr-preview-code img,.broadcast-brand-qr-preview-code canvas,.broadcast-brand-qr-preview-code svg{width:92px!important;height:92px!important}.broadcast-brand-qr-kicker{font-size:8px;font-weight:700;letter-spacing:.14em;color:#95722a}.broadcast-brand-qr-preview small{font-size:9px;font-weight:700;max-width:120px}.broadcast-branding-error{min-height:0;margin:7px 0 0;color:#f3a7a7;font-size:10px}
.broadcast-identity-card{position:absolute;right:20px;bottom:20px;z-index:58;width:min(270px,28vw);padding:14px 14px 13px;background:linear-gradient(145deg,rgba(4,24,21,.82),rgba(11,63,60,.68));border:1px solid rgba(214,174,72,.34);border-radius:17px;backdrop-filter:blur(18px) saturate(1.18);box-shadow:0 18px 52px rgba(0,0,0,.34);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;pointer-events:auto;transition:opacity .2s ease,transform .2s ease}.broadcast-identity-card.hidden{display:none}.broadcast-identity-company{width:100%;min-height:58px;display:flex;align-items:center;justify-content:center}.broadcast-identity-company img{display:block;max-width:200px;max-height:70px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 5px 12px rgba(0,0,0,.28))}.broadcast-identity-company img:not([src]){display:none}.broadcast-identity-speaker{width:100%;font-size:14px;font-weight:700;color:#fff;line-height:1.18;letter-spacing:.01em;text-align:center;padding:2px 4px 4px;border-bottom:1px solid rgba(214,174,72,.18)}.broadcast-identity-speaker:empty{display:none}.broadcast-identity-qr-button{border:0;background:rgba(255,255,255,.91);border-radius:13px;padding:7px;color:#0B3F3C;display:grid;place-items:center;gap:4px;cursor:pointer;box-shadow:0 9px 26px rgba(0,0,0,.22);width:116px}.broadcast-identity-qr-button:hover{transform:translateY(-1px);background:#fff}.broadcast-identity-qr-button.hidden{display:none}.broadcast-identity-qr{width:94px;height:94px;display:grid;place-items:center}.broadcast-identity-qr img,.broadcast-identity-qr canvas,.broadcast-identity-qr svg{display:block;width:94px!important;height:94px!important}.broadcast-identity-qr-label{font-size:8px;font-weight:700;line-height:1.08;max-width:100px;text-align:center}.qr-fallback{width:100%;height:100%;display:grid;place-items:center;background:#fff;color:#0B3F3C;border:2px dashed rgba(11,63,60,.30);border-radius:6px;font-size:16px;font-weight:700}.broadcast-stage.broadcast-ui-hidden .broadcast-identity-card{opacity:.82}.broadcast-stage.broadcast-ui-hidden .broadcast-identity-card:hover{opacity:1}
.broadcast-interaction-backdrop{z-index:140;background:rgba(0,0,0,.34);backdrop-filter:blur(3px);align-items:center;justify-content:flex-end;padding:18px}.broadcast-interaction-modal{width:min(520px,92vw);height:min(76vh,720px);margin:0;border:1px solid rgba(214,174,72,.34);background:#071713;box-shadow:-20px 0 80px rgba(0,0,0,.45);display:flex;flex-direction:column}.broadcast-interaction-web{flex:1;min-height:0;display:flex;flex-direction:column;gap:9px}.broadcast-interaction-web.hidden,.broadcast-interaction-sms.hidden{display:none}.broadcast-interaction-web iframe{flex:1;width:100%;min-height:320px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:#fff}.broadcast-interaction-actions{display:flex;justify-content:flex-end}.broadcast-interaction-sms{margin:auto 0;display:grid;justify-items:center;text-align:center;gap:12px;padding:24px}.broadcast-interaction-sms-mark{width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,#e8c35d,#a47a18);color:#052a27;display:grid;place-items:center;font-weight:700}.broadcast-interaction-sms strong{font-size:20px}.broadcast-interaction-sms p{color:#aac0b9;line-height:1.5}.broadcast-interaction-sms button{min-width:220px}
.whats-new-premium{max-width:820px;padding:0;overflow:hidden;background:linear-gradient(180deg,#071713,#0a221d)}.whats-new-premium>.modal-close{z-index:5;color:#fff;background:rgba(0,0,0,.28)}.whats-new-hero{display:grid;grid-template-columns:260px 1fr;align-items:center;gap:20px;padding:26px 28px 20px;background:radial-gradient(circle at 14% 20%,rgba(214,174,72,.16),transparent 38%),linear-gradient(135deg,#051614,#0B3F3C);color:#fff;border-bottom:1px solid rgba(214,174,72,.22)}.whats-new-hero img{width:100%;max-height:170px;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(0,0,0,.38))}.whats-new-hero h3{font-size:25px;line-height:1.05;margin:8px 0 10px;color:#fff}.whats-new-hero p{margin:0;color:#c6d6d1;line-height:1.5;font-size:13px}.whats-new-version{display:inline-flex;border:1px solid rgba(214,174,72,.52);color:#f1cf6c;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:700;letter-spacing:.12em}.whats-new-premium .update-version-card,.whats-new-premium .update-roadmap,.whats-new-premium .modal-actions{margin-left:24px;margin-right:24px}.whats-new-premium .update-version-card{color:#edf6f3;background:linear-gradient(135deg,rgba(214,174,72,.12),rgba(11,63,60,.26));border-color:rgba(214,174,72,.30)}.whats-new-premium .update-version-card p{color:#a9bdb6}.premium-roadmap{grid-template-columns:1fr 1fr;margin-top:10px}.premium-roadmap article{grid-template-columns:auto 1fr!important;background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.08)!important;border-radius:13px!important}.premium-roadmap article small{grid-column:auto!important;color:#97ada6!important;line-height:1.4}.update-roadmap-icon{width:34px;height:34px;border-radius:10px;background:rgba(214,174,72,.12);border:1px solid rgba(214,174,72,.20);display:grid;place-items:center;color:#e3bd55;font-weight:700}.whats-new-premium .modal-actions{padding-bottom:22px}
@media(max-width:900px){.broadcast-branding-grid{grid-template-columns:145px 1fr}.broadcast-brand-qr-preview{grid-column:1/-1;grid-template-columns:auto auto auto;justify-content:center}.broadcast-identity-card{width:min(230px,40vw);right:10px;bottom:10px;padding:11px}.broadcast-identity-company img{max-width:165px;max-height:58px}.broadcast-identity-qr{width:78px;height:78px}.broadcast-identity-qr img,.broadcast-identity-qr canvas,.broadcast-identity-qr svg{width:78px!important;height:78px!important}.premium-roadmap{grid-template-columns:1fr}}
@media(max-width:620px){.broadcast-branding-grid{grid-template-columns:1fr}.broadcast-brand-fields{grid-template-columns:1fr}.broadcast-brand-qr-preview{grid-template-columns:auto auto auto}.broadcast-identity-card{width:auto;max-width:calc(100vw - 20px);right:10px;left:10px;bottom:10px;flex-direction:row;justify-content:flex-start;gap:10px;padding:8px 10px}.broadcast-identity-company{width:72px;min-width:72px;min-height:42px}.broadcast-identity-company img{max-width:68px;max-height:42px}.broadcast-identity-speaker{flex:1;width:auto;font-size:11px;text-align:left;border-bottom:0;padding:0}.broadcast-identity-qr-button{width:72px;min-width:72px;padding:4px}.broadcast-identity-qr{width:58px;height:58px}.broadcast-identity-qr img,.broadcast-identity-qr canvas,.broadcast-identity-qr svg{width:58px!important;height:58px!important}.broadcast-identity-qr-label{font-size:7px}.broadcast-interaction-backdrop{padding:8px;align-items:flex-end}.broadcast-interaction-modal{width:100%;height:min(72vh,640px);border-radius:18px 18px 8px 8px}.whats-new-hero{grid-template-columns:1fr;text-align:center;padding:22px}.whats-new-hero img{max-width:280px;margin:auto}.whats-new-hero h3{font-size:22px}.whats-new-premium .update-version-card,.whats-new-premium .update-roadmap,.whats-new-premium .modal-actions{margin-left:14px;margin-right:14px}}


/* V20.8.12 / V20.5.10 — Fenêtre Nouveautés : alignements premium + logo Bonjour robuste */
.whats-new-modal.whats-new-premium{
  width:min(900px,calc(100vw - 36px));
  max-width:900px;
  max-height:min(90vh,860px);
  padding:0;
  overflow:auto;
  border-radius:22px;
  background:linear-gradient(180deg,#071713 0%,#0a221d 100%);
  box-shadow:0 30px 90px rgba(0,0,0,.58),0 0 0 1px rgba(214,174,72,.14);
}
.whats-new-premium>.modal-close{
  top:16px;right:16px;z-index:20;
  width:38px;height:38px;border-radius:11px;
  display:grid;place-items:center;
  color:#fff;background:rgba(2,18,16,.72);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
}
.whats-new-premium>.modal-close:hover{background:rgba(214,174,72,.16);border-color:rgba(214,174,72,.34)}
.whats-new-premium .whats-new-hero{
  display:grid;
  grid-template-columns:minmax(250px,310px) minmax(0,1fr);
  align-items:center;
  gap:32px;
  min-height:238px;
  padding:30px 34px 26px;
  background:
    radial-gradient(circle at 17% 22%,rgba(214,174,72,.16),transparent 38%),
    linear-gradient(135deg,#051614 0%,#0B3F3C 100%);
  color:#fff;
  border-bottom:1px solid rgba(214,174,72,.22);
}
.whats-new-logo-panel{
  min-width:0;min-height:170px;
  display:flex;align-items:center;justify-content:center;
  padding:4px 6px;
}
.whats-new-premium .whats-new-logo{
  display:block;
  width:100%;
  max-width:300px;
  max-height:190px;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.34));
}
.whats-new-hero-copy{min-width:0;padding-right:42px;align-self:center}
.whats-new-premium .whats-new-version{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:26px;
  border:1px solid rgba(214,174,72,.52);
  color:#f1cf6c;border-radius:999px;padding:5px 10px;
  font-size:10px;font-weight:700;letter-spacing:.11em;
}
.whats-new-premium .whats-new-hero h3{
  margin:12px 0 10px;
  max-width:520px;
  color:#fff;
  font-size:clamp(24px,2.1vw,32px);
  line-height:1.08;
  letter-spacing:-.02em;
}
.whats-new-premium .whats-new-hero p{
  margin:0;max-width:560px;
  color:#c6d6d1;
  font-size:14px;line-height:1.6;
}
.whats-new-premium .update-version-card,
.whats-new-premium .update-roadmap,
.whats-new-premium .modal-actions{margin-left:26px;margin-right:26px}
.whats-new-premium .update-version-card{
  margin-top:22px;margin-bottom:14px;
  padding:17px 18px;
  color:#edf6f3;
  background:linear-gradient(135deg,rgba(214,174,72,.10),rgba(11,63,60,.30));
  border:1px solid rgba(214,174,72,.28);
  border-radius:14px;
}
.update-version-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;min-width:0;
}
.whats-new-premium .update-version-head strong{
  display:block;min-width:0;
  color:#fff;font-size:15px;line-height:1.25;
}
.whats-new-premium .update-version-card p{
  margin:9px 0 0;color:#afc1bb;font-size:13px;line-height:1.55;
}
.whats-new-premium .premium-roadmap{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:0;
}
.whats-new-premium .premium-roadmap article{
  min-width:0;
  min-height:118px;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  align-items:flex-start!important;
  gap:0 12px!important;
  padding:15px!important;
  background:rgba(255,255,255,.026)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:14px!important;
}
.whats-new-premium .premium-roadmap article>div{min-width:0;padding-top:1px}
.whats-new-premium .premium-roadmap article strong{
  display:block;
  margin:0 0 6px;
  color:#f3f8f6;
  font-size:13px;line-height:1.25;
}
.whats-new-premium .premium-roadmap article small{
  display:block!important;
  grid-column:auto!important;
  margin:0!important;
  color:#9fb2ac!important;
  font-size:11.5px!important;
  line-height:1.52!important;
}
.whats-new-premium .update-roadmap-icon{
  width:38px;height:38px;margin:0;
  border-radius:11px;
  background:rgba(214,174,72,.12);
  border:1px solid rgba(214,174,72,.22);
  display:grid;place-items:center;
  color:#e3bd55;font-size:15px;font-weight:700;
}
.whats-new-premium .modal-actions{
  display:flex;justify-content:center;
  margin-top:18px;
  padding:0 0 24px;
}
.whats-new-premium .modal-actions .primary-button{
  width:min(360px,100%);
  min-height:46px;
  border-radius:12px;
  font-weight:700;
}
@media(max-width:760px){
  .whats-new-modal.whats-new-premium{width:min(94vw,680px);max-height:92vh;border-radius:18px}
  .whats-new-premium .whats-new-hero{grid-template-columns:1fr;gap:12px;text-align:center;padding:26px 20px 22px}
  .whats-new-logo-panel{min-height:118px}
  .whats-new-premium .whats-new-logo{max-width:280px;max-height:145px;margin:auto}
  .whats-new-hero-copy{padding-right:0}
  .whats-new-premium .whats-new-hero h3,.whats-new-premium .whats-new-hero p{margin-left:auto;margin-right:auto}
  .whats-new-premium .premium-roadmap{grid-template-columns:1fr}
  .whats-new-premium .premium-roadmap article{min-height:auto}
  .whats-new-premium .update-version-card,.whats-new-premium .update-roadmap,.whats-new-premium .modal-actions{margin-left:14px;margin-right:14px}
}

/* V20.8.12 / V20.5.11 — Réunion interactive pendant une diffusion */
.broadcast-talk-button.active{border-color:rgba(80,220,180,.62);background:rgba(18,92,75,.88);box-shadow:0 0 0 1px rgba(80,220,180,.12) inset}
.request-allow-button{margin-left:auto;border:1px solid rgba(201,163,71,.46);background:rgba(201,163,71,.12);color:#f4df9d;border-radius:9px;min-height:34px;padding:0 12px;font-weight:700;cursor:pointer;white-space:nowrap}.request-allow-button:hover{background:rgba(201,163,71,.20)}
.meeting-interaction-modal{width:min(560px,100%)}
.meeting-permission-toggle{display:flex;gap:12px;align-items:flex-start;padding:14px;margin-top:14px;border:1px solid rgba(201,163,71,.20);background:rgba(201,163,71,.06);border-radius:14px;cursor:pointer}.meeting-permission-toggle input{margin-top:3px;accent-color:#d6b34f}.meeting-permission-toggle span,.meeting-permission-toggle strong,.meeting-permission-toggle small{display:block}.meeting-permission-toggle strong{font-size:13px}.meeting-permission-toggle small{margin-top:4px;color:#9eb3ac;line-height:1.45}.meeting-interaction-note{display:grid;gap:5px;margin-top:14px;padding:13px 14px;border-radius:12px;background:rgba(35,135,126,.08);border:1px solid rgba(35,135,126,.22)}.meeting-interaction-note strong{font-size:12px}.meeting-interaction-note span{font-size:11px;color:#9fb5ad;line-height:1.5}
.modal-backdrop.broadcast-live-modal{background:transparent;align-items:flex-start;justify-content:flex-end;padding:68px 18px 18px;pointer-events:none}.modal-backdrop.broadcast-live-modal>.invite-modal{pointer-events:auto;width:min(480px,calc(100vw - 36px));max-height:calc(100vh - 86px);overflow:auto;box-shadow:0 22px 70px rgba(0,0,0,.58);border-color:rgba(255,255,255,.14);backdrop-filter:blur(22px)}
.room-view.broadcast-mode .side-tabs #requestsTab:not(.hidden){display:flex}
@media(max-width:900px){.broadcast-actions .broadcast-talk-button span,.broadcast-actions #broadcastInviteBtn span,.broadcast-actions #broadcastMeetingSettingsBtn span{display:none}.broadcast-actions .broadcast-talk-button,.broadcast-actions #broadcastInviteBtn,.broadcast-actions #broadcastMeetingSettingsBtn{width:42px;padding:0;justify-content:center}.modal-backdrop.broadcast-live-modal{padding:max(60px,env(safe-area-inset-top)) 8px 8px}.modal-backdrop.broadcast-live-modal>.invite-modal{width:min(94vw,460px);max-height:calc(100vh - 72px)}}


/* V20.8.15 — Contributions visibles sur le client public uniquement */
body[data-public-client="1"] .home-actions .contribute-action{grid-column:1/-1;background:linear-gradient(135deg,rgba(214,174,72,.10),rgba(11,63,60,.50));border-color:rgba(214,174,72,.28)}
body[data-public-client="1"] .home-actions .contribute-action .action-icon{background:rgba(214,174,72,.12);color:#f0cf69;border:1px solid rgba(214,174,72,.18)}
.contribution-modal{width:min(980px,100%);max-height:min(92vh,900px);overflow:auto;background:linear-gradient(180deg,#071814,#09241f);border-color:rgba(214,174,72,.25)}
.contribution-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:14px}.contribution-idea-card,.contribution-support-card{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);border-radius:17px;padding:18px}.contribution-kicker{color:#e3bd55;font-size:9px;font-weight:700;letter-spacing:.14em}.contribution-idea-card h4,.contribution-support-card h4{font-size:18px;margin:6px 0 8px}.contribution-idea-card>p,.contribution-support-card>p{color:#9fb5ad;font-size:12px;line-height:1.55;margin:0 0 12px}.contribution-idea-card label{display:grid;gap:6px;color:#c8d7d3;font-size:11px;font-weight:700;margin-top:10px}.contribution-idea-card label small{color:#708f87;font-weight:500}.contribution-idea-card input,.contribution-idea-card select,.contribution-idea-card textarea{width:100%;border:1px solid rgba(255,255,255,.10);background:#061a17;color:#fff;border-radius:10px;padding:11px 12px;font:inherit;outline:none}.contribution-idea-card textarea{min-height:120px;resize:vertical}.contribution-idea-card input:focus,.contribution-idea-card select:focus,.contribution-idea-card textarea:focus{border-color:rgba(214,174,72,.58);box-shadow:0 0 0 3px rgba(214,174,72,.07)}.contribution-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contribution-credit{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:9px;padding:10px 11px;margin-top:12px!important;border:1px solid rgba(214,174,72,.16);background:rgba(214,174,72,.05);border-radius:11px;line-height:1.45}.contribution-credit input{width:auto!important;margin:2px 0 0;accent-color:#d6b34f}.contribution-submit{margin-top:12px!important}.contribution-result{margin-top:12px;padding:11px 12px;border-radius:11px;background:rgba(64,190,150,.10);border:1px solid rgba(64,190,150,.22);color:#d8f4ea;font-size:12px;line-height:1.55}.contribution-support-card{display:flex;flex-direction:column}.contribution-support-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;border:1px solid rgba(214,174,72,.22);background:rgba(214,174,72,.08);color:#f0cf69;font-size:25px;margin-bottom:16px}.contribution-support-note{font-size:10px!important;color:#78978f!important}.contribution-support-button{width:100%;margin-top:auto;display:flex!important;align-items:center;justify-content:center;color:#f4df9d;border-color:rgba(214,174,72,.30)}.contribution-page-button{width:100%;margin-top:8px;color:#8fb0a7;border:0;background:transparent;cursor:pointer;padding:9px}.contribution-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;pointer-events:none!important}.contribution-modal .error-message{text-align:left}
@media(max-width:760px){.contribution-layout{grid-template-columns:1fr}.contribution-name-grid{grid-template-columns:1fr}.contribution-modal{padding:18px}.contribution-support-card{min-height:300px}}


/* Progression universelle — V20.8.18 / V20.5.14 */
.operation-progress-overlay{position:fixed;inset:0;z-index:14000;display:grid;place-items:center;padding:22px;background:rgba(2,15,13,.76);backdrop-filter:blur(8px)}
.operation-progress-overlay.hidden{display:none}.operation-progress-card{width:min(720px,94vw);border:1px solid rgba(218,180,73,.48);border-radius:20px;padding:22px 24px;background:linear-gradient(180deg,#0b2f2b,#071b18);box-shadow:0 30px 100px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.025) inset}.operation-progress-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.operation-progress-kicker{display:block;color:#e0b83f;font-size:10px;font-weight:700;letter-spacing:.16em}.operation-progress-top h3{margin:6px 0 0;color:#fff;font-size:22px;line-height:1.2}.operation-progress-top>strong{font-size:22px;color:#f2d36f;min-width:58px;text-align:right}.operation-progress-track{height:12px;margin:20px 0 13px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.09);box-shadow:0 0 0 1px rgba(255,255,255,.04) inset}.operation-progress-track span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#2dbb99,#e0b83f);box-shadow:0 0 24px rgba(45,187,153,.38);transition:width .28s ease}.operation-progress-track span.indeterminate{width:34%!important;animation:bonjour-operation-move 1.15s ease-in-out infinite}@keyframes bonjour-operation-move{0%{transform:translateX(-110%)}100%{transform:translateX(330%)}}#bonjourOperationDetail{margin:0;color:#c3d7d1;font-size:13px;line-height:1.55}.operation-progress-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:18px 0 0;padding:0;list-style:none}.operation-progress-steps li{display:flex;gap:8px;align-items:center;min-height:38px;padding:8px 10px;border-radius:11px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);color:#77958d;font-size:11px}.operation-progress-steps li span{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.14);font-size:10px;font-weight:700}.operation-progress-steps li.current{border-color:rgba(224,184,63,.38);color:#f7e9b4;background:rgba(224,184,63,.075)}.operation-progress-steps li.current span{border-color:#e0b83f;color:#e0b83f;box-shadow:0 0 16px rgba(224,184,63,.22)}.operation-progress-steps li.done{color:#a8ddd0}.operation-progress-steps li.done span{border-color:#2dbb99;background:rgba(45,187,153,.12);color:#62d8bb}.operation-progress-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}.operation-progress-actions.hidden{display:none}.operation-progress-actions button{min-height:42px;padding:0 16px;border-radius:11px;font:inherit;font-weight:700;cursor:pointer}.operation-action-primary{border:1px solid #e0b83f;background:linear-gradient(135deg,#efd36f,#b88618);color:#082f2c}.operation-action-secondary{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:#fff}.operation-progress-overlay.is-error .operation-progress-track span{background:#d95b62}.operation-progress-overlay.is-error .operation-progress-kicker{color:#ef8b90}.operation-progress-overlay.is-choice .operation-progress-track span{background:linear-gradient(90deg,#e0b83f,#f0d982)}
.satellite-inline-progress{height:7px;margin-top:8px;max-width:360px;border-radius:999px;background:rgba(255,255,255,.10);overflow:hidden}.satellite-inline-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2dbb99,#e0b83f);transition:width .3s ease}
@media(max-width:640px){.operation-progress-card{padding:18px}.operation-progress-top h3{font-size:18px}.operation-progress-top>strong{font-size:18px}.operation-progress-steps{grid-template-columns:1fr 1fr}.operation-progress-actions{justify-content:stretch}.operation-progress-actions button{flex:1}}


/* V20.8.33 / V20.5.16 — finesse visuelle, réunions programmées et agendas */
.whats-new-modal.whats-new-premium{width:min(820px,calc(100vw - 34px));max-width:820px;border-radius:18px;box-shadow:0 28px 86px rgba(0,0,0,.55),0 0 0 1px rgba(214,174,72,.10)}
.whats-new-premium .whats-new-hero{grid-template-columns:150px minmax(0,1fr);gap:26px;min-height:188px;padding:26px 30px 22px;background:radial-gradient(circle at 12% 20%,rgba(214,174,72,.10),transparent 34%),linear-gradient(135deg,#061915 0%,#0a3532 100%)}
.whats-new-logo-panel{min-height:112px;padding:0;justify-content:flex-start}
.whats-new-premium .whats-new-logo{width:136px;max-width:136px;max-height:104px;filter:drop-shadow(0 12px 18px rgba(0,0,0,.28))}
.whats-new-hero-copy{padding-right:34px}.whats-new-premium .whats-new-hero h3{font-size:clamp(23px,2vw,29px);line-height:1.12;margin-top:10px}.whats-new-premium .whats-new-hero p{font-size:13px;line-height:1.58}.whats-new-premium .update-version-card{padding:14px 16px;border-radius:12px}.whats-new-premium .premium-roadmap{gap:10px}.whats-new-premium .premium-roadmap article{min-height:102px;padding:13px!important;border-radius:12px!important;grid-template-columns:32px minmax(0,1fr)!important;gap:10px!important}.whats-new-premium .update-roadmap-icon{width:32px;height:32px;border-radius:9px;font-size:13px}.whats-new-premium .premium-roadmap article strong{font-size:12.5px;margin-bottom:5px}.whats-new-premium .premium-roadmap article small{font-size:11px!important;line-height:1.48!important}
.operation-progress-overlay{background:rgba(2,15,13,.70);backdrop-filter:blur(7px)}.operation-progress-card{width:min(640px,94vw);border-color:rgba(218,180,73,.28);border-radius:16px;padding:20px 22px;background:linear-gradient(180deg,#0a2925,#071a17);box-shadow:0 26px 84px rgba(0,0,0,.52)}.operation-progress-kicker{font-size:9px;letter-spacing:.15em}.operation-progress-top h3{font-size:19px;font-weight:700}.operation-progress-top>strong{font-size:18px}.operation-progress-track{height:7px;margin:17px 0 12px}.operation-progress-track span{box-shadow:0 0 14px rgba(45,187,153,.24)}#bonjourOperationDetail{font-size:12.5px}.operation-progress-steps{gap:7px;margin-top:15px}.operation-progress-steps li{min-height:34px;padding:7px 9px;border-radius:9px;font-size:10.5px;background:rgba(255,255,255,.018)}.operation-progress-steps li span{width:19px;height:19px;font-size:9px}.operation-progress-steps li.current{background:rgba(224,184,63,.055)}.operation-progress-steps li.current span{animation:bonjour-step-pulse 1.5s ease-in-out infinite}@keyframes bonjour-step-pulse{0%,100%{box-shadow:0 0 0 0 rgba(224,184,63,.12)}50%{box-shadow:0 0 0 6px rgba(224,184,63,.07)}}
.schedule-meeting-modal{width:min(760px,96vw);max-height:92vh;overflow:auto}.schedule-meeting-form{display:grid;gap:13px}.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.schedule-meeting-modal textarea{width:100%;resize:vertical;min-height:92px;border:1px solid rgba(255,255,255,.12);background:#071713;color:#fff;border-radius:10px;padding:11px 12px;font:inherit;outline:none}.schedule-meeting-modal textarea:focus{border-color:rgba(214,174,72,.62);box-shadow:0 0 0 2px rgba(214,174,72,.08)}.schedule-timezone-note{font-size:11px;line-height:1.5;color:#8fa9a1;padding:10px 12px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.018);border-radius:10px}.schedule-timezone-note strong{color:#d7e4e0}.schedule-result{display:grid;grid-template-columns:46px 1fr;gap:12px 14px;align-items:start;padding:4px 0 2px}.schedule-result-check{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(45,187,153,.12);border:1px solid rgba(45,187,153,.35);color:#63d8bb;font-size:20px;font-weight:700}.schedule-result h3{margin:4px 0 4px}.schedule-result p,.schedule-result small{display:block;margin:0;color:#a7bbb5}.schedule-link-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;align-items:center;padding:12px 13px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);border-radius:11px}.schedule-link-card>span{grid-column:1/-1;color:#91aaa2;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.schedule-link-card code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2df9f}.host-link-card{border-color:rgba(214,174,72,.22);background:rgba(214,174,72,.045)}.calendar-inline-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.calendar-inline-actions button,.scheduled-list-actions button{min-height:36px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.035);color:#eaf2ef;border-radius:9px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.calendar-inline-actions button:hover,.scheduled-list-actions button:hover{border-color:rgba(214,174,72,.34);background:rgba(214,174,72,.07)}.schedule-result .settings-actions{grid-column:1/-1}.scheduled-meetings-local{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07)}.scheduled-list-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:9px}.scheduled-list-head strong{font-size:12px}.scheduled-list-head small{font-size:10px;color:#7f9890}.scheduled-meeting-list{display:grid;gap:7px}.scheduled-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid rgba(255,255,255,.065);border-radius:10px;background:rgba(255,255,255,.018)}.scheduled-list-row>div:first-child{min-width:0}.scheduled-list-row strong,.scheduled-list-row small{display:block}.scheduled-list-row strong{font-size:11.5px;color:#eef5f3}.scheduled-list-row small{margin-top:3px;font-size:9.5px;color:#829b93}.scheduled-list-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.scheduled-list-actions button{padding:0 9px;min-height:30px;font-size:9.5px}.calendar-modal{width:min(600px,94vw)}.calendar-meeting-meta{margin:2px 0 6px;color:#f0d681;font-size:13px;font-weight:700}.calendar-provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.calendar-provider-grid button{display:grid;grid-template-columns:34px 1fr;gap:1px 10px;text-align:left;align-items:center;min-height:70px;padding:11px 12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);color:#fff;border-radius:11px;cursor:pointer}.calendar-provider-grid button>span{grid-row:1/3;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(214,174,72,.10);border:1px solid rgba(214,174,72,.18);color:#e7c761;font-weight:700}.calendar-provider-grid button strong{font-size:12px}.calendar-provider-grid button small{font-size:9.5px;color:#829b93}.calendar-provider-grid button:hover{border-color:rgba(214,174,72,.30);background:rgba(214,174,72,.05)}.scheduled-prejoin-card{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;margin:12px 0;padding:11px 12px;border-radius:11px;border:1px solid rgba(214,174,72,.22);background:linear-gradient(135deg,rgba(214,174,72,.065),rgba(11,63,60,.10))}.scheduled-prejoin-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:rgba(214,174,72,.10);color:#e9ca68}.scheduled-prejoin-card span,.scheduled-prejoin-card strong,.scheduled-prejoin-card small{display:block}.scheduled-prejoin-card span{font-size:8px;font-weight:700;letter-spacing:.12em;color:#d8b45d}.scheduled-prejoin-card strong{margin-top:2px;font-size:12px}.scheduled-prejoin-card small{margin-top:2px;color:#8fa8a0;font-size:9.5px}.scheduled-prejoin-card button{border:1px solid rgba(214,174,72,.26);background:rgba(214,174,72,.08);color:#f0dc9a;border-radius:9px;padding:8px 10px;font-size:9.5px;font-weight:700;cursor:pointer;white-space:nowrap}.room-calendar-button.hidden{display:none}.room-calendar-button{min-width:auto!important}.share-icon.calendar{background:rgba(214,174,72,.16)!important;color:#f0d681!important}
@media(max-width:760px){.whats-new-premium .whats-new-hero{grid-template-columns:1fr;gap:10px;text-align:center;padding:22px 20px}.whats-new-logo-panel{min-height:72px;justify-content:center}.whats-new-premium .whats-new-logo{width:112px;max-width:112px;max-height:78px}.whats-new-hero-copy{padding-right:0}.schedule-grid,.calendar-provider-grid,.calendar-inline-actions{grid-template-columns:1fr}.scheduled-list-row{align-items:flex-start;flex-direction:column}.scheduled-list-actions{justify-content:flex-start}.scheduled-prejoin-card{grid-template-columns:36px 1fr}.scheduled-prejoin-card button{grid-column:1/-1;width:100%}}

/* Bonjour PWA 1.0 — installation iOS / lancement stable */
.bonjour-pwa-install{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:99980;transform:translateX(-50%);width:min(520px,calc(100% - 28px));border:1px solid rgba(223,185,72,.34);border-radius:22px;background:rgba(9,31,27,.97);box-shadow:0 20px 70px rgba(0,0,0,.4);backdrop-filter:blur(18px);color:#f7f3e9;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.bonjour-pwa-install.hidden{display:none}.bonjour-pwa-install-inner{display:grid;grid-template-columns:58px 1fr auto;gap:14px;align-items:center;padding:15px}.bonjour-pwa-install img{width:58px;height:58px;border-radius:15px}.bonjour-pwa-install-copy strong{display:block;font-size:15px;margin-bottom:4px}.bonjour-pwa-install-copy small{display:block;color:#a8beb8;line-height:1.35}.bonjour-pwa-install-actions{display:flex;gap:8px;align-items:center}.bonjour-pwa-install-actions button{border:0;border-radius:11px;padding:10px 12px;font-weight:700;cursor:pointer}.bonjour-pwa-install-primary{background:#d7ad36;color:#09201b}.bonjour-pwa-install-close{background:transparent!important;color:#93aaa4!important;font-size:19px;padding:8px!important}.bonjour-pwa-ios-steps{grid-column:1/-1;margin:0 14px 14px;padding:14px 16px;border-radius:14px;background:#071713;border:1px solid #173b34;color:#d9e5e1;font-size:13px;line-height:1.55}.bonjour-pwa-ios-steps.hidden{display:none}.bonjour-pwa-ios-steps b{color:#f0c95c}.bonjour-pwa-ios-steps ol{margin:8px 0 0;padding-left:20px}.bonjour-pwa-ios-steps li+li{margin-top:6px}@media(max-width:620px){.bonjour-pwa-install-inner{grid-template-columns:52px 1fr}.bonjour-pwa-install img{width:52px;height:52px}.bonjour-pwa-install-actions{grid-column:1/-1;justify-content:flex-end}.bonjour-pwa-install-primary{flex:1}}

/* Bridge 1.18.5 — PWA iOS : finesse mobile, installation guidée et notifications */
body[data-bonjour-pwa="1"] .home-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.bonjour-notification-button{position:relative;width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(214,174,72,.22);border-radius:14px;background:rgba(10,38,33,.8);color:#e8c764;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.bonjour-notification-button>span{font-size:22px;line-height:1;transform:rotate(-18deg)}
.bonjour-notification-button i{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:#d9b34c;color:#08201b;font:800 10px/18px system-ui;text-align:center;font-style:normal;box-shadow:0 0 0 3px #071311}
.bonjour-notifications-modal{width:min(540px,100%)}
.bonjour-push-status{margin:16px 0 12px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.035);color:#a9c0ba;font-size:12px;line-height:1.45}
.bonjour-push-status.is-active{border-color:rgba(65,196,157,.28);background:rgba(65,196,157,.07);color:#9ce0ca}
.bonjour-push-status.is-error{border-color:rgba(224,97,105,.3);background:rgba(224,97,105,.06);color:#f0a3a8}
.bonjour-enable-push{width:100%;min-height:46px;margin-bottom:15px}
.bonjour-push-preferences{display:grid;gap:8px}
.bonjour-push-preferences label{display:flex;align-items:flex-start;gap:12px;padding:12px 13px;border:1px solid rgba(255,255,255,.075);border-radius:13px;background:#091713;cursor:pointer}
.bonjour-push-preferences input{margin-top:3px;accent-color:#d7ad36}
.bonjour-push-preferences span,.bonjour-push-preferences strong,.bonjour-push-preferences small{display:block}
.bonjour-push-preferences strong{font-size:13px;color:#f1f5f3}
.bonjour-push-preferences small{margin-top:3px;color:#8fa8a1;font-size:11px;line-height:1.35}
.bonjour-push-note{margin:13px 2px 0;color:#718b84;font-size:10.5px;line-height:1.45}

.bonjour-pwa-install{bottom:max(14px,calc(env(safe-area-inset-bottom) + 8px));width:min(480px,calc(100% - 24px));border-radius:20px;background:rgba(7,29,25,.985);box-shadow:0 22px 68px rgba(0,0,0,.42)}
.bonjour-pwa-install-inner{grid-template-columns:50px minmax(0,1fr) 34px;gap:11px;padding:13px}
.bonjour-pwa-install img{width:50px;height:50px;border-radius:12px}
.bonjour-pwa-install-kicker{display:block;color:#d6b34f;font-size:8px;font-weight:700;letter-spacing:.15em;margin-bottom:3px}
.bonjour-pwa-install-copy strong{font-size:14px;margin-bottom:2px}.bonjour-pwa-install-copy small{font-size:11px;line-height:1.35}
.bonjour-pwa-install-close{grid-column:3;grid-row:1;width:32px;height:32px;display:grid;place-items:center;padding:0!important;border-radius:10px!important;background:rgba(255,255,255,.04)!important}
.bonjour-pwa-install-primary{grid-column:1/-1;min-height:40px;padding:9px 12px!important;border-radius:11px!important;font-size:12px}
.bonjour-pwa-ios-steps{grid-column:1/-1;margin:0;padding:13px;border-radius:14px;font-size:12px;line-height:1.4}
.bonjour-pwa-ios-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.bonjour-pwa-ios-head span{display:block;color:#7f9c94;font-size:8px;font-weight:700;letter-spacing:.14em}.bonjour-pwa-ios-head b{display:block;color:#f1f4f2;font-size:13px;margin-top:2px}.bonjour-pwa-ios-head>small{color:#d6b34f;font-size:9px;font-weight:700;white-space:nowrap}
.bonjour-pwa-ios-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.bonjour-pwa-ios-flow>div{min-width:0;padding:9px 8px;border-radius:11px;background:#0a221d;border:1px solid rgba(255,255,255,.065)}.bonjour-pwa-ios-flow i{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:rgba(214,179,79,.12);color:#e5c65f;font-style:normal;font-size:10px;font-weight:700;margin-bottom:7px}.bonjour-pwa-ios-flow strong{display:block;color:#edf3f0;font-size:10.5px}.bonjour-pwa-ios-flow small{display:block;margin-top:3px;color:#809a93;font-size:8.5px;line-height:1.35}.bonjour-pwa-ios-steps>p{margin:10px 2px 0;color:#78938b;font-size:9.5px;line-height:1.4}

@media(max-width:560px){
  body[data-bonjour-pwa="1"] .home-view{place-items:start center;min-height:100dvh;padding:max(22px,calc(env(safe-area-inset-top) + 16px)) 18px max(30px,calc(env(safe-area-inset-bottom) + 22px));background:radial-gradient(circle at 50% -8%,#10372f 0,#091b17 31%,#071311 67%)}
  body[data-bonjour-pwa="1"] .home-card{width:100%;max-width:520px}
  body[data-bonjour-pwa="1"] .home-topline{align-items:flex-start;margin-bottom:5px}
  body[data-bonjour-pwa="1"] .brand-lockup{margin-bottom:3px}
  body[data-bonjour-pwa="1"] .brand-lockup .brand-mark{height:27px;gap:5px;margin:0 0 2px 2px}
  body[data-bonjour-pwa="1"] .brand-lockup .brand-mark span{width:7px}
  body[data-bonjour-pwa="1"] .brand-lockup .brand-mark span:nth-child(1){height:16px}body[data-bonjour-pwa="1"] .brand-lockup .brand-mark span:nth-child(2){height:26px}body[data-bonjour-pwa="1"] .brand-lockup .brand-mark span:nth-child(3){height:20px}
  body[data-bonjour-pwa="1"] .brand-lockup h1{font-size:39px;line-height:.98;margin:0 0 6px;letter-spacing:-.045em}
  body[data-bonjour-pwa="1"] .product-signature{font-size:13px;margin:0 0 9px;color:#b2c7c1}
  body[data-bonjour-pwa="1"] .home-card .lead{font-size:16px;line-height:1.35;margin:0 0 22px;max-width:340px;color:#8da59f}
  body[data-bonjour-pwa="1"] .home-actions{gap:10px}
  body[data-bonjour-pwa="1"] .action-card{min-height:76px;padding:13px 14px;gap:13px;border-radius:18px;box-shadow:0 6px 22px rgba(0,0,0,.10)}
  body[data-bonjour-pwa="1"] .action-icon{width:42px;height:42px;border-radius:13px;font-size:22px}
  body[data-bonjour-pwa="1"] .action-card strong{font-size:15px;line-height:1.18;margin-bottom:3px}
  body[data-bonjour-pwa="1"] .action-card small{font-size:11.5px;line-height:1.25}
  body[data-bonjour-pwa="1"] .product-meta{margin:20px 0 0!important;font-size:9.5px!important;line-height:1.45!important;color:#647c76!important;text-align:center!important;padding-bottom:2px}
  .bonjour-notification-button{width:40px;height:40px;flex-basis:40px;border-radius:13px;margin-top:2px}
  .bonjour-notifications-backdrop{align-items:flex-end;padding:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .bonjour-notifications-modal{width:100%;max-height:88dvh;border-radius:20px 20px 12px 12px;padding:18px;overflow:auto}
  .bonjour-notifications-modal .modal-head h3{font-size:20px;line-height:1.08}
  .bonjour-pwa-install{bottom:max(10px,calc(env(safe-area-inset-bottom) + 6px));width:calc(100% - 20px)}
  .bonjour-pwa-install-inner{grid-template-columns:44px minmax(0,1fr) 32px;gap:9px;padding:11px}.bonjour-pwa-install img{width:44px;height:44px;border-radius:10px}
  .bonjour-pwa-ios-flow{grid-template-columns:1fr;gap:6px}.bonjour-pwa-ios-flow>div{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;padding:8px}.bonjour-pwa-ios-flow i{margin:0}.bonjour-pwa-ios-flow strong{font-size:10.5px}.bonjour-pwa-ios-flow small{font-size:9px}
}
@media(max-width:380px){body[data-bonjour-pwa="1"] .home-view{padding-left:14px;padding-right:14px}body[data-bonjour-pwa="1"] .brand-lockup h1{font-size:35px}body[data-bonjour-pwa="1"] .action-card{min-height:72px;padding:11px 12px}.bonjour-push-preferences label{padding:10px 11px}}


/* Bridge 1.18.7 — iOS : Nouveautés respirantes, validation Push et création des salons autonomes */
.bonjour-notification-button.is-active{border-color:rgba(78,214,171,.42);color:#7fe0bf;background:rgba(18,79,65,.72);box-shadow:0 0 0 1px rgba(78,214,171,.08) inset,0 8px 24px rgba(0,0,0,.18)}
.bonjour-push-secondary{width:100%;min-height:42px;margin:0 0 6px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:transparent;color:#90aaa3;font-weight:600;cursor:pointer}.bonjour-push-secondary:hover{background:rgba(255,255,255,.035);color:#d7e4e0}.bonjour-push-secondary:disabled{opacity:.5;cursor:wait}
.permanent-empty-state{display:grid;justify-items:center;gap:8px;padding:34px 20px!important;border:1px dashed rgba(214,174,72,.22);border-radius:16px;background:rgba(214,174,72,.035)}.permanent-empty-state strong{color:#f2f7f5;font-size:16px}.permanent-empty-state small{display:block;max-width:440px;color:#8fa7a0;line-height:1.5}.permanent-empty-state .permanent-empty-create{width:min(320px,100%);margin-top:8px}
@media(max-width:900px){body[data-bonjour-pwa="1"] .regions-page-head #createPermanentRoomBtn:not(.hidden){display:block!important}}
@media(max-width:760px){
  #whatsNewModal{height:100dvh;min-height:100dvh;align-items:flex-start;overflow:hidden;padding:max(20px,calc(env(safe-area-inset-top) + 14px)) 10px max(28px,calc(env(safe-area-inset-bottom) + 18px))}
  #whatsNewModal .whats-new-modal.whats-new-premium{width:100%;height:100%;max-height:100%;margin:0 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:18px;scroll-padding-top:18px;scroll-padding-bottom:90px}
  #whatsNewModal .whats-new-hero{min-height:0;padding:28px 18px 22px;gap:10px}
  #whatsNewModal .whats-new-logo-panel{min-height:86px;padding:8px 36px 2px}
  #whatsNewModal .whats-new-logo{width:min(230px,82%);max-width:230px;max-height:98px;object-fit:contain}
  #whatsNewModal .whats-new-hero h3{font-size:clamp(21px,6vw,25px);line-height:1.12;margin-top:10px}
  #whatsNewModal .whats-new-hero p{font-size:12.5px;line-height:1.52}
  #whatsNewModal .update-version-card{margin-top:18px}
  #whatsNewModal .modal-actions{position:sticky;bottom:0;z-index:12;margin-left:0;margin-right:0;margin-top:16px;padding:12px 14px max(18px,calc(env(safe-area-inset-bottom) + 12px));background:linear-gradient(180deg,rgba(10,34,29,0),#0a221d 28%,#0a221d 100%);backdrop-filter:blur(6px)}
  #whatsNewModal .modal-actions .primary-button{margin-top:0;width:100%}
  #whatsNewModal .modal-corner{position:sticky;float:right;top:8px;right:8px;margin:8px 8px -46px 0;z-index:30}
  body[data-bonjour-pwa="1"] .regions-view{place-items:start center;min-height:100dvh;padding:max(22px,calc(env(safe-area-inset-top) + 16px)) 18px max(32px,calc(env(safe-area-inset-bottom) + 22px))}
  body[data-bonjour-pwa="1"] .regions-card{width:100%;padding:20px 18px 22px}
  body[data-bonjour-pwa="1"] .regions-page-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}
  body[data-bonjour-pwa="1"] .regions-page-head #createPermanentRoomBtn{grid-column:1/-1;width:100%;margin-top:4px}
}

/* =========================================================
   BONJOUR TRANSFERT — V20.9.5 / V20.6.5 / Bridge 1.19.4
   Liens autonomes conservés temporairement 3 jours sur le HUB ; réunions en P2P.
   Les 3 slides abstraites servent de fallback jusqu'aux images officielles.
   ========================================================= */
.transfer-action{background:linear-gradient(145deg,rgba(11,63,60,.96),rgba(15,43,39,.98));border-color:rgba(217,174,55,.24)}
.transfer-action .action-icon{color:#f6e39a;background:linear-gradient(145deg,rgba(246,227,154,.13),rgba(169,120,11,.08));border:1px solid rgba(217,174,55,.18)}
.transfer-view{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(34px,env(safe-area-inset-left));background:#071311}
.transfer-carousel{position:fixed;inset:0;z-index:0;overflow:hidden;background:radial-gradient(circle at 18% 18%,rgba(217,174,55,.12),transparent 30%),linear-gradient(135deg,#081714,#0b2823 48%,#071311)}
.transfer-slide{position:absolute;inset:-2%;display:none;opacity:0;transform:scale(1.07);background-position:center;background-size:cover;background-repeat:no-repeat;transition:opacity 1.65s ease;will-change:opacity,transform}
.transfer-slide.is-ready{display:block}
.transfer-slide.is-active{opacity:1;animation:bonjourTransferKenBurns 10.5s ease-out both}
.transfer-slide.is-unavailable{display:none!important}
.transfer-carousel-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,14,12,.76),rgba(4,14,12,.40) 45%,rgba(4,14,12,.67)),linear-gradient(0deg,rgba(4,14,12,.74),rgba(4,14,12,.06) 45%,rgba(4,14,12,.42));backdrop-filter:blur(1px)}
@keyframes bonjourTransferKenBurns{0%{transform:scale(1.07)}100%{transform:scale(1.015)}}
.transfer-page-shell{position:relative;z-index:2;width:min(560px,calc(100vw - 68px));display:grid;gap:10px;align-items:start;margin:0}
.transfer-back{justify-self:start;margin:0;color:#eef5f2;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.transfer-main-card{width:100%;background:linear-gradient(145deg,rgba(10,27,24,.94),rgba(7,19,17,.91));border:1px solid rgba(217,174,55,.20);border-radius:17px;padding:clamp(22px,2.8vw,30px);box-shadow:0 24px 74px rgba(0,0,0,.38);backdrop-filter:blur(20px);overflow:hidden}
.transfer-brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.transfer-no-storage{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#f6e39a;border:1px solid rgba(217,174,55,.28);padding:6px 9px;border-radius:999px;background:rgba(169,120,11,.08)}
.transfer-main-card>h2{font-size:clamp(30px,3.4vw,41px);letter-spacing:-.038em;line-height:1.04;margin:10px 0 11px;max-width:500px}.transfer-lead{color:#b8cbc5;font-size:14px;line-height:1.58;margin:0 0 23px;max-width:500px}
.transfer-panel{display:grid;gap:14px}.transfer-panel h3{font-size:26px;margin:0}.transfer-panel>p{margin:0;color:#a9bdb7;line-height:1.5}.transfer-name-field{display:block;font-size:12px;color:#c7d7d2}.transfer-name-field input{display:block;width:100%;margin-top:7px;border:1px solid rgba(255,255,255,.10);background:#071815;border-radius:11px;padding:13px 14px;color:#f5f8f7;font-size:16px;outline:0}.transfer-name-field input:focus{border-color:rgba(217,174,55,.55);box-shadow:0 0 0 3px rgba(217,174,55,.07)}
.transfer-drop-zone{width:100%;min-height:190px;border:1px dashed rgba(217,174,55,.42);background:linear-gradient(145deg,rgba(11,63,60,.34),rgba(8,28,24,.46));border-radius:18px;display:grid;place-items:center;align-content:center;gap:6px;cursor:pointer;transition:.18s ease;color:#f3f7f5}.transfer-drop-zone:hover,.transfer-drop-zone.is-drag{border-color:#d9ae37;background:rgba(11,63,60,.50);transform:translateY(-1px)}.transfer-drop-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(100deg,#f6e39a,#d9ae37 55%,#a9780b);color:#0b3f3c;font-size:30px;font-weight:700;box-shadow:0 10px 36px rgba(217,174,55,.18)}.transfer-drop-zone strong{font-size:18px}.transfer-drop-zone small{color:#9fb7b0}
.transfer-file-list{display:grid;gap:8px}.transfer-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(255,255,255,.08);background:rgba(6,19,16,.68);border-radius:11px;padding:11px 12px}.transfer-file-row strong,.transfer-file-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-file-row strong{font-size:13px}.transfer-file-row small{margin-top:3px;color:#88a29a;font-size:11px}.transfer-file-row button{border:0;background:transparent;color:#d3b55d;cursor:pointer}.transfer-file-state{font-size:11px;color:#9dcfc7}.transfer-limits{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px;color:#79968d}.transfer-primary{margin-top:4px;background:linear-gradient(100deg,#f6e39a 0%,#d9ae37 55%,#a9780b 100%);color:#0b3f3c}.transfer-primary:hover:not(:disabled){filter:brightness(1.06);background:linear-gradient(100deg,#fff0ad 0%,#e0b941 55%,#b1800d 100%)}
.transfer-ready-mark,.transfer-receive-icon,.transfer-complete-check{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:rgba(87,197,150,.12);border:1px solid rgba(87,197,150,.24);color:#83d8b7;font-size:30px;font-weight:700}.transfer-code{font-size:clamp(25px,5vw,36px);font-weight:700;letter-spacing:.12em;color:#f3df91;margin-top:5px}.transfer-link-box{display:flex;gap:8px;padding:7px;border:1px solid rgba(255,255,255,.08);background:#061310;border-radius:11px}.transfer-link-box span{flex:1;min-width:0;padding:8px 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c6d5d1;font-size:12px}.transfer-link-box button{border:1px solid rgba(217,174,55,.22);background:#0b3f3c;border-radius:8px;padding:0 12px;cursor:pointer}.transfer-share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.transfer-share-grid button{min-height:49px;border:1px solid rgba(255,255,255,.08);background:rgba(10,33,29,.92);border-radius:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;transition:background .16s ease,border-color .16s ease,transform .16s ease}.transfer-share-grid button:hover{background:#10342e;border-color:rgba(217,174,55,.22);transform:translateY(-1px)}.transfer-share-grid button:focus-visible{outline:2px solid rgba(246,227,154,.72);outline-offset:2px}.transfer-share-grid span{font-size:11px;font-weight:700;color:#f2d97d}.transfer-waiting{display:flex;align-items:center;gap:12px;border-top:1px solid rgba(255,255,255,.07);padding-top:14px}.transfer-waiting strong,.transfer-waiting small{display:block}.transfer-waiting small{color:#78958d;margin-top:3px}.transfer-pulse{width:12px;height:12px;border-radius:50%;background:#57c596;box-shadow:0 0 0 0 rgba(87,197,150,.45);animation:transferPulse 1.7s infinite}@keyframes transferPulse{70%{box-shadow:0 0 0 12px rgba(87,197,150,0)}100%{box-shadow:0 0 0 0 rgba(87,197,150,0)}}.transfer-receiver-list{display:grid;gap:7px}.transfer-receiver-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(255,255,255,.07);padding:10px 12px;border-radius:10px}.transfer-receiver-item small{color:#90aaa2}.transfer-cancel{margin-top:3px}
.transfer-offline{padding:12px;border:1px solid rgba(231,88,88,.25);background:rgba(231,88,88,.08);border-radius:10px;color:#ffc0bd;font-size:12px;line-height:1.45}.transfer-progress-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.transfer-progress-head h3{margin-top:6px}.transfer-progress-head>strong{font-size:28px;color:#f1da82}.transfer-progress-track{height:8px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.08)}.transfer-progress-track span{display:block;height:100%;width:0;background:linear-gradient(100deg,#f6e39a,#d9ae37 55%,#a9780b);transition:width .2s ease}.transfer-progress-stats{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#8fa7a0;font-size:12px}
.transfer-complete-panel{text-align:center;justify-items:center}.transfer-complete-panel>p{max-width:620px}.transfer-promo{position:relative;overflow:hidden;width:100%;margin-top:16px;border:1px solid rgba(217,174,55,.26);background:radial-gradient(circle at 15% 20%,rgba(217,174,55,.14),transparent 35%),linear-gradient(145deg,#0b2823,#071613);border-radius:18px;padding:22px;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;animation:transferPromoIn .75s cubic-bezier(.2,.8,.2,1) both}.transfer-promo:after{content:"";position:absolute;inset:auto -15% -55% 20%;height:180px;background:radial-gradient(ellipse,rgba(35,135,126,.24),transparent 65%);pointer-events:none}.transfer-promo-mark{width:62px;height:62px;display:flex;align-items:flex-end;justify-content:center;gap:5px;padding:14px;border-radius:18px;background:#071311;border:1px solid rgba(217,174,55,.22);box-shadow:0 12px 34px rgba(0,0,0,.26)}.transfer-promo-mark span{width:7px;border-radius:8px;background:linear-gradient(180deg,#f6e39a,#a9780b)}.transfer-promo-mark span:nth-child(1){height:20px}.transfer-promo-mark span:nth-child(2){height:36px}.transfer-promo-mark span:nth-child(3){height:27px}.transfer-promo-copy small{display:block;color:#d9ae37;font-weight:700;letter-spacing:.09em;font-size:10px}.transfer-promo-copy strong{display:block;font-size:24px;margin-top:6px}.transfer-promo-copy p{margin:7px 0 0;color:#a9bcb6;line-height:1.48;font-size:13px}.transfer-promo-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:center}.transfer-promo-actions .primary-button{margin:0}.transfer-promo-actions .secondary-button{min-height:46px}.transfer-promo-actions .quiet-link{margin:0;padding:0 8px}.transfer-install-help{grid-column:1/-1;padding:12px 13px;border:1px solid rgba(217,174,55,.18);background:rgba(5,16,14,.52);border-radius:10px;color:#c8d5d1;font-size:12px;line-height:1.55}.transfer-install-help strong{color:#f3da7b}.transfer-install-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.transfer-install-steps span{display:block;padding:9px;border-radius:9px;background:#071815;border:1px solid rgba(255,255,255,.07)}@keyframes transferPromoIn{0%{opacity:0;transform:translateY(18px) scale(.98)}100%{opacity:1;transform:none}}
.files-panel{display:flex;flex-direction:column;gap:12px}.files-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.files-panel-head strong,.files-panel-head small{display:block}.files-panel-head small{margin-top:2px;color:var(--muted);font-size:10px}.files-panel-head .primary-button{width:auto;margin:0;padding:9px 11px}.room-file-transfers{display:grid;gap:8px}.room-transfer-card{border:1px solid var(--line);background:#091714;border-radius:12px;padding:11px}.room-transfer-card strong,.room-transfer-card small{display:block}.room-transfer-card small{color:var(--muted);margin-top:3px}.room-transfer-card .room-transfer-actions{display:flex;gap:7px;margin-top:9px}.room-transfer-card button{border:1px solid var(--line);background:#17312c;border-radius:8px;padding:7px 9px;cursor:pointer}.room-transfer-card button.primary-mini{background:#0b3f3c;color:#f5f8f7;border-color:rgba(217,174,55,.18)}.room-transfer-progress{height:5px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin-top:8px}.room-transfer-progress span{display:block;height:100%;background:linear-gradient(90deg,#f6e39a,#d9ae37);width:0}.room-transfer-modal{width:min(560px,100%)}.room-transfer-all{display:flex;gap:11px;align-items:flex-start;padding:12px;border:1px solid rgba(217,174,55,.18);background:rgba(11,63,60,.16);border-radius:11px}.room-transfer-all input{margin-top:3px}.room-transfer-all strong,.room-transfer-all small{display:block}.room-transfer-all small{color:var(--muted);margin-top:3px}.room-transfer-recipient-choices{display:grid;gap:7px;margin-top:10px}.room-transfer-choice{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);background:#091714;border-radius:10px}.room-transfer-choice span{display:grid}.room-transfer-choice small{color:var(--muted)}
@media(min-width:701px) and (max-width:1100px){.transfer-view{padding-left:max(24px,env(safe-area-inset-left))}.transfer-page-shell{width:min(520px,calc(100vw - 48px))}.transfer-main-card{padding:25px 24px}.transfer-main-card>h2{font-size:36px}}
@media(max-width:700px){.transfer-view{display:flex;align-items:flex-start;justify-content:center;padding:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom))}.transfer-page-shell{width:100%;align-self:start;padding-top:4px;margin:0 auto}.transfer-main-card{border-radius:16px;padding:20px 16px}.transfer-main-card>h2{font-size:32px}.transfer-lead{font-size:13px}.transfer-drop-zone{min-height:150px}.transfer-share-grid{grid-template-columns:1fr 1fr}.transfer-progress-head{align-items:center}.transfer-promo{grid-template-columns:1fr;text-align:center;justify-items:center}.transfer-promo-copy{text-align:center}.transfer-promo-actions{grid-template-columns:1fr}.transfer-promo-actions .quiet-link{min-height:40px}.transfer-install-steps{grid-template-columns:1fr}.transfer-limits{display:grid;gap:4px}.side-tabs{overflow-x:auto}.side-tab{white-space:nowrap}.files-panel-head{align-items:flex-start}.files-panel-head .primary-button{flex:0 0 auto}}
.transfer-complete-panel{text-align:center;justify-items:center}.transfer-complete-panel>p{max-width:620px}.transfer-promo{position:relative;overflow:hidden;width:100%;margin-top:16px;border:1px solid rgba(217,174,55,.26);background:radial-gradient(circle at 15% 20%,rgba(217,174,55,.14),transparent 35%),linear-gradient(145deg,#0b2823,#071613);border-radius:18px;padding:22px;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;animation:transferPromoIn .75s cubic-bezier(.2,.8,.2,1) both}.transfer-promo:after{content:"";position:absolute;inset:auto -15% -55% 20%;height:180px;background:radial-gradient(ellipse,rgba(35,135,126,.24),transparent 65%);pointer-events:none}.transfer-promo-mark{width:62px;height:62px;display:flex;align-items:flex-end;justify-content:center;gap:5px;padding:14px;border-radius:18px;background:#071311;border:1px solid rgba(217,174,55,.22);box-shadow:0 12px 34px rgba(0,0,0,.26)}.transfer-promo-mark span{width:7px;border-radius:8px;background:linear-gradient(180deg,#f6e39a,#a9780b)}.transfer-promo-mark span:nth-child(1){height:20px}.transfer-promo-mark span:nth-child(2){height:36px}.transfer-promo-mark span:nth-child(3){height:27px}.transfer-promo-copy small{display:block;color:#d9ae37;font-weight:700;letter-spacing:.09em;font-size:10px}.transfer-promo-copy strong{display:block;font-size:24px;margin-top:6px}.transfer-promo-copy p{margin:7px 0 0;color:#a9bcb6;line-height:1.48;font-size:13px}.transfer-promo-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:center}.transfer-promo-actions .primary-button{margin:0}.transfer-promo-actions .secondary-button{min-height:46px}.transfer-promo-actions .quiet-link{margin:0;padding:0 8px}.transfer-install-help{grid-column:1/-1;padding:12px 13px;border:1px solid rgba(217,174,55,.18);background:rgba(5,16,14,.52);border-radius:10px;color:#c8d5d1;font-size:12px;line-height:1.55}.transfer-install-help strong{color:#f3da7b}.transfer-install-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.transfer-install-steps span{display:block;padding:9px;border-radius:9px;background:#071815;border:1px solid rgba(255,255,255,.07)}@keyframes transferPromoIn{0%{opacity:0;transform:translateY(18px) scale(.98)}100%{opacity:1;transform:none}}
.files-panel{display:flex;flex-direction:column;gap:12px}.files-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.files-panel-head strong,.files-panel-head small{display:block}.files-panel-head small{margin-top:2px;color:var(--muted);font-size:10px}.files-panel-head .primary-button{width:auto;margin:0;padding:9px 11px}.room-file-transfers{display:grid;gap:8px}.room-transfer-card{border:1px solid var(--line);background:#091714;border-radius:12px;padding:11px}.room-transfer-card strong,.room-transfer-card small{display:block}.room-transfer-card small{color:var(--muted);margin-top:3px}.room-transfer-card .room-transfer-actions{display:flex;gap:7px;margin-top:9px}.room-transfer-card button{border:1px solid var(--line);background:#17312c;border-radius:8px;padding:7px 9px;cursor:pointer}.room-transfer-card button.primary-mini{background:#0b3f3c;color:#f5f8f7;border-color:rgba(217,174,55,.18)}.room-transfer-progress{height:5px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin-top:8px}.room-transfer-progress span{display:block;height:100%;background:linear-gradient(90deg,#f6e39a,#d9ae37);width:0}.room-transfer-modal{width:min(560px,100%)}.room-transfer-all{display:flex;gap:11px;align-items:flex-start;padding:12px;border:1px solid rgba(217,174,55,.18);background:rgba(11,63,60,.16);border-radius:11px}.room-transfer-all input{margin-top:3px}.room-transfer-all strong,.room-transfer-all small{display:block}.room-transfer-all small{color:var(--muted);margin-top:3px}.room-transfer-recipient-choices{display:grid;gap:7px;margin-top:10px}.room-transfer-choice{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);background:#091714;border-radius:10px}.room-transfer-choice span{display:grid}.room-transfer-choice small{color:var(--muted)}
@media(max-width:700px){.transfer-view{display:flex;align-items:flex-start;justify-content:center;padding:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom))}.transfer-page-shell{width:100%;align-self:start;padding-top:4px;margin:0 auto}.transfer-main-card{border-radius:16px;padding:20px 16px}.transfer-main-card>h2{font-size:32px}.transfer-lead{font-size:13px}.transfer-drop-zone{min-height:150px}.transfer-share-grid{grid-template-columns:1fr 1fr}.transfer-progress-head{align-items:center}.transfer-promo{grid-template-columns:1fr;text-align:center;justify-items:center}.transfer-promo-copy{text-align:center}.transfer-promo-actions{grid-template-columns:1fr}.transfer-promo-actions .quiet-link{min-height:40px}.transfer-install-steps{grid-template-columns:1fr}.transfer-limits{display:grid;gap:4px}.side-tabs{overflow-x:auto}.side-tab{white-space:nowrap}.files-panel-head{align-items:flex-start}.files-panel-head .primary-button{flex:0 0 auto}}


@media(min-width:561px) and (max-width:700px){.transfer-view{align-items:center;justify-content:flex-start;padding-left:max(22px,env(safe-area-inset-left));padding-right:22px}.transfer-page-shell{width:min(500px,calc(100vw - 44px));margin:0}.transfer-main-card{padding:24px 22px}.transfer-main-card>h2{font-size:35px}}

/* Ajustements des états générés par le moteur de transfert */
.transfer-drop-zone.dragging{border-color:#d9ae37;background:rgba(11,63,60,.50);transform:translateY(-1px)}
.transfer-file-row{grid-template-columns:auto minmax(0,1fr) auto}.transfer-file-type{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:rgba(217,174,55,.10);border:1px solid rgba(217,174,55,.16);color:#e7cd73;font-size:9px;font-weight:700;letter-spacing:.04em}.transfer-file-row.download-ready{grid-template-columns:auto minmax(0,1fr) auto}.transfer-file-row.download-ready a{white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;width:auto;margin:0;padding:8px 10px}.transfer-receiver-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.07);padding:9px 10px;border-radius:10px;background:rgba(6,19,16,.45)}.transfer-receiver-row strong,.transfer-receiver-row small{display:block}.transfer-receiver-row small{color:#829e95;margin-top:2px;font-size:10px}.transfer-mini-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#0b3f3c;border:1px solid rgba(217,174,55,.18);font-weight:700;color:#f1da82}.transfer-receiver-row>span{font-size:11px;color:#83d8b7;font-weight:700}
.room-file-card{border:1px solid var(--line);background:#091714;border-radius:12px;padding:11px;display:grid;gap:9px}.room-file-card.incoming,.room-file-card.offered{border-color:rgba(217,174,55,.20)}.room-file-card.done{border-color:rgba(87,197,150,.22)}.room-file-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.room-file-card-head strong,.room-file-card-head small{display:block}.room-file-card-head small{color:var(--muted);margin-top:3px;font-size:10px}.room-file-card-head>span{font-size:10px;font-weight:700;color:#d9ae37;white-space:nowrap}.room-file-actions,.room-file-downloads{display:flex;gap:7px;flex-wrap:wrap}.room-file-downloads .compact-button{width:auto;text-decoration:none}.compact-button{width:auto!important;margin:0!important;padding:8px 10px!important;min-height:34px!important;font-size:11px!important}.transfer-install-help ol{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.transfer-install-help li{display:flex;gap:8px;align-items:flex-start;padding:9px;border-radius:9px;background:#071815;border:1px solid rgba(255,255,255,.07)}.transfer-install-help li>b{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(100deg,#f6e39a,#d9ae37 55%,#a9780b);color:#0b3f3c}.transfer-install-help p{margin:8px 0 0}.transfer-promo{opacity:1}.transfer-promo.is-visible{animation:transferPromoIn .75s cubic-bezier(.2,.8,.2,1) both}
@media(max-width:700px){.transfer-file-row.download-ready{grid-template-columns:auto minmax(0,1fr)}.transfer-file-row.download-ready a{grid-column:1/-1;width:100%}.transfer-install-help ol{grid-template-columns:1fr}}


/* V1.19.4 / V20.9.5 / V20.6.5 — Bonjour Transfert mobile : finesse, zones sûres iOS et zéro débordement */
.transfer-view,.transfer-page-shell,.transfer-main-card,.transfer-panel,.transfer-share-grid,.transfer-link-box,.transfer-waiting{min-width:0}
.transfer-view{max-width:100vw}
@media(max-width:700px){
  .transfer-view{overflow-x:hidden;align-items:flex-start;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 10px max(16px,env(safe-area-inset-bottom))}
  .transfer-page-shell{width:100%;max-width:100%;min-width:0;align-self:start;padding:0;margin:0 auto;gap:8px}
  .transfer-back{font-size:14px;line-height:1.2;margin:0 0 2px 2px;min-height:24px;display:inline-flex;align-items:center}
  .transfer-main-card{width:100%;max-width:100%;min-width:0;border-radius:15px;padding:18px 14px;overflow:hidden}
  .transfer-brand-row{min-width:0;align-items:flex-start;gap:8px}
  .transfer-brand-row .eyebrow{min-width:0;font-size:10px;letter-spacing:.14em;line-height:1.3}
  .transfer-no-storage{flex:0 0 auto;font-size:9px;padding:5px 7px}
  .transfer-main-card>h2{max-width:100%;font-size:clamp(27px,7.1vw,31px);line-height:1.05;letter-spacing:-.035em;margin:10px 0 10px;overflow-wrap:anywhere}
  .transfer-lead{max-width:100%;font-size:12.5px;line-height:1.52;margin-bottom:18px;overflow-wrap:anywhere}
  .transfer-panel{width:100%;max-width:100%;min-width:0;gap:12px}
  .transfer-panel h3{max-width:100%;font-size:22px;line-height:1.16;overflow-wrap:anywhere}
  .transfer-panel>p{max-width:100%;font-size:12.5px;line-height:1.5;overflow-wrap:anywhere}
  .transfer-ready-mark,.transfer-receive-icon,.transfer-complete-check{width:56px;height:56px;font-size:26px}
  .transfer-code{max-width:100%;font-size:clamp(23px,7vw,29px);letter-spacing:.09em;line-height:1.1;overflow-wrap:anywhere;word-break:break-word}
  .transfer-link-box{width:100%;max-width:100%;min-width:0;overflow:hidden}
  .transfer-link-box span{min-width:0;font-size:11px;padding:8px 7px}
  .transfer-link-box button{flex:0 0 auto;padding:0 10px}
  .transfer-share-grid{width:100%;max-width:100%;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .transfer-share-grid button{width:100%;min-width:0;max-width:100%;min-height:47px;padding:0 7px;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .transfer-share-grid button span{flex:0 0 auto;font-size:10px}
  .transfer-waiting{width:100%;max-width:100%;min-width:0;align-items:flex-start;gap:10px;padding-top:12px}
  .transfer-waiting>div{min-width:0;max-width:100%}
  .transfer-waiting strong,.transfer-waiting small{white-space:normal;overflow-wrap:anywhere;word-break:normal}
  .transfer-waiting strong{font-size:13px;line-height:1.3}.transfer-waiting small{font-size:10.5px;line-height:1.42}
  .transfer-receiver-list,.transfer-file-list{min-width:0;max-width:100%}
}
@media(max-width:370px){
  .transfer-main-card{padding:16px 12px}
  .transfer-main-card>h2{font-size:26px}
  .transfer-share-grid{grid-template-columns:1fr}
  .transfer-brand-row{display:grid;justify-items:start}
}

/* =========================================================
   V20.9.5 / V20.6.5 / Bridge 1.19.9
   Réunions & salons — zones sûres iPhone/iPad/Android.
   Le bouton Quitter reste toujours accessible ; le groupe
   central devient horizontalement défilable si nécessaire.
   ========================================================= */
@media (max-width:1180px){
  .room-view{height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden}
  .room-body{min-height:0;overflow:hidden}
  .control-bar{
    position:relative;z-index:40;width:100%;max-width:100vw;min-width:0;
    height:auto;min-height:64px;flex:0 0 auto;
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
    gap:4px;overflow:hidden;
    padding-top:7px;
    padding-bottom:max(7px,env(safe-area-inset-bottom));
    padding-left:max(7px,env(safe-area-inset-left));
    padding-right:max(7px,env(safe-area-inset-right));
  }
  .control-bar .control-group{min-width:0;gap:3px}
  .control-bar #mediaControls,.control-bar .right-controls{flex:0 0 auto;min-width:max-content}
  .control-bar .center-controls{
    min-width:0;max-width:100%;width:100%;justify-content:flex-start;
    overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;
    padding:0 2px;
  }
  .control-bar .center-controls::-webkit-scrollbar{display:none}
  .control-bar .center-controls .control-button{flex:0 0 auto}
  .control-bar .right-controls{position:relative;z-index:3;justify-content:flex-end}
  .control-bar .leave-button{
    display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto;
    min-width:72px;max-width:92px;height:48px;padding:0 13px;margin:0;
    white-space:nowrap;overflow:visible;font-size:13px;line-height:1;border-radius:11px;
  }
  .side-panel{bottom:calc(64px + env(safe-area-inset-bottom))}
}
@media (max-width:430px){
  .control-bar{gap:2px;padding-left:max(5px,env(safe-area-inset-left));padding-right:max(5px,env(safe-area-inset-right))}
  .control-bar #mediaControls .control-button,.control-bar .center-controls .control-button{min-width:40px;width:40px;padding:4px 3px}
  .control-bar .control-icon{width:34px;height:34px}
  .control-bar .leave-button{min-width:66px;max-width:72px;height:44px;padding:0 9px;font-size:12px}
}
@media (max-height:520px) and (orientation:landscape){
  .room-header{min-height:48px;height:calc(48px + env(safe-area-inset-top));flex-basis:calc(48px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}
  .control-bar{min-height:52px;padding-top:4px;padding-bottom:max(4px,env(safe-area-inset-bottom))}
  .control-bar .control-button{height:42px;min-width:40px;padding:3px}
  .control-bar .control-icon{width:31px;height:30px}
  .control-bar .leave-button{height:42px;min-width:64px;padding:0 9px}
  .side-panel{top:calc(48px + env(safe-area-inset-top));bottom:calc(52px + env(safe-area-inset-bottom))}
}


/* ======================================================================
   BONJOUR VISUAL SYSTEM — HUB 20.10.3 / SAT 20.7.3 / Bridge 1.20.6
   L'esthétique de Bonjour Transfert devient la base visuelle commune.
   ====================================================================== */
.app-shell{position:relative;isolation:isolate;background:#071311;overflow-x:hidden}
.bonjour-global-carousel{position:fixed;inset:0;z-index:-3;overflow:hidden;background:radial-gradient(circle at 18% 18%,rgba(217,174,55,.10),transparent 30%),linear-gradient(135deg,#081714,#0b2823 48%,#071311);pointer-events:none}
.bonjour-global-slide{position:absolute;inset:-2%;display:none;opacity:0;transform:scale(1.065);background-position:center;background-size:cover;background-repeat:no-repeat;transition:opacity 1.65s ease;will-change:opacity,transform}
.bonjour-global-slide.is-ready{display:block}.bonjour-global-slide.is-active{opacity:1;animation:bonjourGlobalKenBurns 11s ease-out both}.bonjour-global-slide.is-unavailable{display:none!important}
.bonjour-global-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,13,11,.80),rgba(3,13,11,.52) 48%,rgba(3,13,11,.72)),linear-gradient(0deg,rgba(3,13,11,.84),rgba(3,13,11,.14) 48%,rgba(3,13,11,.48));backdrop-filter:blur(1px)}
@keyframes bonjourGlobalKenBurns{0%{transform:scale(1.065)}100%{transform:scale(1.012)}}
.view{position:relative;z-index:1;background:transparent!important}
.home-view,.regions-view,.prejoin-view,.lobby-view,.network-view,.streaming-view,.room-view{background:transparent!important}
.home-view,.regions-view,.prejoin-view,.lobby-view{place-items:center start!important;padding:max(26px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom)) max(34px,env(safe-area-inset-left))!important}
.home-card,.regions-card,.join-card,.lobby-card,.network-card,.streaming-shell{background:linear-gradient(145deg,rgba(10,27,24,.94),rgba(7,19,17,.91))!important;border:1px solid rgba(217,174,55,.20)!important;box-shadow:0 24px 74px rgba(0,0,0,.38)!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important}
.home-card{width:min(620px,calc(100vw - 68px));padding:clamp(24px,3vw,34px);border-radius:18px}
.home-card .brand-lockup{margin-bottom:4px}.home-card .lead{margin-bottom:26px}.home-actions{gap:10px}.action-card{min-height:94px;padding:18px 19px;border-radius:13px;background:linear-gradient(145deg,rgba(10,34,29,.90),rgba(7,23,20,.88))!important;border-color:rgba(255,255,255,.08)!important;box-shadow:none!important}.action-card:hover{border-color:rgba(217,174,55,.22)!important;background:rgba(14,49,42,.92)!important}.action-icon{border-radius:13px;background:rgba(217,174,55,.09);border:1px solid rgba(217,174,55,.14);color:#f0d77b}.primary-action{background:linear-gradient(145deg,rgba(11,63,60,.93),rgba(13,47,42,.94))!important;border-color:rgba(217,174,55,.20)!important}
.regions-card{width:min(920px,calc(100vw - 68px));border-radius:18px;padding:clamp(22px,3vw,30px)}.region-row,.region-row-wrap{backdrop-filter:blur(12px)}
.prejoin-layout{width:min(1180px,calc(100vw - 68px));margin:0}.preview-card{border:1px solid rgba(217,174,55,.15);box-shadow:0 24px 74px rgba(0,0,0,.34)}.join-card{border-radius:18px}
.lobby-card{border-radius:18px;max-width:760px}
.network-view,.streaming-view{padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))!important}.network-card,.streaming-shell{border-radius:18px!important}
.network-summary article,.network-map-panel,.network-nodes-panel,.network-reliability article,.satellite-update-admin,.streaming-sidebar,.streaming-program-panel,.streaming-side-card{background:rgba(5,20,17,.72)!important;border-color:rgba(217,174,55,.12)!important;backdrop-filter:blur(12px)}
.room-view{background:transparent!important}.room-header{background:rgba(6,22,19,.88)!important;border-color:rgba(217,174,55,.14)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.stage-wrap{background:rgba(4,15,13,.34)}.audience-strip,.side-panel,.control-bar,.more-menu,.host-broadcast-toolbar{background:rgba(6,23,20,.90)!important;border-color:rgba(217,174,55,.14)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.video-tile,.preview-card{box-shadow:0 18px 55px rgba(0,0,0,.30)}
.modal-card,.invite-modal,.admin-room-modal,.settings-card,.scheduled-modal-card{background:linear-gradient(145deg,rgba(10,27,24,.98),rgba(7,19,17,.97))!important;border-color:rgba(217,174,55,.18)!important;backdrop-filter:blur(22px)}
.transfer-view .transfer-carousel{display:none!important}
@media(max-width:900px){
  .home-view,.regions-view,.prejoin-view,.lobby-view{padding:max(22px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))!important}
  .home-card,.regions-card,.prejoin-layout{width:100%}.home-card{max-width:640px}.network-view,.streaming-view{padding:max(14px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}
}
@media(max-width:560px){
  .bonjour-global-shade{background:linear-gradient(0deg,rgba(3,13,11,.88),rgba(3,13,11,.54) 52%,rgba(3,13,11,.68))}
  .home-view,.regions-view,.prejoin-view,.lobby-view{place-items:start stretch!important;padding:max(14px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}
  .home-card,.regions-card,.join-card,.lobby-card{width:100%;border-radius:15px;padding:18px}.home-actions{grid-template-columns:1fr}.home-actions .primary-action{grid-column:auto}.action-card{min-height:82px;padding:15px}.prejoin-layout{width:100%}
}
@media(prefers-reduced-motion:reduce){.bonjour-global-slide.is-active{animation:none}.bonjour-global-slide{transition:none}}


/* Bonjour Transfert — mémoire locale des transferts actifs */
.transfer-history-section{margin-top:18px;padding-top:14px;border-top:1px solid rgba(217,174,55,.18)}
.transfer-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.transfer-history-head>div{display:grid;gap:2px}.transfer-history-head strong{font-size:13px}.transfer-history-head .quiet-link{font-size:11px}
.transfer-history-list{display:grid;gap:8px}.transfer-history-card{border:1px solid rgba(217,174,55,.17);background:rgba(6,28,25,.52);border-radius:10px;padding:10px 11px;display:grid;gap:7px}.transfer-history-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.transfer-history-card strong,.transfer-history-card small{display:block}.transfer-history-card small{color:var(--muted);font-size:10px;line-height:1.4}.transfer-history-status{white-space:nowrap;border:1px solid rgba(217,174,55,.24);border-radius:999px;padding:4px 7px;color:#f6e39a;font-size:9px;font-weight:700;letter-spacing:.04em}.transfer-history-actions{display:flex;flex-wrap:wrap;gap:6px}.transfer-history-actions button{border:1px solid var(--line);background:rgba(11,63,60,.52);color:inherit;border-radius:7px;padding:7px 9px;font-size:10px;cursor:pointer}.transfer-history-actions button.danger{background:transparent;border-color:rgba(207,96,96,.36);color:#f3b7b7}
@media(max-width:520px){.transfer-history-card-top{display:grid}.transfer-history-status{justify-self:start}.transfer-history-actions button{flex:1 1 calc(50% - 6px);min-height:40px}}


/* ======================================================================
   BONJOUR FINAL POLISH — HUB 20.10.3 / SAT 20.7.3 / Bridge 1.20.6
   Finesse du lockup, respiration gauche, fonds non assombris,
   transitions photo douces et cohérentes sur desktop/tablette/mobile.
   ====================================================================== */
.bonjour-global-shade{display:none!important;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.bonjour-global-carousel{background:#071311!important}
.bonjour-global-slide{
  inset:-.5%!important;
  opacity:0;
  transform:scale(1.018);
  transition:opacity 2.6s cubic-bezier(.4,0,.2,1)!important;
  filter:none!important;
  will-change:opacity,transform;
}
.bonjour-global-slide.is-active{
  opacity:1;
  animation:bonjourFinalDrift 18s ease-out both!important;
}
@keyframes bonjourFinalDrift{0%{transform:scale(1.018)}100%{transform:scale(1.004)}}

/* Signature Bonjour : plus compacte, plus premium, jamais dominante. */
.home-card .brand-lockup{margin:0 0 8px!important;gap:0!important}
.home-card .brand-lockup .brand-mark{
  height:27px!important;gap:4px!important;margin:0 0 3px 2px!important;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))!important;
}
.home-card .brand-lockup .brand-mark span{width:7px!important;border-radius:999px!important}
.home-card .brand-lockup .brand-mark span:nth-child(1){height:15px!important}
.home-card .brand-lockup .brand-mark span:nth-child(2){height:26px!important}
.home-card .brand-lockup .brand-mark span:nth-child(3){height:20px!important}
.home-card .brand-lockup h1{
  font-size:36px!important;line-height:.98!important;letter-spacing:-.042em!important;
  margin:0 0 3px!important;font-weight:600!important;
}
.home-card .product-signature{font-size:11px!important;line-height:1.35!important;letter-spacing:.01em;color:#cbd8d4!important;opacity:.88}
.home-card .lead{font-size:15px!important;line-height:1.45!important;margin:7px 0 22px!important;color:#a8bbb5!important}

/* Fenêtres : respiration latérale volontaire, dans l'esprit de Transfert. */
@media (min-width:701px){
  .home-view,.regions-view,.prejoin-view,.lobby-view{
    place-items:center start!important;
    padding-left:max(92px,env(safe-area-inset-left))!important;
    padding-right:max(28px,env(safe-area-inset-right))!important;
  }
  .transfer-view{
    justify-content:flex-start!important;
    padding-left:max(92px,env(safe-area-inset-left))!important;
    padding-right:max(28px,env(safe-area-inset-right))!important;
  }
  .transfer-page-shell{margin-left:0!important;margin-right:auto!important}
  .network-view,.streaming-view{
    padding-left:max(92px,env(safe-area-inset-left))!important;
    padding-right:max(28px,env(safe-area-inset-right))!important;
  }
  .network-card,.streaming-shell{margin-left:0!important;margin-right:auto!important}
}

/* Verre plus précis : le fond reste visible sans voile général. */
.home-card,.regions-card,.join-card,.lobby-card,.network-card,.streaming-shell,.transfer-main-card{
  background:linear-gradient(145deg,rgba(8,24,21,.965),rgba(5,18,16,.945))!important;
  border-color:rgba(217,174,55,.22)!important;
  box-shadow:0 18px 48px rgba(0,0,0,.30)!important;
  backdrop-filter:blur(13px)!important;-webkit-backdrop-filter:blur(13px)!important;
}
.home-card{width:min(590px,calc(100vw - 120px))!important;border-radius:16px!important;padding:27px 28px!important}
.action-card{transition:background-color .22s ease,border-color .22s ease,transform .22s ease!important}
.action-card:hover{transform:translateY(-1px)!important}

/* Les vues de travail restent professionnelles : image présente, contenu prioritaire. */
.room-header,.audience-strip,.side-panel,.control-bar,.more-menu,.host-broadcast-toolbar{
  box-shadow:none!important;
}
.modal-card,.invite-modal,.admin-room-modal,.settings-card,.scheduled-modal-card{
  box-shadow:0 18px 48px rgba(0,0,0,.30)!important;
}

@media (min-width:701px) and (max-width:1180px){
  .home-view,.regions-view,.prejoin-view,.lobby-view,.transfer-view,.network-view,.streaming-view{
    padding-left:max(82px,env(safe-area-inset-left))!important;
  }
  .home-card{width:min(590px,calc(100vw - 116px))!important}
}

@media(max-width:700px){
  .home-card .brand-lockup .brand-mark{height:24px!important;margin-left:1px!important}
  .home-card .brand-lockup .brand-mark span{width:6px!important}
  .home-card .brand-lockup .brand-mark span:nth-child(1){height:14px!important}
  .home-card .brand-lockup .brand-mark span:nth-child(2){height:23px!important}
  .home-card .brand-lockup .brand-mark span:nth-child(3){height:18px!important}
  .home-card .brand-lockup h1{font-size:33px!important}
  .home-card{width:100%!important;padding:19px 17px!important}
  .home-card .lead{font-size:14px!important;margin-bottom:18px!important}
}
@media(prefers-reduced-motion:reduce){
  .bonjour-global-slide{transition:opacity .35s ease!important}
  .bonjour-global-slide.is-active{animation:none!important;transform:none!important}
}


/* ======================================================================
   BONJOUR PROFESSIONAL UI SYSTEM — lancement 2026
   Passe finale de direction artistique : hiérarchie, densité, lumière
   naturelle, cohérence des composants et finesse des parcours.
   ====================================================================== */
:root{
  --pro-panel:rgba(7,25,22,.965);
  --pro-panel-2:rgba(8,30,26,.94);
  --pro-line:rgba(231,244,239,.105);
  --pro-line-strong:rgba(231,244,239,.16);
  --pro-light:rgba(236,255,250,.075);
  --pro-light-soft:rgba(209,240,233,.04);
  --pro-radius-panel:14px;
  --pro-radius-card:10px;
  --pro-radius-control:8px;
  --pro-shadow:0 20px 52px rgba(0,0,0,.34),-18px -14px 54px rgba(236,255,250,.075),22px 24px 72px rgba(209,240,233,.03);
}

/* Mouvement d'arrière-plan plus lent : l'image accompagne, elle ne joue jamais le premier rôle. */
.bonjour-global-slide{transform:scale(1.012)!important;transition:opacity 3.25s cubic-bezier(.4,0,.2,1)!important}
.bonjour-global-slide.is-active{animation:bonjourProDrift 21s ease-out both!important}
@keyframes bonjourProDrift{0%{transform:scale(1.012)}100%{transform:scale(1.002)}}

/* Panneaux : halo naturel local, sans ajout d'or. */
.home-card,.regions-card,.join-card,.lobby-card,.network-card,.streaming-shell,.transfer-main-card,
.invite-modal,.modal-card,.admin-room-modal,.settings-card,.scheduled-modal-card,.guide-card,.contribution-modal{
  border-radius:var(--pro-radius-panel)!important;
  border-color:var(--pro-line-strong)!important;
  background:linear-gradient(150deg,var(--pro-panel),rgba(5,18,16,.955))!important;
  box-shadow:var(--pro-shadow)!important;
  backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;
}

/* Signature de l'accueil : identifiable, jamais dominante. */
.home-card{width:min(535px,calc(100vw - 120px))!important;padding:23px 24px!important}
.home-card .brand-lockup{margin:0 0 5px!important}
.home-card .brand-lockup .brand-mark{height:22px!important;gap:3px!important;margin:0 0 2px 1px!important}
.home-card .brand-lockup .brand-mark span{width:5px!important}
.home-card .brand-lockup .brand-mark span:nth-child(1){height:12px!important}
.home-card .brand-lockup .brand-mark span:nth-child(2){height:21px!important}
.home-card .brand-lockup .brand-mark span:nth-child(3){height:16px!important}
.home-card .brand-lockup h1{font-size:29px!important;line-height:1!important;letter-spacing:-.036em!important;font-weight:600!important;margin:0 0 2px!important}
.home-card .product-signature{font-size:10px!important;line-height:1.35!important;letter-spacing:.018em!important;color:#cfdbd7!important;opacity:.82}
.home-card .lead{font-size:13px!important;line-height:1.42!important;margin:6px 0 18px!important;color:#9eb2ac!important}
.home-actions{gap:8px!important}
.action-card{min-height:72px!important;padding:12px 13px!important;gap:12px!important;border-radius:var(--pro-radius-card)!important;background:linear-gradient(145deg,rgba(9,34,29,.86),rgba(6,23,20,.84))!important;border-color:var(--pro-line)!important}
.action-card:hover{transform:translateY(-1px)!important;border-color:rgba(231,244,239,.18)!important;background:rgba(12,44,38,.91)!important}
.action-icon{width:39px!important;height:39px!important;border-radius:10px!important;font-size:18px!important;background:rgba(217,174,55,.075)!important;border-color:rgba(217,174,55,.13)!important}
.action-card strong{font-size:13.5px!important;line-height:1.17!important;margin-bottom:3px!important;font-weight:600!important}
.action-card small{font-size:10.5px!important;line-height:1.33!important;color:#aabbb6!important}
.primary-action{background:linear-gradient(145deg,rgba(10,61,57,.91),rgba(8,42,38,.91))!important;border-color:rgba(231,244,239,.14)!important}
.product-meta,.satellite-network-status{font-size:9px!important;line-height:1.35!important}

/* Hiérarchie typographique commune. */
.eyebrow{font-size:9.5px!important;letter-spacing:.13em!important;font-weight:600!important;color:#76c9c0!important}
.page-head h2{font-size:26px!important;line-height:1.08!important;letter-spacing:-.028em!important;margin-top:4px!important}
.join-card h2,.lobby-card h2{font-size:24px!important;line-height:1.1!important;letter-spacing:-.025em!important;margin:7px 0 17px!important}
.transfer-main-card>h2{font-size:30px!important;line-height:1.055!important;letter-spacing:-.033em!important;margin:11px 0 9px!important;max-width:560px!important}
.transfer-lead,.modal-subtitle{font-size:12.5px!important;line-height:1.5!important;color:#9fb2ac!important}
.modal-head h3{font-size:21px!important;line-height:1.12!important;letter-spacing:-.022em!important;margin:5px 0 0!important}
.region-row strong,.participant-meta strong,.request-row strong{font-size:12px!important}
.region-row small,.participant-meta small,.request-row small{font-size:10px!important}

/* Formulaires : densité logicielle, pas de grands blocs de landing page. */
.join-card{padding:24px!important;max-width:400px!important}
.join-card label,.field-label,.settings-label,.transfer-name-field{font-size:11px!important;line-height:1.35!important}
.join-card input,.settings-label input,.settings-label select,.settings-label textarea,.transfer-name-field input,
.contribution-idea-card input,.contribution-idea-card select,.contribution-idea-card textarea{
  border-radius:var(--pro-radius-control)!important;padding:10px 11px!important;font-size:13px!important;min-height:40px!important;
  border-color:var(--pro-line)!important;background:rgba(4,20,17,.82)!important;
}
.settings-label textarea,.contribution-idea-card textarea{min-height:92px!important}
.avatar-choice{width:28px!important;height:28px!important}
.avatar-choices{gap:7px!important}

/* Boutons : trois niveaux visuels cohérents. */
.primary-button{min-height:40px!important;padding:9px 14px!important;border-radius:var(--pro-radius-control)!important;font-size:12.5px!important;font-weight:600!important;margin-top:18px!important;box-shadow:none!important}
.secondary-button,.icon-text-button{min-height:34px!important;border-radius:var(--pro-radius-control)!important;padding:0 10px!important;font-size:11.5px!important;border-color:var(--pro-line)!important}
.compact-button{min-height:32px!important;padding:0 10px!important;font-size:10.5px!important}
.modal-close{width:32px!important;height:32px!important;border-radius:8px!important;font-size:20px!important;background:rgba(12,43,37,.78)!important;border-color:var(--pro-line)!important}
.quiet-link,.quiet-button{font-size:11.5px!important}

/* Listes et écrans métier. */
.regions-card{width:min(820px,calc(100vw - 132px))!important;padding:22px!important}
.regions-help{font-size:12px!important;margin:8px 0 18px 0!important}
.regions-list{gap:7px!important}
.region-row{border-radius:9px!important;padding:11px 12px!important;min-height:56px!important;border-color:var(--pro-line)!important;background:rgba(5,24,20,.72)!important}
.status-pill{font-size:8.5px!important;padding:4px 6px!important}
.prejoin-layout{width:min(1030px,calc(100vw - 132px))!important;grid-template-columns:minmax(0,1.22fr) minmax(340px,.78fr)!important;gap:20px!important}
.preview-card{border-radius:var(--pro-radius-panel)!important;box-shadow:var(--pro-shadow)!important}
.round-control{width:42px!important;height:42px!important}
.lobby-card{max-width:650px!important;padding:24px!important}
.rules-list{gap:7px!important}.rule-item{padding:10px 11px!important;border-radius:9px!important}.rule-item strong{font-size:12px!important}.rule-item small{font-size:10.5px!important;line-height:1.42!important}

/* Transfert : même ADN, encore plus fin. */
.transfer-page-shell{width:min(540px,calc(100vw - 132px))!important}
.transfer-main-card{padding:23px 24px!important}
.transfer-no-storage{font-size:8.5px!important;padding:5px 7px!important}
.transfer-panel{gap:10px!important}
.transfer-panel h3{font-size:19px!important;line-height:1.16!important;margin:4px 0!important}
.transfer-drop-zone{min-height:112px!important;border-radius:11px!important}
.transfer-drop-icon{width:42px!important;height:42px!important;font-size:21px!important}
.transfer-limits{font-size:9.5px!important;line-height:1.4!important}
.transfer-share-grid{gap:6px!important}.transfer-share-grid button{min-height:40px!important;border-radius:8px!important;font-size:11px!important}
.transfer-code{font-size:25px!important}.transfer-link-box{min-height:39px!important;border-radius:8px!important}

/* Modales, programmation, contribution : largeur utile mais densité maîtrisée. */
.invite-modal{padding:20px!important}
.schedule-meeting-modal{max-width:720px!important}.schedule-meeting-form{gap:9px!important}.schedule-grid{gap:9px!important}
.schedule-timezone-note{font-size:10.5px!important;padding:9px 10px!important;border-radius:8px!important}
.contribution-modal{width:min(900px,calc(100vw - 40px))!important;padding:20px!important}
.contribution-layout{gap:12px!important}.contribution-idea-card,.contribution-support-card{padding:15px!important;border-radius:11px!important;border-color:var(--pro-line)!important}.contribution-idea-card h4,.contribution-support-card h4{font-size:15.5px!important;line-height:1.2!important}.contribution-idea-card>p,.contribution-support-card>p{font-size:11px!important;line-height:1.48!important}.contribution-support-icon{width:42px!important;height:42px!important;font-size:19px!important;border-radius:10px!important}

/* Nouveautés : présentation de version, pas publicité. */
.whats-new-modal.whats-new-premium{width:min(720px,calc(100vw - 40px))!important;border-radius:14px!important;max-height:min(88vh,760px)!important}
.whats-new-premium .whats-new-hero{grid-template-columns:104px minmax(0,1fr)!important;gap:20px!important;min-height:auto!important;padding:20px 22px 17px!important;background:linear-gradient(145deg,rgba(6,25,22,.98),rgba(8,48,43,.94))!important}
.whats-new-logo-panel{min-height:70px!important}.whats-new-premium .whats-new-logo{width:90px!important;max-width:90px!important;max-height:72px!important;filter:drop-shadow(0 8px 16px rgba(0,0,0,.24))!important}
.whats-new-hero-copy{padding-right:28px!important}.whats-new-premium .whats-new-version{font-size:8px!important;padding:4px 7px!important;letter-spacing:.11em!important}
.whats-new-premium .whats-new-hero h3{font-size:21px!important;line-height:1.12!important;margin:7px 0 7px!important;max-width:520px!important}
.whats-new-premium .whats-new-hero p{font-size:11.5px!important;line-height:1.5!important;max-width:540px!important}
.whats-new-premium .update-version-card,.whats-new-premium .update-roadmap,.whats-new-premium .modal-actions{margin-left:20px!important;margin-right:20px!important}
.whats-new-premium .update-version-card{padding:11px 13px!important;border-radius:9px!important;margin-top:13px!important;margin-bottom:9px!important;background:rgba(236,255,250,.035)!important;border-color:var(--pro-line)!important}
.whats-new-premium .update-version-head strong{font-size:11px!important}.whats-new-premium .update-version-card p{font-size:10.5px!important;line-height:1.45!important}
.whats-new-premium .premium-roadmap{gap:7px!important}.whats-new-premium .premium-roadmap article{min-height:78px!important;padding:10px!important;border-radius:9px!important;grid-template-columns:28px minmax(0,1fr)!important;gap:8px!important;border-color:var(--pro-line)!important}
.whats-new-premium .update-roadmap-icon{width:28px!important;height:28px!important;border-radius:8px!important;font-size:11px!important}
.whats-new-premium .premium-roadmap article strong{font-size:11px!important;margin-bottom:3px!important}.whats-new-premium .premium-roadmap article small{font-size:9.8px!important;line-height:1.42!important}
.whats-new-premium .modal-actions{padding-bottom:17px!important;margin-top:10px!important}.whats-new-premium .modal-actions .primary-button{width:auto!important;min-width:190px!important;margin-top:0!important}

/* Visite guidée : compacte, calme, orientée action. */
.guide-backdrop{background:rgba(2,10,9,.12)!important}
.guide-spotlight{border:1px solid rgba(230,255,249,.70)!important;box-shadow:0 0 0 9999px rgba(0,8,7,.38),0 0 0 4px rgba(230,255,249,.055),0 0 28px rgba(230,255,249,.11)!important;border-radius:11px!important}
.guide-card{width:min(410px,calc(100vw - 24px))!important;padding:15px!important}
.guide-progress{font-size:8.5px!important;letter-spacing:.08em!important}.guide-meter{height:2px!important;margin:7px 0 11px!important}.guide-heading{grid-template-columns:36px minmax(0,1fr)!important;gap:10px!important}.guide-icon{width:36px!important;height:36px!important;border-radius:9px!important;font-size:16px!important;animation:none!important}
.guide-card h3{font-size:17px!important;line-height:1.17!important;margin-bottom:5px!important}.guide-card p{font-size:11.5px!important;line-height:1.46!important}.guide-impact{margin-top:9px!important;padding:8px 9px!important;border-left:2px solid rgba(230,255,249,.50)!important;background:rgba(230,255,249,.035)!important;color:#dce9e5!important;font-size:10px!important;line-height:1.4!important}.guide-auto-toggle{margin-top:10px!important;font-size:9.5px!important}.guide-actions{margin-top:10px!important}

/* Réunions/salons : commandes plus discrètes, contenu prioritaire. */
@media(min-width:901px){
  .room-header{height:58px!important;flex-basis:58px!important;padding:0 15px!important}.room-identity strong{font-size:13px!important}.room-identity small{font-size:10px!important}.brand-dot{width:9px!important;height:9px!important;box-shadow:0 0 0 4px rgba(35,135,126,.10)!important}
  .header-actions{gap:6px!important}.control-bar{height:70px!important;flex-basis:70px!important;padding:0 14px!important}.control-button{min-width:62px!important;padding:6px 7px!important;font-size:9.5px!important}.control-icon{width:30px!important;height:27px!important;font-size:13px!important;border-radius:7px!important}.leave-button{padding:9px 14px!important;font-size:11.5px!important;border-radius:8px!important}.side-panel{top:58px!important;bottom:70px!important;width:340px!important;flex-basis:340px!important}.side-tabs{min-height:50px!important}.side-tab{font-size:11px!important}.audience-strip{padding:8px 10px!important;border-radius:9px!important}
}

/* Network & Streaming : même densité et même lumière. */
.network-summary article,.network-map-panel,.network-nodes-panel,.network-reliability article,.satellite-update-admin,
.streaming-sidebar,.streaming-program-panel,.streaming-side-card{border-radius:10px!important;border-color:var(--pro-line)!important;background:rgba(6,25,21,.78)!important;box-shadow:none!important}

/* Responsive : finesse sans sacrifier les zones tactiles. */
@media(max-width:900px){
  .home-card{width:min(560px,100%)!important}.regions-card,.prejoin-layout,.transfer-page-shell{width:100%!important}.join-card{max-width:none!important}
  .action-card{min-height:68px!important}.action-card strong{font-size:13px!important}.action-card small{font-size:10.5px!important}
  .primary-button{min-height:44px!important}.secondary-button,.icon-text-button{min-height:40px!important}
}
@media(max-width:700px){
  .home-card{padding:17px 16px!important}.home-card .brand-lockup h1{font-size:27px!important}.home-card .brand-lockup .brand-mark{height:20px!important}.home-card .lead{font-size:12.5px!important;margin-bottom:15px!important}.action-card{min-height:64px!important;padding:11px 12px!important}.action-icon{width:37px!important;height:37px!important}
  .transfer-main-card{padding:17px 14px!important}.transfer-main-card>h2{font-size:26px!important}.modal-head h3{font-size:19px!important}.whats-new-premium .whats-new-hero{grid-template-columns:1fr!important;text-align:center!important;padding:18px 16px 15px!important}.whats-new-premium .whats-new-logo{width:72px!important;max-width:72px!important;max-height:58px!important}.whats-new-hero-copy{padding-right:0!important}.whats-new-premium .premium-roadmap{grid-template-columns:1fr!important}.whats-new-premium .modal-actions .primary-button{width:100%!important}
  .guide-card{width:min(380px,calc(100vw - 16px))!important;padding:13px!important}.guide-heading{grid-template-columns:32px minmax(0,1fr)!important}.guide-icon{width:32px!important;height:32px!important}.guide-card h3{font-size:16px!important}
}
@media(max-width:420px){
  .home-actions{gap:7px!important}.action-card{min-height:61px!important}.action-card small{font-size:10px!important}.transfer-share-grid button{min-height:44px!important}
}
@media(prefers-reduced-motion:reduce){.bonjour-global-slide{transition:opacity .4s ease!important}.bonjour-global-slide.is-active{animation:none!important;transform:none!important}}

/* V1.20.6 — finition Web App, salons portables & version Windows */
.regions-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.room-key-modal,.portable-room-keys-modal{width:min(560px,calc(100vw - 32px))}
.room-key-input-label input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.025em;text-transform:none}
.room-key-trust{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;border:1px solid rgba(181,205,197,.16);background:rgba(236,246,242,.045);border-radius:10px;color:#dfe9e5}
.room-key-trust>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(132,214,183,.12);border:1px solid rgba(132,214,183,.28);font-size:12px;flex:0 0 auto}.room-key-trust p{margin:0}.room-key-trust strong,.room-key-trust small{display:block}.room-key-trust small{margin-top:3px;color:rgba(231,240,236,.62);font-size:11px;line-height:1.45}
.portable-room-keys-modal{display:grid;gap:12px}.portable-key-card{padding:15px;border:1px solid rgba(211,226,220,.15);border-radius:11px;background:rgba(4,28,25,.54)}.portable-key-card.owner{border-color:rgba(225,202,132,.22)}
.portable-key-card>span,.portable-security-card>span{display:block;font-size:10px;line-height:1.2;letter-spacing:.11em;font-weight:700;color:rgba(231,239,236,.62);margin-bottom:7px}.portable-key-card code,.portable-security-card code{display:block;overflow-wrap:anywhere;word-break:break-word;padding:10px 11px;margin:8px 0 10px;border-radius:8px;background:rgba(0,0,0,.18);border:1px solid rgba(213,227,222,.12);color:#f4f7f5;font-size:11px;line-height:1.45}.portable-key-card small{display:block;margin-top:8px;color:rgba(232,240,237,.58);font-size:11px;line-height:1.45}
.portable-room-security{position:relative;overflow:hidden;box-shadow:0 20px 52px rgba(0,0,0,.18),0 0 70px rgba(236,244,241,.035)}.portable-room-security::before{content:"";position:absolute;inset:-60px auto auto -80px;width:260px;height:180px;background:radial-gradient(circle,rgba(245,248,247,.07),transparent 68%);pointer-events:none}.portable-security-badge{font-size:9px;font-weight:700;letter-spacing:.12em;padding:5px 7px;border:1px solid rgba(196,217,209,.18);border-radius:999px;color:rgba(231,241,237,.72)}
.portable-security-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.portable-security-card{min-width:0;padding:13px;border-radius:10px;border:1px solid rgba(203,220,213,.13);background:rgba(3,25,22,.38)}.portable-security-card strong{display:block;font-size:13px;line-height:1.25}.portable-security-card p{font-size:11px;line-height:1.48;color:rgba(231,240,236,.63);margin:6px 0}.portable-security-actions,.portable-security-footer{display:flex;gap:8px;flex-wrap:wrap}.portable-security-footer{margin-top:12px;justify-content:space-between}.portable-security-note{margin:10px 0 0;font-size:10.5px;line-height:1.45;color:rgba(230,239,235,.5)}
/* Connexion : rassurante, compacte, centrée */
/* Invitation d'installation */
.bonjour-pwa-install{left:50%;right:auto;transform:translateX(-50%);width:min(560px,calc(100vw - 28px));bottom:max(14px,calc(env(safe-area-inset-bottom) + 10px));padding:0;background:transparent;box-shadow:none}
.bonjour-pwa-install-inner{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:11px 13px;align-items:center;padding:15px 16px;border-radius:16px;border:1px solid rgba(208,224,218,.18);background:linear-gradient(145deg,rgba(7,42,37,.97),rgba(4,27,24,.98));box-shadow:0 22px 62px rgba(0,0,0,.34),0 0 50px rgba(243,248,246,.04);backdrop-filter:blur(18px)}
.bonjour-pwa-install-inner>img{width:44px;height:44px;border-radius:11px}.bonjour-pwa-install-copy{min-width:0}.bonjour-pwa-install-kicker{font-size:8px;letter-spacing:.12em;color:rgba(229,239,235,.48)}.bonjour-pwa-install-copy strong{font-size:13.5px;line-height:1.25}.bonjour-pwa-install-copy small{font-size:10.5px;line-height:1.4;color:rgba(233,241,238,.58)}.bonjour-pwa-install-primary{grid-column:2/4;justify-self:start;min-height:34px;padding:0 14px;border-radius:8px;font-size:11px}.bonjour-pwa-install-close{top:9px;right:9px;width:28px;height:28px;border-radius:8px}.bonjour-pwa-ios-steps{grid-column:1/-1;margin-top:2px;padding-top:12px;border-top:1px solid rgba(214,227,222,.1)}.bonjour-pwa-ios-flow>div{border-radius:9px;background:rgba(255,255,255,.025)}
/* Bouton + fenêtre Windows */
.windows-action-icon{display:grid!important;grid-template-columns:repeat(2,8px);grid-template-rows:repeat(2,8px);gap:2px;place-content:center}.windows-action-icon i,.windows-logo i{display:block;background:currentColor;border-radius:1px}.windows-download-action{grid-column:1/-1}.windows-download-modal{width:min(650px,calc(100vw - 30px));padding:26px;border-radius:16px;border:1px solid rgba(207,224,217,.19);background:linear-gradient(145deg,rgba(7,42,37,.97),rgba(5,28,25,.985));box-shadow:0 28px 90px rgba(0,0,0,.42),0 0 90px rgba(242,247,245,.045)}.windows-download-hero{display:grid;grid-template-columns:62px 1fr;gap:18px;align-items:start}.windows-logo{width:56px;height:56px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;color:#f1f5f3;padding:9px;border-radius:14px;background:rgba(244,248,247,.06);border:1px solid rgba(224,235,231,.13)}.windows-download-hero h3{font-size:25px;margin:4px 0 7px;line-height:1.08}.windows-download-hero p{margin:0;color:rgba(236,243,240,.64);font-size:12.5px;line-height:1.52}.windows-release-strip{display:flex;gap:7px;flex-wrap:wrap;margin:19px 0 11px}.windows-release-strip span{font-size:9.5px;font-weight:600;letter-spacing:.02em;padding:6px 9px;border:1px solid rgba(207,225,218,.14);border-radius:999px;background:rgba(255,255,255,.025);color:rgba(237,244,241,.72)}.windows-release-strip .windows-free{color:#f4edd2;border-color:rgba(217,174,55,.25)}.windows-release-card{padding:14px 15px;border:1px solid rgba(207,224,218,.13);border-radius:11px;background:rgba(0,0,0,.12)}.windows-release-card strong{display:block;font-size:13px}.windows-release-card p{font-size:11.5px;line-height:1.5;color:rgba(233,241,237,.65);margin:6px 0}.windows-release-card small{font-size:10px;color:rgba(232,241,237,.44)}.windows-download-primary{display:flex;align-items:center;justify-content:center;text-decoration:none;margin-top:13px;min-height:42px;border-radius:9px;font-size:12px}.windows-download-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.windows-download-actions button{min-height:36px;font-size:11px}.windows-download-trust{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(211,226,220,.1);font-size:10.5px;line-height:1.5;color:rgba(229,239,235,.5)}.windows-download-trust strong{color:rgba(241,246,244,.76)}
/* Centrage mobile réel : marges égales, safe areas, aucune dérive latérale */
@media(max-width:720px){.home-view{display:flex!important;align-items:flex-start!important;justify-content:center!important;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}.home-card{width:min(100%,560px)!important;max-width:560px!important;margin:0 auto!important;transform:none!important}.regions-view{padding-left:max(12px,env(safe-area-inset-left))!important;padding-right:max(12px,env(safe-area-inset-right))!important}.regions-card{width:min(100%,720px)!important;margin-inline:auto!important;transform:none!important}.portable-security-grid{grid-template-columns:1fr}.regions-head-actions{width:100%;justify-content:flex-start}.regions-head-actions .compact-button{flex:1 1 auto}.portable-security-footer>*{flex:1 1 100%}.windows-download-modal{padding:21px 17px}.windows-download-hero{grid-template-columns:48px 1fr;gap:13px}.windows-logo{width:46px;height:46px;padding:8px}.windows-download-hero h3{font-size:21px}.windows-download-actions{grid-template-columns:1fr}.bonjour-pwa-install-inner{grid-template-columns:40px minmax(0,1fr);padding:14px}.bonjour-pwa-install-inner>img{width:40px;height:40px}.bonjour-pwa-install-close{grid-column:2;grid-row:1;justify-self:end;position:absolute}.bonjour-pwa-install-copy{padding-right:28px}.bonjour-pwa-install-primary{grid-column:1/-1;justify-self:stretch}.bonjour-pwa-ios-steps{grid-column:1/-1}}
@media(max-width:390px){.home-view{padding-left:max(9px,env(safe-area-inset-left))!important;padding-right:max(9px,env(safe-area-inset-right))!important}.home-card{border-radius:16px!important}.windows-download-hero{grid-template-columns:1fr}.windows-logo{width:42px;height:42px}.windows-download-hero h3{font-size:20px}}


/* 1.20.6 / 20.7.3 — Mon Bonjour : continuité multi-appareils */
.my-bonjour-action{grid-column:1/-1}.my-bonjour-modal{width:min(650px,calc(100vw - 30px));padding:25px;border-radius:15px;border:1px solid rgba(207,224,217,.18);background:linear-gradient(145deg,rgba(7,42,37,.975),rgba(5,28,25,.988));box-shadow:0 28px 88px rgba(0,0,0,.42),0 0 82px rgba(245,248,247,.05)}
.my-bonjour-head{display:grid;grid-template-columns:50px 1fr;gap:15px;align-items:start}.my-bonjour-symbol{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;border:1px solid rgba(220,231,227,.16);background:rgba(255,255,255,.035);font-size:24px;color:#eef5f2}.my-bonjour-head h3{font-size:24px;line-height:1.08;margin:4px 0 7px}.my-bonjour-head p{margin:0;color:rgba(235,243,239,.64);font-size:12.5px;line-height:1.52}.my-bonjour-trust{margin:17px 0 10px;padding:11px 13px;border-radius:10px;border:1px solid rgba(205,224,216,.13);background:rgba(255,255,255,.025)}.my-bonjour-trust strong,.my-bonjour-trust span{display:block}.my-bonjour-trust strong{font-size:11.5px}.my-bonjour-trust span{font-size:10.5px;color:rgba(232,241,237,.54);margin-top:3px;line-height:1.45}.my-bonjour-panel{padding:15px;border:1px solid rgba(207,224,217,.13);background:rgba(0,0,0,.10);border-radius:11px}.my-bonjour-panel>strong{display:block;font-size:14px;margin:4px 0 6px}.my-bonjour-panel>p{font-size:11.5px;line-height:1.5;color:rgba(232,241,237,.62);margin:0 0 12px}.my-bonjour-panel>.primary-button,.my-bonjour-panel>.secondary-button{width:100%;min-height:40px;margin-top:7px;font-size:11.5px}.my-bonjour-status-row{display:flex;justify-content:space-between;gap:16px;align-items:center}.my-bonjour-status-row strong,.my-bonjour-status-row small{display:block}.my-bonjour-status-row strong{font-size:14px;margin-top:3px}.my-bonjour-status-row small{font-size:10.5px;color:rgba(232,241,237,.52);margin-top:4px}.my-bonjour-ok{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(187,225,212,.22);background:rgba(112,190,164,.10);color:#dff5ed}.my-bonjour-key-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:13px;padding:9px 9px 9px 11px;border:1px solid rgba(220,231,227,.15);border-radius:9px;background:rgba(0,0,0,.18)}.my-bonjour-key-box span{font:600 10.5px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.03em;overflow-wrap:anywhere;color:#eef4f2}.my-bonjour-key-box button{border:1px solid rgba(222,232,228,.14);background:rgba(255,255,255,.05);color:#f2f6f4;border-radius:7px;padding:8px 10px;font-size:10px}.my-bonjour-key-warning{margin:8px 0!important;font-size:10px!important;color:rgba(239,227,193,.68)!important}.my-bonjour-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.my-bonjour-actions button{min-height:38px;font-size:11px}.my-bonjour-foot{font-size:9.5px;line-height:1.45;color:rgba(230,239,235,.42);margin:11px 2px 0}.windows-install-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:11px 0 0}.windows-install-guide>div{display:flex;gap:8px;align-items:flex-start;padding:10px;border:1px solid rgba(207,224,217,.12);border-radius:9px;background:rgba(255,255,255,.018)}.windows-install-guide i{font-style:normal;width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;border-radius:50%;background:rgba(240,245,243,.08);font-size:9px;font-weight:700}.windows-install-guide strong,.windows-install-guide small{display:block}.windows-install-guide strong{font-size:10.5px}.windows-install-guide small{font-size:9.5px;line-height:1.4;color:rgba(231,240,236,.52);margin-top:2px}
@media(max-width:620px){.my-bonjour-modal{width:calc(100vw - 22px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);overflow:auto;padding:19px 17px}.my-bonjour-head{grid-template-columns:40px 1fr;gap:12px}.my-bonjour-symbol{width:38px;height:38px;border-radius:11px;font-size:19px}.my-bonjour-head h3{font-size:21px}.my-bonjour-actions{grid-template-columns:1fr}.windows-install-guide{grid-template-columns:1fr}.home-view{align-items:flex-start!important;padding-top:max(16px,env(safe-area-inset-top))!important;padding-bottom:max(20px,env(safe-area-inset-bottom))!important}.home-card{margin-left:auto!important;margin-right:auto!important}}



/* Bonjour 20.10.4 / 20.7.4 / Bridge 1.20.6 — panneaux mobiles toujours visibles. */
@media(max-width:900px){
  html.bonjour-mobile-panel-open,body.bonjour-mobile-panel-open{overflow:hidden!important;overscroll-behavior:none!important}
  .room-view .side-panel:not(.hidden){position:fixed!important;inset:0!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;z-index:175!important;border:0!important;border-radius:0!important;padding-top:env(safe-area-inset-top)!important;padding-bottom:env(safe-area-inset-bottom)!important;box-shadow:0 0 0 9999px rgba(0,0,0,.32)!important;transform:none!important}
  .room-view .side-panel:not(.hidden) .side-tabs{position:sticky!important;top:0!important;z-index:2!important;flex:0 0 auto!important;min-height:56px!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;background:#0a1a17!important;padding-left:max(8px,env(safe-area-inset-left))!important;padding-right:max(8px,env(safe-area-inset-right))!important}
  .room-view .side-panel:not(.hidden) .panel-content{min-height:0!important;flex:1 1 auto!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
  .room-view .side-panel:not(.hidden) .panel-close{position:sticky!important;right:0!important;flex:0 0 38px!important}
  .room-view.broadcast-mode .side-panel:not(.hidden){position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}
}


/* BONJOUR 1.20.6 — finition mobile après tests réels iPhone/iPad */
.windows-action-icon{color:#f7f2e5!important;background:rgba(217,174,55,.10)!important;border-color:rgba(217,174,55,.22)!important}
.windows-action-icon i{display:block!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;background:#f7f2e5!important;border-radius:1.5px!important;opacity:1!important}
.windows-download-primary,.windows-download-primary:link,.windows-download-primary:visited,.windows-download-primary:hover,.windows-download-primary:active{color:#f7fbf9!important;-webkit-text-fill-color:#f7fbf9!important;text-decoration:none!important;background:linear-gradient(135deg,#2fa79e,#238a82)!important}
@media(max-width:720px){
  html{scroll-behavior:auto!important;scroll-padding-top:max(10px,env(safe-area-inset-top))}
  .prejoin-view,.transfer-view,.regions-view{align-items:flex-start!important;justify-content:flex-start!important;padding-bottom:max(30px,calc(env(safe-area-inset-bottom) + 18px))!important}
  .prejoin-layout,.transfer-page-shell,.regions-card{margin-top:0!important}
  .windows-release-card p{max-height:min(25dvh,210px);overflow:auto;overscroll-behavior:contain;padding-right:4px}
  .windows-download-modal{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px)!important;overflow:auto!important;overscroll-behavior:contain}
  .windows-download-primary{min-height:48px!important;font-size:13px!important;font-weight:700!important}
  .product-meta{padding-bottom:max(4px,env(safe-area-inset-bottom))}
}


/* BONJOUR BRIDGE 1.20.9 — correction navigation mobile.
   Certaines règles responsives forçaient .home-view en display:flex!important
   après la règle .hidden. Sur iPhone/iPad, l’accueil restait donc visible
   et les vues Salons / Réunion / Transfert / Rejoindre se plaçaient dessous.
   Une vue marquée hidden doit toujours rester masquée, quel que soit son layout. */
body[data-bonjour-pwa="1"] .view.hidden,
body[data-bonjour-pwa="1"] section.view.hidden {
  display:none!important;
}


/* BONJOUR 1.20.10 — ÉTALON MOBILE + ACCÈS COMMUNAUTÉS
 * La fenêtre "Bonjour pour Windows" devient l'étalon de présentation des pages mobiles.
 * Les vues de page conservent leur logique métier mais partagent désormais la même coque.
 */
.bonjour-page-close{display:none}
.room-code-help{display:block;margin-top:7px!important;color:rgba(232,241,237,.50)!important;font-size:10.5px!important;line-height:1.4!important}
@media(max-width:720px){
  .bonjour-mobile-page-shell{position:relative!important;border-radius:18px!important;border:1px solid rgba(207,224,217,.19)!important;background:linear-gradient(145deg,rgba(7,42,37,.97),rgba(5,28,25,.985))!important;box-shadow:0 28px 90px rgba(0,0,0,.42),0 0 90px rgba(242,247,245,.045)!important}
  .bonjour-page-close{display:grid!important;position:absolute!important;top:17px!important;right:16px!important;z-index:12!important;width:44px!important;height:44px!important;place-items:center!important;margin:0!important;border-radius:12px!important;font-size:27px!important;line-height:1!important}
  .regions-card.bonjour-mobile-page-shell{padding:22px 18px 20px!important}
  .regions-page-head{padding-right:56px!important;gap:14px!important;align-items:start!important}
  .regions-page-head>div:nth-child(2){min-width:0!important}
  .regions-page-head h2{font-size:30px!important;line-height:1.05!important;margin:7px 0 0!important;letter-spacing:-.03em!important}
  .regions-page-head .quiet-link{margin:4px 0 12px!important}
  .regions-help{font-size:14px!important;line-height:1.5!important;margin-top:10px!important}
  .regions-head-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:4px!important}
  #addPermanentRoomKeyBtn:not(.hidden),#createPermanentRoomBtn:not(.hidden){display:flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;margin:0!important}
  #addPermanentRoomKeyBtn.hidden,#createPermanentRoomBtn.hidden{display:none!important}
  .region-row-wrap{border-radius:13px!important}
  .region-actions{gap:8px!important}
  .region-actions button{min-height:45px!important;border-radius:11px!important}

  .prejoin-view{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}
  .join-card.bonjour-mobile-page-shell{padding:22px 18px 22px!important;padding-top:22px!important}
  .join-card .bonjour-page-close{top:16px!important;right:16px!important}
  .join-card>#backHomeBtn{margin:3px 58px 17px 0!important;min-height:34px!important;display:inline-flex!important;align-items:center!important}
  .join-card .eyebrow{display:block!important;margin-right:54px!important}
  .join-card h2{font-size:30px!important;line-height:1.08!important;margin:7px 54px 18px 0!important}
  .join-card label,.join-card .field-label{font-size:13px!important}
  .join-card input,.join-card select,.join-card textarea{min-height:54px!important;border-radius:12px!important}

  .transfer-page-shell{padding-top:0!important}
  .transfer-main-card.bonjour-mobile-page-shell{padding:23px 18px 22px!important;padding-top:66px!important;border-radius:18px!important}
  .transfer-main-card .bonjour-page-close{top:16px!important;right:16px!important}
  .transfer-back{margin:0 0 9px 5px!important;min-height:34px!important;display:inline-flex!important;align-items:center!important}
  .transfer-brand-row{padding-right:0!important;align-items:center!important}
  .transfer-main-card>h2{font-size:32px!important;line-height:1.06!important;letter-spacing:-.035em!important;margin:19px 0 13px!important}
  .transfer-lead{font-size:14px!important;line-height:1.52!important}

  .room-key-modal,.create-permanent-modal,.schedule-meeting-modal,.contribution-modal,.windows-download-modal,.my-bonjour-modal{border-radius:18px!important;border-color:rgba(207,224,217,.19)!important;background:linear-gradient(145deg,rgba(7,42,37,.97),rgba(5,28,25,.985))!important;box-shadow:0 28px 90px rgba(0,0,0,.42),0 0 90px rgba(242,247,245,.045)!important}
  .modal-head{gap:14px!important;align-items:flex-start!important}
  .modal-head>div{min-width:0!important;padding-right:8px!important}
  .modal-close{flex:0 0 auto!important}
  .modal-subtitle{font-size:14px!important;line-height:1.52!important}
  .settings-label input,.settings-label select,.settings-label textarea{border-radius:12px!important}
}
@media(max-width:420px){
  .regions-head-actions{grid-template-columns:1fr!important}
  .bonjour-page-close{width:42px!important;height:42px!important;top:14px!important;right:14px!important}
  .join-card h2{font-size:28px!important}
  .transfer-main-card>h2{font-size:30px!important}
}


/* BONJOUR BRIDGE 1.20.11 — HARMONISATION WEB MOBILE + TABLETTE
   Référence visuelle : fenêtre « Bonjour pour Windows ».
   Objectifs : une seule sortie (croix), même largeur visuelle, même échelle
   typographique, mêmes marges et aucun bloc annexe flottant au-dessus des pages. */
@media (max-width:1024px){
  :root{
    --bonjour-web-shell-max:680px;
    --bonjour-web-shell-pad-x:20px;
    --bonjour-web-shell-pad-y:22px;
    --bonjour-web-title:clamp(24px,4.2vw,28px);
    --bonjour-web-body:clamp(13px,2.25vw,14.5px);
    --bonjour-web-radius:20px;
    --bonjour-web-close:44px;
  }

  /* Une seule navigation de sortie : la croix. */
  /* 1.20.41 : ancienne règle de masquage supprimée — le Retour canonique reste visible. */

  /* Les écrans Créer / Rejoindre ne doivent plus être précédés d'une seconde carte. */
  .prejoin-layout .preview-card{display:none!important}

  /* Coque commune aux pages de navigation. */
  .regions-view,.prejoin-view,.transfer-view{
    padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  .prejoin-layout,.transfer-page-shell{
    display:block!important;
    width:min(var(--bonjour-web-shell-max),calc(100vw - 28px))!important;
    max-width:var(--bonjour-web-shell-max)!important;
    margin:0 auto!important;
  }
  .regions-card.bonjour-mobile-page-shell,
  .join-card.bonjour-mobile-page-shell,
  .transfer-main-card.bonjour-mobile-page-shell{
    box-sizing:border-box!important;
    width:min(var(--bonjour-web-shell-max),calc(100vw - 28px))!important;
    max-width:var(--bonjour-web-shell-max)!important;
    min-height:0!important;
    margin:0 auto!important;
    padding:var(--bonjour-web-shell-pad-y) var(--bonjour-web-shell-pad-x) 24px!important;
    border-radius:var(--bonjour-web-radius)!important;
    border:1px solid rgba(207,224,217,.19)!important;
    background:linear-gradient(145deg,rgba(7,42,37,.97),rgba(5,28,25,.985))!important;
    box-shadow:0 28px 90px rgba(0,0,0,.42),0 0 90px rgba(242,247,245,.045)!important;
  }

  /* Croix unique : mêmes dimensions et même position partout. */
  .bonjour-page-close,
  .modal-close,
  .modal-corner{
    width:var(--bonjour-web-close)!important;
    height:var(--bonjour-web-close)!important;
    min-width:var(--bonjour-web-close)!important;
    min-height:var(--bonjour-web-close)!important;
    border-radius:12px!important;
    border:1px solid rgba(207,224,217,.16)!important;
    background:rgba(12,43,37,.78)!important;
    color:#eef5f2!important;
    font-size:27px!important;
    line-height:1!important;
    display:grid!important;
    place-items:center!important;
  }
  .bonjour-page-close{top:18px!important;right:18px!important}
  .modal-corner{top:18px!important;right:18px!important}

  /* Salons permanents : titre pleine largeur, actions sous le titre. */
  .regions-page-head{
    display:block!important;
    padding:3px 58px 0 0!important;
    margin:0!important;
  }
  .regions-page-head>div:nth-child(2){min-width:0!important}
  .regions-page-head .eyebrow{display:block!important;margin:0 0 7px!important}
  .regions-page-head h2{
    max-width:100%!important;
    margin:0!important;
    font-size:var(--bonjour-web-title)!important;
    line-height:1.08!important;
    letter-spacing:-.028em!important;
  }
  .regions-head-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
    margin:20px 0 0!important;
  }
  #addPermanentRoomKeyBtn:not(.hidden),#createPermanentRoomBtn:not(.hidden){
    display:flex!important;align-items:center!important;justify-content:center!important;
    width:100%!important;min-height:46px!important;margin:0!important;border-radius:11px!important;
  }
  .regions-help{
    margin:18px 0 20px!important;
    font-size:var(--bonjour-web-body)!important;
    line-height:1.5!important;
  }
  .regions-list{gap:10px!important}
  .region-row-wrap{border-radius:13px!important}
  .region-actions{gap:8px!important}
  .region-actions button{min-height:46px!important;border-radius:11px!important}

  /* Créer / Rejoindre : même gabarit, aucun second panneau au-dessus. */
  .join-card.bonjour-mobile-page-shell{padding-top:24px!important}
  .join-card .eyebrow{display:block!important;margin:2px 58px 7px 0!important}
  .join-card h2{
    margin:0 58px 22px 0!important;
    font-size:var(--bonjour-web-title)!important;
    line-height:1.08!important;
    letter-spacing:-.028em!important;
  }
  .join-card label,.join-card .field-label{font-size:13px!important;line-height:1.4!important;margin-top:15px!important}
  .join-card input,.join-card select,.join-card textarea{
    min-height:50px!important;
    border-radius:11px!important;
    padding:13px 14px!important;
    font-size:15px!important;
  }
  .avatar-choice-wrap{margin-top:14px!important}

  /* Transfert : même coque, sans Retour extérieur. */
  .transfer-main-card.bonjour-mobile-page-shell{padding:70px var(--bonjour-web-shell-pad-x) 24px!important}
  .transfer-brand-row{padding-right:0!important;gap:9px!important;align-items:center!important}
  .transfer-main-card>h2{
    margin:18px 0 14px!important;
    font-size:var(--bonjour-web-title)!important;
    line-height:1.08!important;
    letter-spacing:-.03em!important;
  }
  .transfer-lead{font-size:var(--bonjour-web-body)!important;line-height:1.52!important}
  .transfer-name-field{margin-top:18px!important}
  .transfer-drop-zone{border-radius:13px!important}

  /* Fenêtres : même largeur, même hauteur disponible, même respiration. */
  .room-key-modal,.create-permanent-modal,.schedule-meeting-modal,
  .contribution-modal,.windows-download-modal,.my-bonjour-modal{
    box-sizing:border-box!important;
    width:min(var(--bonjour-web-shell-max),calc(100vw - 28px))!important;
    max-width:var(--bonjour-web-shell-max)!important;
    max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
    padding:var(--bonjour-web-shell-pad-y) var(--bonjour-web-shell-pad-x) 24px!important;
    border-radius:var(--bonjour-web-radius)!important;
  }
  .modal-head{align-items:flex-start!important;gap:14px!important;margin:0!important}
  .modal-head>div{min-width:0!important;padding-right:8px!important}
  .modal-head .eyebrow{display:block!important;margin:1px 0 7px!important}
  .modal-head h3,
  .windows-download-hero h3,
  .my-bonjour-head h3{
    margin:0!important;
    font-size:var(--bonjour-web-title)!important;
    line-height:1.08!important;
    letter-spacing:-.028em!important;
  }
  .modal-subtitle,.windows-download-hero p,.my-bonjour-head p{
    font-size:var(--bonjour-web-body)!important;
    line-height:1.5!important;
  }

  /* Formulaires longs : une colonne, même hauteur de champ. */
  .schedule-grid,.contribution-layout,.contribution-name-grid{grid-template-columns:1fr!important}
  .schedule-meeting-form{gap:10px!important}
  .settings-label input,.settings-label select,.settings-label textarea,
  .contribution-idea-card input,.contribution-idea-card select,.contribution-idea-card textarea{
    border-radius:11px!important;
    font-size:14px!important;
  }
  .settings-label input,.settings-label select,
  .contribution-idea-card input,.contribution-idea-card select{min-height:50px!important}
  .contribution-modal{padding:var(--bonjour-web-shell-pad-y) var(--bonjour-web-shell-pad-x) 24px!important}
  .contribution-idea-card,.contribution-support-card{border-radius:13px!important;padding:16px!important}
  .contribution-support-card{min-height:0!important}

  /* Windows et Mon Bonjour restent la référence mais adoptent exactement la même coque. */
  .windows-download-hero{grid-template-columns:48px minmax(0,1fr)!important;gap:14px!important;padding-right:56px!important}
  .windows-logo{width:46px!important;height:46px!important;padding:8px!important;border-radius:12px!important}
  .my-bonjour-head{grid-template-columns:42px minmax(0,1fr)!important;gap:13px!important;padding-right:56px!important}
  .my-bonjour-symbol{width:40px!important;height:40px!important;border-radius:11px!important}
  .my-bonjour-trust,.my-bonjour-panel{border-radius:12px!important}

  /* Le fond des modales garde une marge visuelle constante sur téléphone/tablette. */
  .modal-backdrop{
    padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;
  }
}

@media(max-width:480px){
  :root{--bonjour-web-shell-pad-x:17px;--bonjour-web-shell-pad-y:19px;--bonjour-web-close:42px}
  .regions-card.bonjour-mobile-page-shell,
  .join-card.bonjour-mobile-page-shell,
  .transfer-main-card.bonjour-mobile-page-shell,
  .room-key-modal,.create-permanent-modal,.schedule-meeting-modal,
  .contribution-modal,.windows-download-modal,.my-bonjour-modal{
    width:calc(100vw - 22px)!important;
  }
  .bonjour-page-close{top:14px!important;right:14px!important}
  .modal-corner{top:14px!important;right:14px!important}
  .regions-page-head{padding-right:52px!important}
  .join-card .eyebrow{margin-right:52px!important}
  .join-card h2{margin-right:52px!important}
  .transfer-main-card.bonjour-mobile-page-shell{padding-top:64px!important}
  .windows-download-hero,.my-bonjour-head{padding-right:50px!important}
}


/* BONJOUR BRIDGE 1.20.12 — PREMIÈRE SÉRIE DE FINITION WEB MOBILE + TABLETTE
   Ajustements strictement visuels demandés : salons, créer/rejoindre, date, transfert. */
@media (max-width:1024px){
  /* Créer / Rejoindre : la croix est l'unique sortie et le titre remonte réellement. */
  /* 1.20.41 : ancienne règle de masquage supprimée — le Retour canonique reste visible. */
  .prejoin-view .join-card.bonjour-mobile-page-shell{padding-top:22px!important}
  .prejoin-view .join-card .eyebrow{margin:2px 58px 7px 0!important}
  .prejoin-view .join-card h2{margin:0 58px 8px 0!important}
  .bonjour-page-intro{
    margin:0 58px 20px 0!important;
    color:rgba(231,241,237,.68)!important;
    font-size:var(--bonjour-web-body)!important;
    line-height:1.55!important;
  }

  /* Salons permanents : plus humain, actions concrètes en vert, lecture immédiate de la présence. */
  .regions-help{color:rgba(231,241,237,.70)!important;max-width:100%!important}
  #addPermanentRoomKeyBtn:not(.hidden),#createPermanentRoomBtn:not(.hidden){
    display:flex!important;width:100%!important;min-height:48px!important;
    background:var(--accent)!important;border-color:rgba(91,196,184,.28)!important;
    color:#fff!important;font-weight:600!important;box-shadow:none!important;
  }
  #addPermanentRoomKeyBtn:hover,#createPermanentRoomBtn:hover{background:var(--accent-hover)!important}
  .region-row{width:100%!important;min-height:78px!important}
  .region-main-copy{display:block!important;min-width:0!important;flex:1 1 auto!important}
  .region-hours{margin-top:4px!important}
  .region-community-meta{display:flex!important;align-items:center!important;gap:9px!important;flex-wrap:wrap!important;margin-top:8px!important;color:rgba(225,237,232,.64)!important;font-size:11px!important}
  .region-member-count{display:inline-flex!important;align-items:center!important}
  .region-live-state{display:inline-flex!important;align-items:center!important;gap:6px!important}
  .region-live-state i{display:block!important;width:7px!important;height:7px!important;border-radius:50%!important;background:#6f817b!important;box-shadow:0 0 0 3px rgba(111,129,123,.10)!important}
  .region-live-state.online i{background:var(--success)!important;box-shadow:0 0 0 3px rgba(87,197,150,.13)!important}
  .region-admin-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;margin-top:9px!important}
  .region-share,.region-manage{min-height:46px!important;background:var(--accent)!important;border-color:rgba(91,196,184,.24)!important;color:#fff!important;font-weight:600!important}
  .region-share:hover,.region-manage:hover{background:var(--accent-hover)!important}

  /* Transfert : en-tête aligné sur les autres pages et charte de boutons/icone cohérente. */
  .transfer-main-card.bonjour-mobile-page-shell{padding-top:22px!important}
  .transfer-brand-row{padding-right:58px!important;margin:2px 0 0!important;display:block!important}
  .transfer-main-card>h2{margin:8px 58px 11px 0!important;font-size:var(--bonjour-web-title)!important;line-height:1.08!important;letter-spacing:-.028em!important}
  .transfer-lead{margin:0 0 12px!important;color:rgba(231,241,237,.68)!important;font-size:var(--bonjour-web-body)!important;line-height:1.55!important}
  .transfer-privacy-row{display:flex!important;justify-content:flex-start!important;margin:0 0 18px!important}
  .transfer-no-storage{font-size:10px!important;padding:5px 8px!important;letter-spacing:.055em!important}
  .transfer-drop-zone{min-height:142px!important;gap:5px!important;border-radius:13px!important}
  .transfer-drop-icon{width:42px!important;height:42px!important;font-size:23px!important;background:var(--accent)!important;color:#fff!important;box-shadow:none!important}
  .transfer-drop-zone strong{font-size:16px!important;line-height:1.2!important}
  .transfer-drop-zone small{font-size:13px!important}
  .transfer-primary{min-height:48px!important;background:var(--accent)!important;color:#fff!important;border:0!important;box-shadow:none!important}
  .transfer-primary:hover:not(:disabled){background:var(--accent-hover)!important;filter:none!important}
  .transfer-limits{margin-top:13px!important;gap:5px!important;font-size:10.5px!important;line-height:1.45!important}
}
@media(max-width:480px){
  .bonjour-page-intro{margin-right:52px!important}
  .transfer-brand-row{padding-right:52px!important}
  .transfer-main-card>h2{margin-right:52px!important}
}


/* BONJOUR BRIDGE 1.20.15 — FINITION SCÈNE + ACCUEIL WINDOWS
   Halo sombre discret sur la scène vidéo, texte réunion plus universel,
   icône Windows or et légèrement plus petite. */
.video-grid{
  position:relative;
  isolation:isolate;
}
.video-grid::before{
  content:"";
  position:absolute;
  inset:-8px;
  z-index:0;
  pointer-events:none;
  border-radius:24px;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.06) 42%,rgba(0,0,0,.24) 76%,rgba(0,0,0,.34) 100%);
  box-shadow:0 16px 46px rgba(0,0,0,.26),0 0 30px rgba(0,0,0,.18);
}
.video-grid>.video-tile,.video-grid>.empty-stage{
  position:relative;
  z-index:1;
}
.windows-action-icon{
  width:35px!important;
  height:35px!important;
  grid-template-columns:repeat(2,6px)!important;
  grid-template-rows:repeat(2,6px)!important;
  gap:2px!important;
  color:#f0d77b!important;
  background:rgba(217,174,55,.075)!important;
  border-color:rgba(217,174,55,.16)!important;
}
.windows-action-icon i{
  width:6px!important;
  height:6px!important;
  min-width:6px!important;
  min-height:6px!important;
  background:#f0d77b!important;
}
@media(max-width:560px){
  .video-grid::before{inset:-6px;border-radius:20px;box-shadow:0 12px 34px rgba(0,0,0,.24),0 0 22px rgba(0,0,0,.16)}
  .windows-action-icon{width:34px!important;height:34px!important}
}


/* BONJOUR BRIDGE 1.20.16 — ÉQUILIBRE TABLETTE PAYSAGE
   Cible : Web App tactile 1025–1366 px (iPad Pro paysage compris).
   Le mobile <=1024 px, déjà validé, reste inchangé. */
@media (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
  body[data-bonjour-pwa="1"]{
    --bonjour-tablet-shell:760px;
    --bonjour-tablet-wide:1120px;
    --bonjour-tablet-radius:22px;
    --bonjour-tablet-close:46px;
    --bonjour-tablet-title:30px;
    --bonjour-tablet-body:15px;
  }

  /* Une seule sortie, comme sur mobile : la croix. */
  /* 1.20.41 : ancienne règle de masquage supprimée — le Retour canonique reste visible. */
  body[data-bonjour-pwa="1"] .bonjour-page-close{
    display:grid!important;place-items:center!important;position:absolute!important;
    top:22px!important;right:22px!important;z-index:20!important;
    width:var(--bonjour-tablet-close)!important;height:var(--bonjour-tablet-close)!important;
    min-width:var(--bonjour-tablet-close)!important;min-height:var(--bonjour-tablet-close)!important;
    border-radius:13px!important;border:1px solid rgba(207,224,217,.17)!important;
    background:rgba(10,42,36,.82)!important;color:#f3f7f5!important;
    font-size:29px!important;line-height:1!important;
    box-shadow:0 10px 28px rgba(0,0,0,.16)!important;
  }

  /* SALONS : véritable carte tablette, chaleureuse, lisible et utile. */
  body[data-bonjour-pwa="1"] .regions-view{
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    padding:56px 6.5vw!important;
  }
  body[data-bonjour-pwa="1"] .regions-card.bonjour-mobile-page-shell{
    position:relative!important;width:min(860px,72vw)!important;max-width:860px!important;
    min-height:0!important;margin:0!important;padding:30px!important;
    border-radius:var(--bonjour-tablet-radius)!important;
    background:linear-gradient(145deg,rgba(7,42,37,.965),rgba(5,28,25,.985))!important;
    border:1px solid rgba(207,224,217,.18)!important;
    box-shadow:0 30px 90px rgba(0,0,0,.38)!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head{
    display:block!important;margin:0!important;padding:0 66px 0 0!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head .eyebrow{margin:0 0 7px!important;display:block!important}
  body[data-bonjour-pwa="1"] .regions-page-head h2{
    margin:0!important;font-size:var(--bonjour-tablet-title)!important;line-height:1.08!important;
    letter-spacing:-.03em!important;
  }
  body[data-bonjour-pwa="1"] .regions-head-actions{
    display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;
    width:100%!important;margin:20px 0 0!important;
  }
  body[data-bonjour-pwa="1"] #addPermanentRoomKeyBtn:not(.hidden),
  body[data-bonjour-pwa="1"] #createPermanentRoomBtn:not(.hidden){
    display:flex!important;align-items:center!important;justify-content:center!important;
    width:100%!important;min-height:50px!important;margin:0!important;
    background:var(--accent)!important;color:#fff!important;border:0!important;border-radius:12px!important;
    font-weight:600!important;box-shadow:none!important;
  }
  body[data-bonjour-pwa="1"] .regions-help{
    margin:18px 0 22px!important;max-width:720px!important;
    color:rgba(231,241,237,.72)!important;font-size:15px!important;line-height:1.55!important;
  }
  body[data-bonjour-pwa="1"] .regions-list{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  body[data-bonjour-pwa="1"] .region-row-wrap{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;align-items:stretch!important;
  }
  body[data-bonjour-pwa="1"] .region-row{min-height:94px!important;padding:18px 20px!important;border-radius:14px!important}
  body[data-bonjour-pwa="1"] .region-main-copy strong{font-size:17px!important}
  body[data-bonjour-pwa="1"] .region-community-meta{display:flex!important;gap:12px!important;margin-top:9px!important;font-size:12px!important}
  body[data-bonjour-pwa="1"] .region-live-state{display:inline-flex!important;align-items:center!important;gap:6px!important}
  body[data-bonjour-pwa="1"] .region-live-state i{display:block!important;width:7px!important;height:7px!important;border-radius:50%!important;background:#788882!important}
  body[data-bonjour-pwa="1"] .region-live-state.online i{background:var(--success)!important;box-shadow:0 0 0 3px rgba(87,197,150,.13)!important}
  body[data-bonjour-pwa="1"] .region-admin-actions{display:grid!important;grid-template-columns:116px 116px!important;gap:10px!important;margin:0!important}
  body[data-bonjour-pwa="1"] .region-share,
  body[data-bonjour-pwa="1"] .region-manage{
    min-height:100%!important;background:var(--accent)!important;color:#fff!important;border:0!important;border-radius:13px!important;font-weight:600!important;
  }

  /* CRÉER / REJOINDRE : scène présente mais contenue, formulaire au même niveau visuel. */
  body[data-bonjour-pwa="1"] .prejoin-view{
    display:flex!important;align-items:center!important;justify-content:center!important;
    padding:42px 46px!important;
  }
  body[data-bonjour-pwa="1"] .prejoin-layout{
    width:min(var(--bonjour-tablet-wide),calc(100vw - 92px))!important;max-width:var(--bonjour-tablet-wide)!important;
    display:grid!important;grid-template-columns:minmax(0,.95fr) minmax(440px,.9fr)!important;
    gap:24px!important;align-items:center!important;margin:0 auto!important;
  }
  body[data-bonjour-pwa="1"] .preview-card{
    display:grid!important;min-height:0!important;height:auto!important;aspect-ratio:4/3!important;
    max-height:72dvh!important;border-radius:22px!important;overflow:hidden!important;
    border:1px solid rgba(216,174,55,.16)!important;
    background:radial-gradient(circle at 50% 46%,rgba(14,55,47,.64),rgba(3,12,10,.96) 72%)!important;
    box-shadow:0 26px 80px rgba(0,0,0,.38),0 0 48px rgba(0,0,0,.22)!important;
  }
  body[data-bonjour-pwa="1"] .preview-card video{
    display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;
    background:transparent!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell{
    position:relative!important;align-self:center!important;width:100%!important;max-width:none!important;
    max-height:82dvh!important;overflow:auto!important;overscroll-behavior:contain!important;
    padding:28px 28px 30px!important;border-radius:22px!important;
    background:linear-gradient(145deg,rgba(7,42,37,.97),rgba(5,28,25,.985))!important;
    border:1px solid rgba(207,224,217,.18)!important;
    box-shadow:0 28px 86px rgba(0,0,0,.36)!important;
  }
  body[data-bonjour-pwa="1"] .join-card .eyebrow{display:block!important;margin:0 64px 7px 0!important}
  body[data-bonjour-pwa="1"] .join-card h2{
    margin:0 64px 9px 0!important;font-size:30px!important;line-height:1.08!important;letter-spacing:-.03em!important;
  }
  body[data-bonjour-pwa="1"] .bonjour-page-intro{
    margin:0 64px 20px 0!important;color:rgba(231,241,237,.73)!important;font-size:15px!important;line-height:1.5!important;
  }
  body[data-bonjour-pwa="1"] .identity-fields{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  body[data-bonjour-pwa="1"] .identity-first,
  body[data-bonjour-pwa="1"] .identity-city{grid-column:auto!important}
  body[data-bonjour-pwa="1"] .join-card label,
  body[data-bonjour-pwa="1"] .join-card .field-label{font-size:13px!important;margin-top:14px!important}
  body[data-bonjour-pwa="1"] .join-card input,
  body[data-bonjour-pwa="1"] .join-card select,
  body[data-bonjour-pwa="1"] .join-card textarea{min-height:48px!important;padding:12px 14px!important;font-size:14px!important;border-radius:11px!important}
  body[data-bonjour-pwa="1"] .avatar-choice{width:30px!important;height:30px!important}
  body[data-bonjour-pwa="1"] .photo-upload-button{min-height:40px!important;padding:0 14px!important}

  /* PROGRAMMER : garder la composition desktop, mais ramener la date à l'échelle normale. */
  body[data-bonjour-pwa="1"] .schedule-meeting-modal{
    width:min(820px,calc(100vw - 96px))!important;max-width:820px!important;max-height:86dvh!important;
    padding:28px!important;border-radius:22px!important;overflow:auto!important;
  }
  body[data-bonjour-pwa="1"] #scheduleStart,
  body[data-bonjour-pwa="1"] #scheduleStart::-webkit-date-and-time-value,
  body[data-bonjour-pwa="1"] #scheduleStart::-webkit-datetime-edit,
  body[data-bonjour-pwa="1"] #scheduleStart::-webkit-datetime-edit-fields-wrapper{
    font-size:16px!important;font-weight:500!important;line-height:1.15!important;letter-spacing:-.01em!important;
  }

  /* TRANSFERT : carte tablette autonome, sans Retour extérieur. */
  body[data-bonjour-pwa="1"] .transfer-view{
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    padding:50px 6.5vw!important;
  }
  body[data-bonjour-pwa="1"] .transfer-page-shell{width:min(760px,60vw)!important;max-width:760px!important;margin:0!important;padding:0!important}
  body[data-bonjour-pwa="1"] .transfer-main-card.bonjour-mobile-page-shell{
    position:relative!important;width:100%!important;max-width:none!important;max-height:86dvh!important;
    overflow:auto!important;overscroll-behavior:contain!important;padding:30px!important;border-radius:22px!important;
    background:linear-gradient(145deg,rgba(7,42,37,.97),rgba(5,28,25,.985))!important;
    border:1px solid rgba(207,224,217,.18)!important;box-shadow:0 28px 86px rgba(0,0,0,.36)!important;
  }
  body[data-bonjour-pwa="1"] .transfer-brand-row{padding-right:66px!important;margin:0!important}
  body[data-bonjour-pwa="1"] .transfer-main-card>h2{
    margin:9px 66px 12px 0!important;font-size:30px!important;line-height:1.08!important;letter-spacing:-.03em!important;
  }
  body[data-bonjour-pwa="1"] .transfer-lead{font-size:14px!important;line-height:1.5!important;margin:0 0 13px!important}
  body[data-bonjour-pwa="1"] .transfer-privacy-row{margin:0 0 18px!important}
  body[data-bonjour-pwa="1"] .transfer-drop-zone{min-height:138px!important;border-radius:13px!important}
  body[data-bonjour-pwa="1"] .transfer-drop-icon{width:42px!important;height:42px!important;font-size:23px!important;background:var(--accent)!important;color:#fff!important;box-shadow:none!important}
  body[data-bonjour-pwa="1"] .transfer-drop-zone strong{font-size:17px!important}
  body[data-bonjour-pwa="1"] .transfer-primary{min-height:48px!important;background:var(--accent)!important;color:#fff!important;box-shadow:none!important}

  /* CONTRIBUER : conserver la belle disposition en deux colonnes, avec une échelle cohérente. */
  body[data-bonjour-pwa="1"] .contribution-modal{
    width:min(980px,calc(100vw - 96px))!important;max-width:980px!important;max-height:86dvh!important;
    padding:26px!important;border-radius:22px!important;overflow:auto!important;
  }
  body[data-bonjour-pwa="1"] .contribution-layout{grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr)!important;gap:16px!important}
  body[data-bonjour-pwa="1"] .contribution-name-grid{grid-template-columns:1fr 1fr!important}

  /* MON BONJOUR : ne plus sembler perdu au milieu de l'iPad. */
  body[data-bonjour-pwa="1"] .my-bonjour-modal{
    width:min(760px,calc(100vw - 96px))!important;max-width:760px!important;
    padding:28px!important;border-radius:22px!important;
  }

  /* WINDOWS : fenêtre plus équilibrée et notes de version consultables sans avaler l'écran. */
  body[data-bonjour-pwa="1"] .windows-download-modal{
    width:min(780px,calc(100vw - 96px))!important;max-width:780px!important;max-height:88dvh!important;
    padding:26px!important;border-radius:22px!important;overflow:auto!important;overscroll-behavior:contain!important;
  }
  body[data-bonjour-pwa="1"] .windows-release-card p{
    max-height:240px!important;overflow:auto!important;overscroll-behavior:contain!important;padding-right:7px!important;
  }
  body[data-bonjour-pwa="1"] .windows-download-primary{min-height:48px!important}

  /* Toutes les modales utilisent le même espace autour d'elles sur tablette paysage. */
  body[data-bonjour-pwa="1"] .modal-backdrop{padding:38px 48px!important}
}

/* BONJOUR BRIDGE 1.20.17 — CALIBRAGE TABLETTE AU NIVEAU DES ÉCRANS RÉFÉRENCE
   Accueil / Windows / Mon Bonjour / Contribuer restent les références visuelles.
   Cette passe réduit uniquement Salons permanents et Créer/Rejoindre sur iPad paysage. */
@media (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
  body[data-bonjour-pwa="1"]{
    --bonjour-ref-close:40px;
    --bonjour-ref-title:24px;
    --bonjour-ref-body:12.5px;
    --bonjour-ref-control:40px;
  }

  /* Fermeture identique aux écrans de référence. */
  body[data-bonjour-pwa="1"] .regions-card .bonjour-page-close,
  body[data-bonjour-pwa="1"] .join-card .bonjour-page-close{
    top:18px!important;right:18px!important;
    width:var(--bonjour-ref-close)!important;height:var(--bonjour-ref-close)!important;
    min-width:var(--bonjour-ref-close)!important;min-height:var(--bonjour-ref-close)!important;
    border-radius:11px!important;font-size:25px!important;
    box-shadow:0 8px 22px rgba(0,0,0,.14)!important;
  }

  /* SALONS PERMANENTS — compact comme l'accueil, sans boutons surdimensionnés. */
  body[data-bonjour-pwa="1"] .regions-view{
    padding:46px 6.5vw!important;
  }
  body[data-bonjour-pwa="1"] .regions-card.bonjour-mobile-page-shell{
    width:min(700px,58vw)!important;max-width:700px!important;
    padding:22px 22px 21px!important;border-radius:18px!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head{padding-right:52px!important}
  body[data-bonjour-pwa="1"] .regions-page-head .eyebrow{
    margin-bottom:5px!important;font-size:9px!important;letter-spacing:.13em!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head h2{
    font-size:var(--bonjour-ref-title)!important;line-height:1.08!important;margin:0!important;
  }
  body[data-bonjour-pwa="1"] .regions-head-actions{
    gap:8px!important;margin:16px 0 0!important;
  }
  body[data-bonjour-pwa="1"] #addPermanentRoomKeyBtn:not(.hidden),
  body[data-bonjour-pwa="1"] #createPermanentRoomBtn:not(.hidden){
    min-height:42px!important;border-radius:9px!important;
    padding:0 12px!important;font-size:11.5px!important;font-weight:600!important;
  }
  body[data-bonjour-pwa="1"] .regions-help{
    margin:14px 0 16px!important;max-width:620px!important;
    font-size:12.5px!important;line-height:1.48!important;
  }
  body[data-bonjour-pwa="1"] .regions-list{gap:8px!important}
  body[data-bonjour-pwa="1"] .region-row-wrap{
    grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;
  }
  body[data-bonjour-pwa="1"] .region-row{
    min-height:76px!important;padding:13px 14px!important;border-radius:10px!important;
  }
  body[data-bonjour-pwa="1"] .region-main-copy strong{
    font-size:14px!important;line-height:1.2!important;
  }
  body[data-bonjour-pwa="1"] .region-row small{font-size:10px!important}
  body[data-bonjour-pwa="1"] .region-community-meta{
    gap:9px!important;margin-top:6px!important;font-size:10px!important;
  }
  body[data-bonjour-pwa="1"] .region-live-state{gap:5px!important}
  body[data-bonjour-pwa="1"] .region-live-state i{width:6px!important;height:6px!important}
  body[data-bonjour-pwa="1"] .region-admin-actions{
    grid-template-columns:88px 88px!important;gap:8px!important;
  }
  body[data-bonjour-pwa="1"] .region-share,
  body[data-bonjour-pwa="1"] .region-manage{
    min-height:76px!important;border-radius:10px!important;
    padding:0 10px!important;font-size:13px!important;font-weight:600!important;
  }

  /* CRÉER / REJOINDRE — deux panneaux de logiciel, pas deux grandes landing pages. */
  body[data-bonjour-pwa="1"] .prejoin-view{
    padding:38px 52px!important;
  }
  body[data-bonjour-pwa="1"] .prejoin-layout{
    width:min(920px,calc(100vw - 104px))!important;max-width:920px!important;
    grid-template-columns:minmax(0,500px) minmax(0,392px)!important;
    gap:18px!important;align-items:center!important;
  }
  body[data-bonjour-pwa="1"] .preview-card{
    width:100%!important;aspect-ratio:4/3!important;max-height:62dvh!important;
    border-radius:18px!important;box-shadow:0 22px 64px rgba(0,0,0,.34),0 0 34px rgba(0,0,0,.18)!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell{
    max-height:78dvh!important;padding:20px 20px 21px!important;border-radius:18px!important;
    box-shadow:0 22px 64px rgba(0,0,0,.32)!important;
  }
  body[data-bonjour-pwa="1"] .join-card .eyebrow{
    margin:0 52px 5px 0!important;font-size:9px!important;letter-spacing:.13em!important;
  }
  body[data-bonjour-pwa="1"] .join-card h2{
    margin:0 52px 7px 0!important;font-size:var(--bonjour-ref-title)!important;
    line-height:1.08!important;letter-spacing:-.026em!important;
  }
  body[data-bonjour-pwa="1"] .bonjour-page-intro{
    margin:0 52px 15px 0!important;font-size:var(--bonjour-ref-body)!important;line-height:1.45!important;
  }
  body[data-bonjour-pwa="1"] .join-card label,
  body[data-bonjour-pwa="1"] .join-card .field-label{
    font-size:11px!important;line-height:1.3!important;margin-top:9px!important;
  }
  body[data-bonjour-pwa="1"] .join-card input,
  body[data-bonjour-pwa="1"] .join-card select,
  body[data-bonjour-pwa="1"] .join-card textarea{
    min-height:var(--bonjour-ref-control)!important;
    padding:9px 11px!important;font-size:12.5px!important;border-radius:9px!important;
  }
  body[data-bonjour-pwa="1"] .join-card .field-help{
    margin-top:5px!important;font-size:9.5px!important;line-height:1.35!important;
  }
  body[data-bonjour-pwa="1"] .avatar-choice-wrap{margin-top:8px!important}
  body[data-bonjour-pwa="1"] .avatar-choice-head{margin-bottom:5px!important}
  body[data-bonjour-pwa="1"] .avatar-choices{gap:6px!important;margin-top:7px!important}
  body[data-bonjour-pwa="1"] .avatar-choice{width:26px!important;height:26px!important}
  body[data-bonjour-pwa="1"] .photo-upload-button{
    min-height:34px!important;padding:0 11px!important;border-radius:8px!important;font-size:10.5px!important;
  }
  body[data-bonjour-pwa="1"] .join-card .primary-button{
    min-height:42px!important;margin-top:12px!important;font-size:11.5px!important;border-radius:9px!important;
  }
  body[data-bonjour-pwa="1"] .join-card .hint{
    padding:8px 10px!important;margin-top:8px!important;font-size:10.5px!important;border-radius:8px!important;
  }
  body[data-bonjour-pwa="1"] .preview-controls{padding:8px!important;gap:7px!important}
  body[data-bonjour-pwa="1"] .preview-controls .round-control{
    width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
  }
}

/* BONJOUR BRIDGE 1.20.19 — TABLETTE DE RÉFÉRENCE + SCÈNE SÛRE
   Contribuer à Bonjour est l'étalon de densité tablette.
   Mobile <=1024 px inchangé. iPad paysage : salons, administration,
   pré-entrée et Transfert recalibrés ; scène/réunion protégée des bords
   système et hiérarchie z-index explicite. */
@media (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
  body[data-bonjour-pwa="1"]{
    --bonjour-tab-title:22px;
    --bonjour-tab-body:11.5px;
    --bonjour-tab-label:10.5px;
    --bonjour-tab-control:38px;
    --bonjour-tab-radius:16px;
  }

  /* SALONS PERMANENTS — même retenue que Contribuer. */
  body[data-bonjour-pwa="1"] .regions-view{
    padding:44px 6.5vw!important;
    align-items:center!important;
  }
  body[data-bonjour-pwa="1"] .regions-card.bonjour-mobile-page-shell{
    width:min(620px,52vw)!important;max-width:620px!important;
    padding:18px!important;border-radius:var(--bonjour-tab-radius)!important;
    box-shadow:0 22px 64px rgba(0,0,0,.30)!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head{padding-right:48px!important}
  body[data-bonjour-pwa="1"] .regions-page-head .eyebrow{font-size:8.5px!important;margin-bottom:4px!important}
  body[data-bonjour-pwa="1"] .regions-page-head h2{font-size:var(--bonjour-tab-title)!important;line-height:1.08!important}
  body[data-bonjour-pwa="1"] .regions-head-actions{gap:7px!important;margin:13px 0 0!important}
  body[data-bonjour-pwa="1"] #addPermanentRoomKeyBtn:not(.hidden),
  body[data-bonjour-pwa="1"] #createPermanentRoomBtn:not(.hidden){
    min-height:36px!important;height:36px!important;padding:0 10px!important;
    border-radius:8px!important;font-size:10.5px!important;font-weight:600!important;
  }
  body[data-bonjour-pwa="1"] .regions-help{
    margin:11px 0 13px!important;font-size:11.5px!important;line-height:1.43!important;
  }
  body[data-bonjour-pwa="1"] .region-row-wrap{gap:7px!important}
  body[data-bonjour-pwa="1"] .region-row{
    min-height:62px!important;padding:10px 12px!important;border-radius:9px!important;
  }
  body[data-bonjour-pwa="1"] .region-main-copy strong{font-size:12.5px!important;line-height:1.18!important}
  body[data-bonjour-pwa="1"] .region-row small{font-size:9px!important}
  body[data-bonjour-pwa="1"] .region-community-meta{gap:7px!important;margin-top:4px!important;font-size:9px!important}
  body[data-bonjour-pwa="1"] .region-admin-actions{grid-template-columns:74px 74px!important;gap:7px!important}
  body[data-bonjour-pwa="1"] .region-share,
  body[data-bonjour-pwa="1"] .region-manage{
    min-height:62px!important;height:62px!important;padding:0 8px!important;
    border-radius:9px!important;font-size:11.5px!important;font-weight:600!important;
  }

  /* GÉRER LE SALON — compact, aucun chevauchement, actions parfaitement alignées. */
  body[data-bonjour-pwa="1"] #adminRoomModal{padding:34px 46px!important}
  body[data-bonjour-pwa="1"] .admin-room-modal{
    width:min(820px,calc(100vw - 92px))!important;max-width:820px!important;
    max-height:84dvh!important;padding:18px!important;border-radius:18px!important;
    overflow:auto!important;overscroll-behavior:contain!important;
  }
  body[data-bonjour-pwa="1"] .admin-room-modal .sticky-modal-head{
    padding:0 46px 9px 0!important;margin:0 0 8px!important;
  }
  body[data-bonjour-pwa="1"] .admin-room-modal .modal-head h3{font-size:19px!important;line-height:1.15!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .eyebrow{font-size:8.5px!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .modal-close{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;font-size:22px!important}
  body[data-bonjour-pwa="1"] .admin-stats{gap:7px!important;margin:5px 0 10px!important}
  body[data-bonjour-pwa="1"] .admin-stats span{padding:9px 10px!important;border-radius:9px!important}
  body[data-bonjour-pwa="1"] .admin-stats strong{font-size:12.5px!important}
  body[data-bonjour-pwa="1"] .admin-stats small{font-size:8.5px!important}
  body[data-bonjour-pwa="1"] .admin-grid{gap:9px!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-section{
    min-width:0!important;padding:12px!important;border-radius:10px!important;
  }
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-section-head{margin-bottom:9px!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-section-head strong{font-size:12.5px!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-section-head small{font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-label{min-width:0!important;gap:5px!important;font-size:10px!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-label input,
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-label select{
    box-sizing:border-box!important;min-width:0!important;width:100%!important;
    min-height:36px!important;height:36px!important;padding:7px 9px!important;
    border-radius:8px!important;font-size:11px!important;
  }
  body[data-bonjour-pwa="1"] .admin-room-modal .time-grid{
    display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;margin-top:8px!important;min-width:0!important;
  }
  body[data-bonjour-pwa="1"] .admin-room-modal .time-grid>*{min-width:0!important;width:100%!important}
  body[data-bonjour-pwa="1"] .admin-room-modal .settings-section-gap{margin-top:9px!important}
  body[data-bonjour-pwa="1"] .permanent-link-box{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;gap:8px!important;margin-top:8px!important;min-width:0!important;
  }
  body[data-bonjour-pwa="1"] .permanent-link-box code{
    min-width:0!important;width:100%!important;padding:9px 10px!important;
    border-radius:8px!important;font-size:10.5px!important;
  }
  body[data-bonjour-pwa="1"] .permanent-link-actions{
    display:grid!important;grid-template-columns:repeat(3,64px)!important;gap:6px!important;
    align-items:stretch!important;margin:0!important;
  }
  body[data-bonjour-pwa="1"] .permanent-link-actions .compact-button{
    box-sizing:border-box!important;width:64px!important;min-width:64px!important;height:36px!important;
    min-height:36px!important;padding:0 7px!important;margin:0!important;border-radius:8px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:9.5px!important;
  }
  body[data-bonjour-pwa="1"] .permanent-link-help{font-size:9.5px!important;margin-top:6px!important}
  body[data-bonjour-pwa="1"] .portable-security-grid{gap:8px!important;margin-top:9px!important}
  body[data-bonjour-pwa="1"] .portable-security-card{padding:10px!important;border-radius:9px!important}
  body[data-bonjour-pwa="1"] .portable-security-card strong{font-size:11.5px!important}
  body[data-bonjour-pwa="1"] .portable-security-card p{font-size:9.5px!important;line-height:1.4!important}

  /* CRÉER / REJOINDRE — densité identique à Contribuer. */
  body[data-bonjour-pwa="1"] .prejoin-view{padding:42px 60px!important}
  body[data-bonjour-pwa="1"] .prejoin-layout{
    width:min(820px,calc(100vw - 120px))!important;max-width:820px!important;
    grid-template-columns:minmax(0,438px) minmax(0,364px)!important;
    gap:18px!important;align-items:center!important;
  }
  body[data-bonjour-pwa="1"] .preview-card{
    aspect-ratio:4/3!important;max-height:54dvh!important;border-radius:16px!important;
    box-shadow:0 18px 52px rgba(0,0,0,.30),0 0 28px rgba(0,0,0,.15)!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell{
    max-height:74dvh!important;padding:17px!important;border-radius:16px!important;
    box-shadow:0 18px 52px rgba(0,0,0,.29)!important;
  }
  body[data-bonjour-pwa="1"] .join-card .bonjour-page-close{
    top:14px!important;right:14px!important;width:36px!important;height:36px!important;
    min-width:36px!important;min-height:36px!important;font-size:22px!important;border-radius:10px!important;
  }
  body[data-bonjour-pwa="1"] .join-card .eyebrow{margin:0 46px 4px 0!important;font-size:8px!important}
  body[data-bonjour-pwa="1"] .join-card h2{margin:0 46px 6px 0!important;font-size:21px!important;line-height:1.08!important}
  body[data-bonjour-pwa="1"] .bonjour-page-intro{margin:0 46px 12px 0!important;font-size:11px!important;line-height:1.42!important}
  body[data-bonjour-pwa="1"] .join-card label,
  body[data-bonjour-pwa="1"] .join-card .field-label{font-size:10px!important;margin-top:7px!important}
  body[data-bonjour-pwa="1"] .join-card input,
  body[data-bonjour-pwa="1"] .join-card select,
  body[data-bonjour-pwa="1"] .join-card textarea{
    min-height:36px!important;height:auto!important;padding:7px 9px!important;
    font-size:11.5px!important;border-radius:8px!important;
  }
  body[data-bonjour-pwa="1"] .join-card .field-help{margin-top:4px!important;font-size:8.7px!important;line-height:1.3!important}
  body[data-bonjour-pwa="1"] .avatar-choice-wrap{margin-top:6px!important}
  body[data-bonjour-pwa="1"] .avatar-choices{gap:5px!important;margin-top:5px!important}
  body[data-bonjour-pwa="1"] .avatar-choice{width:24px!important;height:24px!important}
  body[data-bonjour-pwa="1"] .photo-upload-button{min-height:32px!important;height:32px!important;padding:0 9px!important;font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .join-card .primary-button{min-height:38px!important;height:38px!important;margin-top:9px!important;font-size:10.5px!important}
  body[data-bonjour-pwa="1"] .join-card .hint{padding:7px 8px!important;margin-top:6px!important;font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .preview-controls .round-control{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}

  /* TRANSFERT — même masse visuelle que Contribuer, pas une page géante. */
  body[data-bonjour-pwa="1"] .transfer-view{padding:46px 6.5vw!important;align-items:center!important}
  body[data-bonjour-pwa="1"] .transfer-page-shell{width:min(620px,52vw)!important;max-width:620px!important}
  body[data-bonjour-pwa="1"] .transfer-main-card.bonjour-mobile-page-shell{
    max-height:80dvh!important;padding:20px!important;border-radius:16px!important;
    box-shadow:0 20px 58px rgba(0,0,0,.30)!important;
  }
  body[data-bonjour-pwa="1"] .transfer-main-card .bonjour-page-close{
    top:16px!important;right:16px!important;width:36px!important;height:36px!important;
    min-width:36px!important;min-height:36px!important;font-size:22px!important;border-radius:10px!important;
  }
  body[data-bonjour-pwa="1"] .transfer-brand-row{padding-right:48px!important}
  body[data-bonjour-pwa="1"] .transfer-main-card>h2{
    margin:6px 48px 8px 0!important;font-size:22px!important;line-height:1.08!important;letter-spacing:-.025em!important;
  }
  body[data-bonjour-pwa="1"] .transfer-lead{font-size:11px!important;line-height:1.42!important;margin:0 0 9px!important}
  body[data-bonjour-pwa="1"] .transfer-privacy-row{margin:0 0 11px!important}
  body[data-bonjour-pwa="1"] .transfer-no-storage{font-size:8.5px!important;padding:4px 7px!important}
  body[data-bonjour-pwa="1"] .transfer-name-field{font-size:10px!important}
  body[data-bonjour-pwa="1"] .transfer-name-field input{min-height:36px!important;height:36px!important;font-size:11.5px!important;padding:7px 9px!important}
  body[data-bonjour-pwa="1"] .transfer-drop-zone{min-height:100px!important;border-radius:10px!important;gap:3px!important}
  body[data-bonjour-pwa="1"] .transfer-drop-icon{width:34px!important;height:34px!important;font-size:19px!important}
  body[data-bonjour-pwa="1"] .transfer-drop-zone strong{font-size:13px!important}
  body[data-bonjour-pwa="1"] .transfer-drop-zone small{font-size:10.5px!important}
  body[data-bonjour-pwa="1"] .transfer-limits{margin-top:9px!important;font-size:8.8px!important;line-height:1.35!important}
  body[data-bonjour-pwa="1"] .transfer-primary{min-height:38px!important;height:38px!important;font-size:10.5px!important}
  body[data-bonjour-pwa="1"] .transfer-history{margin-top:12px!important;padding-top:12px!important}
  body[data-bonjour-pwa="1"] .transfer-item{padding:9px 10px!important;border-radius:9px!important}
  body[data-bonjour-pwa="1"] .transfer-item strong{font-size:11.5px!important}
  body[data-bonjour-pwa="1"] .transfer-item small{font-size:8.8px!important}

  /* SALON / RÉUNION — vraie fenêtre tablette, jamais sous la barre système. */
  body[data-bonjour-pwa="1"] .room-view{
    position:relative!important;
    width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;
    height:calc(100dvh - 34px)!important;min-height:0!important;max-height:calc(100dvh - 34px)!important;
    margin:20px 14px 14px!important;
    border:1px solid rgba(207,224,217,.16)!important;border-radius:18px!important;
    overflow:hidden!important;box-shadow:0 24px 72px rgba(0,0,0,.34)!important;
    background:rgba(3,15,13,.84)!important;isolation:isolate!important;
  }
  body[data-bonjour-pwa="1"] .room-header{
    position:relative!important;z-index:260!important;
    height:48px!important;flex-basis:48px!important;min-height:48px!important;
    padding:0 12px!important;border-radius:17px 17px 0 0!important;
  }
  body[data-bonjour-pwa="1"] .room-identity strong{font-size:11.5px!important}
  body[data-bonjour-pwa="1"] .room-identity small{font-size:8.8px!important}
  body[data-bonjour-pwa="1"] .header-actions{gap:5px!important}
  body[data-bonjour-pwa="1"] .header-actions .secondary-button,
  body[data-bonjour-pwa="1"] .header-actions .icon-text-button{
    min-height:32px!important;height:32px!important;padding:0 8px!important;border-radius:8px!important;font-size:9.5px!important;
  }
  body[data-bonjour-pwa="1"] .room-body{position:relative!important;z-index:1!important;overflow:hidden!important}
  body[data-bonjour-pwa="1"] .stage-wrap{
    position:relative!important;z-index:1!important;padding:9px!important;gap:7px!important;overflow:hidden!important;
    background:rgba(2,13,11,.44)!important;box-shadow:inset 0 0 110px rgba(0,0,0,.28)!important;
  }
  body[data-bonjour-pwa="1"] .video-grid{gap:8px!important;min-height:0!important}
  body[data-bonjour-pwa="1"] .video-tile{min-height:0!important;border-radius:12px!important}
  body[data-bonjour-pwa="1"] .empty-stage{min-height:180px!important;border-radius:12px!important}
  body[data-bonjour-pwa="1"] .regional-intro{font-size:9px!important;padding:0 3px!important}
  body[data-bonjour-pwa="1"] .audience-strip{padding:6px 8px!important;min-height:38px!important;border-radius:8px!important}
  body[data-bonjour-pwa="1"] .audience-title strong{font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .audience-title span{font-size:8.5px!important}
  body[data-bonjour-pwa="1"] .control-bar{
    position:relative!important;z-index:260!important;
    height:58px!important;min-height:58px!important;flex-basis:58px!important;
    padding:0 10px!important;border-radius:0 0 17px 17px!important;overflow:visible!important;
  }
  body[data-bonjour-pwa="1"] .control-bar .control-group{gap:3px!important}
  body[data-bonjour-pwa="1"] .control-button{min-width:50px!important;padding:4px 5px!important;font-size:8.5px!important;gap:2px!important}
  body[data-bonjour-pwa="1"] .control-icon{width:27px!important;height:25px!important;font-size:11px!important;border-radius:6px!important}
  body[data-bonjour-pwa="1"] .leave-button{min-width:62px!important;height:34px!important;padding:0 10px!important;font-size:9.5px!important;border-radius:8px!important}

  /* Les panneaux et réglages passent TOUJOURS au-dessus des médias/diffusions. */
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden){
    position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;
    width:292px!important;max-width:42vw!important;height:auto!important;max-height:none!important;
    z-index:320!important;border-left:1px solid rgba(217,174,55,.14)!important;
    border-radius:0!important;box-shadow:-18px 0 42px rgba(0,0,0,.34)!important;
    overflow:hidden!important;
  }
  body[data-bonjour-pwa="1"] .room-view .side-tabs{
    position:relative!important;z-index:324!important;min-height:44px!important;padding:0 7px!important;
    background:rgba(6,23,20,.96)!important;
  }
  body[data-bonjour-pwa="1"] .room-view .side-tab{font-size:9.5px!important;padding:8px 6px!important}
  body[data-bonjour-pwa="1"] .room-view .panel-close{width:30px!important;height:30px!important;font-size:20px!important}
  body[data-bonjour-pwa="1"] .room-view .panel-content{position:relative!important;z-index:323!important;background:rgba(6,23,20,.96)!important}
  body[data-bonjour-pwa="1"] .more-menu{z-index:360!important;right:82px!important;bottom:68px!important;width:210px!important}
  body[data-bonjour-pwa="1"] .participant-control-menu{z-index:370!important}
  body[data-bonjour-pwa="1"] .host-broadcast-toolbar{position:relative!important;z-index:210!important}
  body[data-bonjour-pwa="1"] .broadcast-stage{position:relative!important;z-index:20!important;border-radius:12px!important}
  body[data-bonjour-pwa="1"] .broadcast-topbar{z-index:330!important;padding:9px 10px!important}
  body[data-bonjour-pwa="1"] .broadcast-actions,
  body[data-bonjour-pwa="1"] .broadcast-overlay-button,
  body[data-bonjour-pwa="1"] .broadcast-stop-button{z-index:334!important}
  body[data-bonjour-pwa="1"] .presenter-controls{z-index:338!important}
  body[data-bonjour-pwa="1"] .broadcast-identity-card{z-index:328!important}
  body[data-bonjour-pwa="1"] .toast{z-index:350!important;bottom:68px!important}
  body[data-bonjour-pwa="1"] .modal-backdrop{z-index:500!important}
}


/* BONJOUR BRIDGE 1.20.20 — CALIBRAGE FINAL TABLETTE / LAPTOP / PC
   Référence : Contribuer à Bonjour. Mobile <= 1024 px laissé intact.
   Mon Bonjour et Windows gagnent en finesse ; consentement Contribuer réaligné. */
@media (min-width:1025px){
  /* MON BONJOUR — même densité que Contribuer, sans icône ni actions surdimensionnées. */
  body[data-bonjour-pwa="1"] .my-bonjour-modal{
    width:min(700px,calc(100vw - 88px))!important;max-width:700px!important;
    padding:22px!important;border-radius:18px!important;
    max-height:86dvh!important;overflow:auto!important;overscroll-behavior:contain!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-head{
    grid-template-columns:36px minmax(0,1fr)!important;gap:11px!important;
    padding-right:46px!important;align-items:start!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-symbol{
    width:34px!important;height:34px!important;border-radius:9px!important;
    font-size:17px!important;line-height:1!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-head .eyebrow{font-size:8px!important;letter-spacing:.14em!important}
  body[data-bonjour-pwa="1"] .my-bonjour-head h3{
    font-size:20px!important;line-height:1.08!important;margin:2px 0 5px!important;letter-spacing:-.02em!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-head p{
    font-size:10.5px!important;line-height:1.45!important;max-width:590px!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-trust{
    margin:13px 0 8px!important;padding:9px 11px!important;border-radius:9px!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-trust strong{font-size:10.5px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-trust span{font-size:9.2px!important;line-height:1.38!important;margin-top:2px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-panel{
    padding:12px!important;border-radius:9px!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-panel>strong{font-size:12.5px!important;margin:3px 0 5px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-panel>p{font-size:10px!important;line-height:1.42!important;margin-bottom:9px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-status-row{gap:10px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-status-row .eyebrow{font-size:7.8px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-status-row strong{font-size:12.5px!important;margin-top:2px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-status-row small{font-size:9px!important;margin-top:2px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-ok{width:27px!important;height:27px!important;font-size:15px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-key-box{
    gap:7px!important;margin-top:10px!important;padding:7px 7px 7px 9px!important;border-radius:8px!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-key-box span{font-size:9.5px!important;line-height:1.35!important}
  body[data-bonjour-pwa="1"] .my-bonjour-key-box button{
    min-height:32px!important;height:32px!important;padding:0 9px!important;border-radius:7px!important;font-size:9px!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-key-warning{margin:6px 0!important;font-size:9px!important;line-height:1.35!important}
  body[data-bonjour-pwa="1"] .my-bonjour-actions{
    display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:7px!important;align-items:stretch!important;margin-top:8px!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-actions .primary-button,
  body[data-bonjour-pwa="1"] .my-bonjour-actions .secondary-button{
    box-sizing:border-box!important;width:100%!important;height:36px!important;min-height:36px!important;
    margin:0!important;padding:0 11px!important;border-radius:8px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    font-size:10px!important;line-height:1!important;font-weight:600!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-foot{
    margin:8px 1px 0!important;font-size:8.5px!important;line-height:1.38!important;
  }

  /* BONJOUR WINDOWS — ramener le contenu à la même retenue graphique. */
  body[data-bonjour-pwa="1"] .windows-download-modal{
    width:min(730px,calc(100vw - 88px))!important;max-width:730px!important;
    padding:21px!important;border-radius:18px!important;max-height:86dvh!important;
    overflow:auto!important;overscroll-behavior:contain!important;
  }
  body[data-bonjour-pwa="1"] .windows-download-hero{
    grid-template-columns:40px minmax(0,1fr)!important;gap:11px!important;padding-right:46px!important;
  }
  body[data-bonjour-pwa="1"] .windows-logo{
    width:38px!important;height:38px!important;padding:7px!important;border-radius:10px!important;
    gap:2px!important;color:#e3bd55!important;
  }
  body[data-bonjour-pwa="1"] .windows-download-hero .eyebrow{font-size:8px!important;letter-spacing:.14em!important}
  body[data-bonjour-pwa="1"] .windows-download-hero h3{
    font-size:20px!important;line-height:1.08!important;margin:2px 0 5px!important;letter-spacing:-.02em!important;
  }
  body[data-bonjour-pwa="1"] .windows-download-hero p{font-size:10.5px!important;line-height:1.45!important}
  body[data-bonjour-pwa="1"] .windows-release-strip{gap:5px!important;margin:13px 0 8px!important}
  body[data-bonjour-pwa="1"] .windows-release-strip span{font-size:8.2px!important;padding:5px 7px!important}
  body[data-bonjour-pwa="1"] .windows-release-card{
    padding:11px 12px!important;border-radius:9px!important;
  }
  body[data-bonjour-pwa="1"] .windows-release-card strong{font-size:11.5px!important}
  body[data-bonjour-pwa="1"] .windows-release-card p{
    font-size:9.8px!important;line-height:1.42!important;margin:5px 0!important;
    max-height:165px!important;padding-right:5px!important;
  }
  body[data-bonjour-pwa="1"] .windows-release-card small{font-size:8.7px!important}
  body[data-bonjour-pwa="1"] .windows-download-primary{
    min-height:38px!important;height:38px!important;margin-top:10px!important;border-radius:8px!important;font-size:10.5px!important;
  }
  body[data-bonjour-pwa="1"] .windows-install-guide{gap:6px!important;margin-top:7px!important}
  body[data-bonjour-pwa="1"] .windows-install-guide>div{gap:6px!important;padding:8px!important;border-radius:8px!important}
  body[data-bonjour-pwa="1"] .windows-install-guide i{width:18px!important;height:18px!important;flex-basis:18px!important;font-size:8px!important}
  body[data-bonjour-pwa="1"] .windows-install-guide strong{font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .windows-install-guide small{font-size:8.4px!important;line-height:1.3!important}
  body[data-bonjour-pwa="1"] .windows-download-actions{gap:6px!important;margin-top:6px!important}
  body[data-bonjour-pwa="1"] .windows-download-actions button{
    height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:9.2px!important;
  }
  body[data-bonjour-pwa="1"] .windows-download-trust{
    margin:10px 0 0!important;padding-top:9px!important;font-size:8.7px!important;line-height:1.4!important;
  }

  /* CONTRIBUER — la case de consentement est un contrôle compact, pas un champ de formulaire. */
  body[data-bonjour-pwa="1"] .contribution-credit{
    display:grid!important;grid-template-columns:18px minmax(0,1fr)!important;
    align-items:center!important;column-gap:9px!important;
    padding:9px 10px!important;min-height:42px!important;line-height:1.34!important;
  }
  body[data-bonjour-pwa="1"] .contribution-credit input[type="checkbox"]{
    appearance:auto!important;-webkit-appearance:checkbox!important;
    box-sizing:border-box!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;
    max-width:18px!important;max-height:18px!important;margin:0!important;padding:0!important;
    align-self:center!important;justify-self:center!important;accent-color:#d6b34f!important;
  }
  body[data-bonjour-pwa="1"] .contribution-credit span{
    display:block!important;margin:0!important;padding:0!important;font-size:10px!important;line-height:1.34!important;
  }
}

/* PC / LAPTOP : conserver les mêmes proportions précises, avec seulement davantage d'air autour. */
@media (min-width:1367px) and (pointer:fine){
  body[data-bonjour-pwa="1"] .my-bonjour-backdrop,
  body[data-bonjour-pwa="1"] .windows-download-backdrop,
  body[data-bonjour-pwa="1"] #contributionModal{
    padding:48px!important;
  }
  body[data-bonjour-pwa="1"] .my-bonjour-modal{width:min(700px,48vw)!important}
  body[data-bonjour-pwa="1"] .windows-download-modal{width:min(730px,50vw)!important}
  body[data-bonjour-pwa="1"] .contribution-modal{width:min(980px,70vw)!important}
}


/* BONJOUR BRIDGE 1.20.24 — GRAMMAIRE VISUELLE : AUCUN CONTRÔLE / AVATAR PARFAITEMENT ROND
   Règle durable : avatars, photos, sélecteurs de couleur et boutons d'action utilisent un carré doux.
   Les micro-indicateurs d'état/presence restent circulaires car ils sont purement informatifs. */
body[data-bonjour-pwa="1"] .avatar,
body[data-bonjour-pwa="1"] .avatar-choice,
body[data-bonjour-pwa="1"] .round-control,
body[data-bonjour-pwa="1"] .transfer-drop-icon,
body[data-bonjour-pwa="1"] .transfer-ready-mark,
body[data-bonjour-pwa="1"] .transfer-receive-icon,
body[data-bonjour-pwa="1"] .transfer-complete-check,
body[data-bonjour-pwa="1"] .transfer-mini-avatar,
body[data-bonjour-pwa="1"] .schedule-result-check,
body[data-bonjour-pwa="1"] .fight-notice-icon,
body[data-bonjour-pwa="1"] .room-key-trust>span,
body[data-bonjour-pwa="1"] .my-bonjour-ok,
body[data-bonjour-pwa="1"] .windows-install-guide i,
body[data-bonjour-pwa="1"] .operation-progress-steps li span,
body[data-bonjour-pwa="1"] .transfer-install-help li>b{
  border-radius:8px!important;
}

/* Les avatars plus grands gardent un rayon légèrement supérieur pour conserver leur douceur. */
body[data-bonjour-pwa="1"] .avatar.avatar-xl,
body[data-bonjour-pwa="1"] .video-tile .avatar,
body[data-bonjour-pwa="1"] .regional-welcome .avatar{
  border-radius:14px!important;
}

/* Sélecteurs de couleurs : même géométrie que le reste de Bonjour. */
body[data-bonjour-pwa="1"] .avatar-choice{
  border-radius:8px!important;
}
body[data-bonjour-pwa="1"] .avatar-choice.selected{
  box-shadow:0 0 0 2px rgba(238,245,242,.9),0 0 0 5px rgba(35,135,126,.22)!important;
}

/* Contrôles caméra/micro et + Transfert : carrés doux, sans changer leur taille ni leur fonction. */
body[data-bonjour-pwa="1"] .round-control,
body[data-bonjour-pwa="1"] .transfer-drop-icon{
  border-radius:10px!important;
}

/* Miniatures / photos de profil diffusées dans les listes et scènes. */
body[data-bonjour-pwa="1"] .avatar.profile-photo,
body[data-bonjour-pwa="1"] .broadcast-audience-avatar .avatar,
body[data-bonjour-pwa="1"] .transfer-mini-avatar{
  border-radius:8px!important;
}


/* BONJOUR PRESENTER — réception et pilotage responsive 2026-09-28
   La présentation reste contenue dans une scène sûre ; commandes toujours au-dessus. */
.presenter-pdf-canvas{
  display:block;flex:0 0 auto;width:auto;height:auto;max-width:none;max-height:none;
  background:#fff;box-shadow:0 18px 56px rgba(0,0,0,.46);border-radius:6px;
  image-rendering:auto;transform:translateZ(0);backface-visibility:hidden;pointer-events:none
}
.presenter-pdf-canvas.hidden{display:none!important}
.broadcast-stage.presenter-active{background:radial-gradient(circle at 50% 42%,rgba(19,48,41,.58),rgba(2,6,5,.96) 72%)}
.broadcast-stage.presenter-active .presenter-stage{background:rgba(2,6,5,.62)}
.broadcast-stage.presenter-active .broadcast-topbar,
.broadcast-stage.presenter-active .presenter-controls{z-index:390!important}
.broadcast-stage.presenter-active .broadcast-rotate-hint{z-index:1200!important}

@media (min-width:700px) and (max-width:1366px) and (pointer:coarse){
  .room-view.broadcast-mode .room-body{height:100%!important;min-height:0!important;overflow:hidden!important}
  .room-view.broadcast-mode .stage-wrap{padding:7px!important;gap:0!important;background:rgba(2,9,8,.72)!important}
  .room-view.broadcast-mode .broadcast-stage{
    width:100%!important;height:100%!important;min-height:0!important;
    border:1px solid rgba(207,224,217,.12)!important;border-radius:13px!important;
    box-shadow:inset 0 0 110px rgba(0,0,0,.30)!important
  }
  .broadcast-stage.presenter-active .presenter-stage{
    inset:47px 8px 8px!important;border-radius:10px!important;overflow:hidden!important
  }
  .broadcast-stage.presenter-active .broadcast-topbar{padding:7px 8px!important;gap:7px!important}
  .broadcast-stage.presenter-active .broadcast-status{
    padding:6px 8px!important;border-radius:8px!important;max-width:42vw!important;gap:6px!important
  }
  .broadcast-stage.presenter-active .broadcast-status strong{font-size:10px!important;max-width:34vw!important}
  .broadcast-stage.presenter-active .broadcast-status small{font-size:8px!important}
  .broadcast-stage.presenter-active .broadcast-actions{gap:4px!important;flex-wrap:nowrap!important}
  .broadcast-stage.presenter-active .broadcast-overlay-button,
  .broadcast-stage.presenter-active .broadcast-stop-button{
    min-height:31px!important;height:31px!important;padding:0 8px!important;
    border-radius:7px!important;font-size:9px!important;gap:4px!important;white-space:nowrap!important
  }
  .broadcast-stage.presenter-active .presenter-controls{
    bottom:5px!important;gap:4px!important;padding:5px 6px!important;border-radius:8px!important;
    max-width:calc(100% - 12px)!important;overflow-x:auto!important;overscroll-behavior-x:contain!important;
    scrollbar-width:none!important;white-space:nowrap!important
  }
  .broadcast-stage.presenter-active .presenter-controls::-webkit-scrollbar{display:none!important}
  .broadcast-stage.presenter-active .presenter-controls button{
    min-width:31px!important;width:31px!important;height:29px!important;border-radius:6px!important;font-size:14px!important
  }
  .broadcast-stage.presenter-active .presenter-controls label{font-size:8.5px!important;gap:4px!important}
  .broadcast-stage.presenter-active .presenter-controls input[type=number]{
    width:42px!important;height:27px!important;border-radius:6px!important;padding:0 5px!important;font-size:10px!important
  }
  .broadcast-stage.presenter-active .presenter-controls select{
    height:27px!important;border-radius:6px!important;padding:0 5px!important;font-size:10px!important
  }
  .broadcast-stage.presenter-active .presenter-load-status{
    padding:8px 10px!important;border-radius:8px!important;font-size:10px!important;max-width:min(420px,72vw)!important
  }
  .broadcast-stage.presenter-active .broadcast-identity-card{
    right:10px!important;bottom:10px!important;max-width:180px!important;min-height:66px!important;border-radius:9px!important
  }
}

/* Smartphone : la vue Presenter doit d'abord être lisible, puis proposer naturellement le paysage. */
@media (max-width:760px){
  .room-view.broadcast-mode .broadcast-stage.presenter-active{height:100dvh!important;min-height:100dvh!important}
  .broadcast-stage.presenter-active .presenter-stage{inset:45px 4px 6px!important;border-radius:8px!important}
  .broadcast-stage.presenter-active.broadcast-ui-hidden .broadcast-topbar{
    opacity:1!important;transform:none!important;pointer-events:auto!important
  }
  .broadcast-stage.presenter-active .broadcast-topbar{
    display:flex!important;padding:max(7px,env(safe-area-inset-top)) 7px 6px!important;gap:5px!important
  }
  .broadcast-stage.presenter-active .broadcast-status{padding:5px 7px!important;border-radius:7px!important;max-width:48vw!important}
  .broadcast-stage.presenter-active .broadcast-status strong{font-size:9px!important;max-width:38vw!important}
  .broadcast-stage.presenter-active .broadcast-status small{display:none!important}
  .broadcast-stage.presenter-active .broadcast-actions{gap:3px!important}
  .broadcast-stage.presenter-active .broadcast-overlay-button,
  .broadcast-stage.presenter-active .broadcast-stop-button{
    width:34px!important;min-width:34px!important;height:31px!important;min-height:31px!important;
    padding:0!important;border-radius:7px!important;justify-content:center!important;font-size:11px!important
  }
  .broadcast-stage.presenter-active .presenter-load-status{
    font-size:11px!important;max-width:calc(100vw - 34px)!important;padding:9px 11px!important;border-radius:8px!important
  }
}
@media (max-width:760px) and (orientation:portrait){
  .broadcast-stage.presenter-active .broadcast-rotate-hint{
    display:grid!important;position:fixed!important;left:50%!important;top:50%!important;bottom:auto!important;
    transform:translate(-50%,-50%)!important;width:min(330px,calc(100vw - 34px))!important;min-width:0!important;
    padding:14px 16px!important;border-radius:12px!important;background:rgba(3,16,14,.96)!important;
    border:1px solid rgba(126,224,209,.24)!important;box-shadow:0 24px 70px rgba(0,0,0,.54)!important;
    pointer-events:none!important
  }
  .broadcast-stage.presenter-active .broadcast-rotate-hint>span{font-size:24px!important}
  .broadcast-stage.presenter-active .broadcast-rotate-hint strong{font-size:13px!important}
  .broadcast-stage.presenter-active .broadcast-rotate-hint small{font-size:10px!important}
}
@media (max-width:900px) and (orientation:landscape){
  .broadcast-stage.presenter-active .broadcast-rotate-hint{display:none!important}
  .broadcast-stage.presenter-active .presenter-stage{inset:39px 4px 5px!important}
}

/* BONJOUR — sortie/plein écran/commandes Presenter cohérents sur Web, HUB et Satellite */
#roomInput{ text-transform:none!important; }
.broadcast-rotate-hint{cursor:pointer;user-select:none;-webkit-user-select:none;pointer-events:auto!important;}

/* La carte d'identité ne doit pas masquer une présentation. */
.broadcast-stage.presenter-active .broadcast-identity-card{display:none!important;}

/* En diffusion les commandes de réunion restent toujours récupérables. */
.room-view.broadcast-mode .control-bar{
  display:flex!important;
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:max(8px,env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  width:min(980px,calc(100vw - 24px))!important;
  height:auto!important;
  min-height:54px!important;
  flex-basis:auto!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:6px!important;
  padding:6px 8px!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:14px!important;
  background:rgba(5,18,15,.90)!important;
  box-shadow:0 14px 42px rgba(0,0,0,.48)!important;
  backdrop-filter:blur(18px) saturate(1.1)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.1)!important;
  z-index:140!important;
  overflow:hidden!important;
}
.room-view.broadcast-mode .control-bar .control-group{display:flex!important;align-items:center!important;gap:3px!important;flex:0 0 auto!important;}
.room-view.broadcast-mode .control-bar .center-controls{flex:1 1 auto!important;min-width:0!important;justify-content:flex-start!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;}
.room-view.broadcast-mode .control-bar .center-controls::-webkit-scrollbar{display:none!important;}
.room-view.broadcast-mode .control-button{min-width:54px!important;padding:5px 6px!important;font-size:9px!important;gap:2px!important;white-space:nowrap!important;}
.room-view.broadcast-mode .control-icon{width:30px!important;height:27px!important;font-size:13px!important;border-radius:7px!important;}
.room-view.broadcast-mode .leave-button{min-height:38px!important;padding:0 13px!important;border-radius:9px!important;white-space:nowrap!important;}
.room-view.broadcast-mode .presenter-controls{bottom:76px!important;z-index:145!important;}
.room-view.broadcast-mode .broadcast-topbar{z-index:150!important;}
.room-view.broadcast-mode .side-panel{z-index:180!important;}
.room-view.broadcast-mode .more-menu{z-index:190!important;}
.room-view.broadcast-mode .modal-backdrop{z-index:220!important;}

/* Hors vrai plein écran, tablette/laptop : scène contenue au lieu d'avaler l'écran. */
@media (min-width:761px){
  .room-view.broadcast-mode:not(.desktop-broadcast-fullscreen):not(.broadcast-pseudo-fullscreen) .stage-wrap{
    padding:12px!important;
    display:grid!important;
    place-items:center!important;
    background:#020504!important;
  }
  .room-view.broadcast-mode:not(.desktop-broadcast-fullscreen):not(.broadcast-pseudo-fullscreen) .broadcast-stage{
    width:min(1180px,calc(100vw - 28px))!important;
    height:min(860px,calc(100dvh - 24px))!important;
    border-radius:14px!important;
    border:1px solid rgba(255,255,255,.08)!important;
    box-shadow:0 20px 70px rgba(0,0,0,.48)!important;
  }
}

/* Plein écran de secours Bonjour : indispensable lorsque Safari/iOS refuse Fullscreen API. */
html.bonjour-broadcast-pseudo-fullscreen,
body.bonjour-broadcast-pseudo-fullscreen{overflow:hidden!important;overscroll-behavior:none!important;background:#000!important;}
.room-view.broadcast-pseudo-fullscreen{
  position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;min-height:100dvh!important;
  z-index:2147483000!important;background:#000!important;margin:0!important;padding:0!important;
}
.room-view.broadcast-pseudo-fullscreen .room-body,
.room-view.desktop-broadcast-fullscreen.broadcast-mode .room-body{height:100dvh!important;min-height:100dvh!important;}
.room-view.broadcast-pseudo-fullscreen .stage-wrap,
.room-view.desktop-broadcast-fullscreen.broadcast-mode .stage-wrap{padding:0!important;background:#000!important;display:flex!important;}
.room-view.broadcast-pseudo-fullscreen .broadcast-stage,
.room-view.desktop-broadcast-fullscreen.broadcast-mode .broadcast-stage{
  width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;
}

@media (max-width:760px){
  .room-view.broadcast-mode .control-bar{width:calc(100vw - 12px)!important;bottom:max(5px,env(safe-area-inset-bottom))!important;min-height:50px!important;padding:4px 5px!important;border-radius:12px!important;}
  .room-view.broadcast-mode .control-button{min-width:48px!important;padding:4px!important;font-size:8px!important;}
  .room-view.broadcast-mode .control-icon{width:28px!important;height:25px!important;}
  .room-view.broadcast-mode .leave-button{min-height:35px!important;padding:0 10px!important;font-size:10px!important;}
  .room-view.broadcast-mode .presenter-controls{bottom:66px!important;max-width:calc(100vw - 14px)!important;}
  .room-view.broadcast-mode .broadcast-topbar{padding:max(5px,env(safe-area-inset-top)) 6px 6px!important;}
}

@media (orientation:portrait) and (max-width:900px){
  .room-view.broadcast-mode .broadcast-rotate-hint{bottom:92px!important;z-index:155!important;}
}


/* BONJOUR — ACCUEIL PERSONNALISÉ : identité + chaleur, sans ajouter de bloc.
   Le logo existant reste unique. Le prénom complète le mot Bonjour et reprend l'or de la couronne.
   La grille s'aligne sur les icônes fonctionnelles pour conserver la précision de l'interface. */
.home-card{
  --bonjour-home-action-pad:13px;
  --bonjour-home-icon-size:39px;
}
.home-card .brand-lockup{
  margin-top:6px!important;
  margin-left:calc(var(--bonjour-home-action-pad) + (var(--bonjour-home-icon-size) / 2))!important;
  margin-bottom:6px!important;
}
.home-topline .brand-lockup{max-width:calc(100% - 68px)!important}
.home-card .brand-lockup h1{
  display:flex!important;
  align-items:baseline!important;
  flex-wrap:wrap!important;
  column-gap:.22em!important;
  row-gap:0!important;
}
.home-card .home-first-name{
  display:inline!important;
  font:inherit!important;
  font-size:1em!important;
  font-weight:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
  background:linear-gradient(180deg,#ffd45a 0%,#ffc43d 48%,#ffae1f 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  color:#ddb551!important;
  filter:drop-shadow(0 3px 10px rgba(217,174,55,.12));
}
.home-card .home-first-name.hidden{display:none!important}
.home-card .product-signature{display:none!important}
.home-card .home-greeting-lead{
  margin-top:8px!important;
  margin-left:var(--bonjour-home-action-pad)!important;
  margin-right:6px!important;
  margin-bottom:20px!important;
  max-width:calc(100% - var(--bonjour-home-action-pad) - 10px)!important;
  color:#79b9ad!important;
  opacity:.96!important;
  font-weight:500!important;
  letter-spacing:.002em!important;
}
@media(max-width:620px){
  .home-card{--bonjour-home-action-pad:11px;--bonjour-home-icon-size:37px}
  .home-card .brand-lockup{margin-top:7px!important;margin-bottom:5px!important}
  .home-card .home-greeting-lead{margin-top:7px!important;margin-bottom:17px!important;line-height:1.42!important}
}
@media(max-width:380px){
  .home-card{--bonjour-home-action-pad:10px;--bonjour-home-icon-size:35px}
  .home-card .brand-lockup h1{column-gap:.18em!important}
  .home-card .home-greeting-lead{font-size:12px!important}
}


/* Bonjour social / scène / caméra mobile — 1.20.25 / HUB 20.10.12 / Satellite 20.7.8 */
.social-invite-header{min-height:38px;border:1px solid rgba(224,183,74,.42);background:linear-gradient(135deg,rgba(18,81,72,.92),rgba(9,48,43,.96));color:#f1d27a;border-radius:10px;padding:0 13px;font-weight:700;letter-spacing:.01em;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.16)}
.social-invite-header:hover{border-color:rgba(238,201,101,.72);transform:translateY(-1px)}
.social-invite-panel{display:grid;gap:14px;margin:2px 0 16px;padding:15px;border:1px solid rgba(224,183,74,.28);background:linear-gradient(145deg,rgba(14,55,49,.82),rgba(7,29,26,.92));border-radius:14px}
.social-invite-panel.hidden{display:none}.social-invite-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.social-invite-head strong,.social-invite-head small{display:block}.social-invite-head strong{font-size:16px}.social-invite-head small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.social-invite-badge{padding:5px 8px;border:1px solid rgba(224,183,74,.34);color:#efd47e;font-size:8px;font-weight:700;letter-spacing:.16em;border-radius:7px}
.social-invite-preview-wrap{border:1px solid rgba(255,255,255,.1);background:#020807;padding:7px;border-radius:12px;overflow:hidden}.social-invite-preview-wrap canvas{display:block;width:100%;height:auto;aspect-ratio:1200/630;border-radius:8px;background:#071713}
.social-invite-schedule{display:grid;grid-template-columns:1fr 130px 130px;gap:10px;align-items:end;padding:11px;border:1px solid var(--line);background:rgba(4,16,14,.55);border-radius:11px}.social-invite-schedule>div strong,.social-invite-schedule>div small{display:block}.social-invite-schedule>div small{color:var(--muted);font-size:9px;margin-top:3px}.social-invite-schedule label{font-size:9px;color:var(--muted)}.social-invite-schedule input{display:block;width:100%;margin-top:5px;background:#06110f;color:#fff;border:1px solid var(--line);border-radius:8px;padding:9px}
.social-platform-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.social-platform-grid button{min-width:0;border:1px solid var(--line);background:#091a17;color:#fff;border-radius:10px;padding:10px 8px;display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:2px;text-align:left;cursor:pointer}.social-platform-grid button:hover{background:#123129;border-color:rgba(224,183,74,.35)}.social-platform-grid button>span{grid-row:1/3;width:28px;height:28px;border-radius:7px;background:rgba(224,183,74,.09);color:#efd47e;display:grid;place-items:center;font-weight:700}.social-platform-grid strong{font-size:10px}.social-platform-grid small{font-size:8px;color:var(--muted);white-space:normal}.social-invite-tools{display:flex;gap:8px;flex-wrap:wrap}.social-invite-status{margin:0;color:var(--muted);font-size:9px;line-height:1.45}
/* 1.22.33 — Choix de scène, même charte et même hiérarchie que le reste de Bonjour. */
#sceneImageModal .scene-image-modal{width:min(610px,100%)!important;max-width:610px!important;max-height:min(90dvh,820px)!important;overflow-y:auto;padding:clamp(19px,4vw,28px);border-radius:23px;background:radial-gradient(circle at 45% 7%,rgba(242,255,252,.075),transparent 40%),linear-gradient(155deg,#0a312c,#061f1b 72%,#041713)!important;border:1px solid rgba(202,232,224,.19);box-shadow:0 28px 80px rgba(0,0,0,.41)}
#sceneImageModal .modal-head{align-items:flex-start;gap:12px}
#sceneImageModal .modal-head h3{font-size:clamp(22px,4.9vw,28px);line-height:1.13;letter-spacing:-.028em;margin:7px 0 0;color:#fff}
#sceneImageModal .modal-head .eyebrow{color:#ffd05f!important;letter-spacing:.14em;font-size:10px;font-weight:750}
#sceneImageModal .modal-close{min-width:39px;width:39px;height:39px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(160deg,#10443b,#062922);border:1px solid rgba(218,236,231,.23);color:#f4f8f5}
#sceneImageModal .modal-subtitle{margin:13px 0 17px;font-size:14px;color:#e4eeeb;line-height:1.55}
#sceneImageModal .scene-image-preview{min-height:165px;max-height:260px;border:1px dashed rgba(235,216,159,.25);border-radius:15px;background:linear-gradient(145deg,rgba(4,21,18,.74),rgba(9,45,39,.45));display:grid;place-items:center;overflow:hidden;color:#b5c9c2}
#sceneImageModal .scene-image-empty{display:flex;flex-direction:column;align-items:center;gap:11px;text-align:center;font-size:12px;color:#c3d4cf}
#sceneImageModal .scene-image-empty-icon{display:grid;place-items:center;font-size:26px;line-height:1;color:#e5c976}
#sceneImageModal .scene-image-empty-icon svg{width:29px;height:29px;stroke:currentColor;fill:none;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
#sceneImageModal .scene-image-preview img{width:100%;height:210px;object-fit:cover;display:block}
#sceneImageModal .scene-image-actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:16px}
#sceneImageModal .scene-image-actions button{width:100%;min-height:49px!important;height:auto!important;display:grid!important;place-items:center;padding:10px 16px!important;border-radius:13px;font-size:13px;font-weight:750;letter-spacing:0;}
#sceneImageModal #chooseSceneImageBtn{background:linear-gradient(180deg,#ffe17e 0%,#ffcc52 50%,#f7ad2e 100%)!important;border:1px solid #ffdb70!important;color:#10372e!important;box-shadow:none!important}
#sceneImageModal #clearSceneImageBtn{display:grid!important;min-height:49px!important;background:linear-gradient(155deg,#0f4038,#062a25)!important;border:1px solid rgba(244,207,104,.28)!important;color:#f4f7f5!important;box-shadow:none!important}
#sceneImageModal #clearSceneImageBtn.hidden{display:none!important}
#sceneImageModal>.scene-image-modal>.field-help{font-size:11px;line-height:1.48;color:#b6c9c2;margin:10px 2px 0}
.stage-wrap.scene-photo-active{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;background-color:#06110f!important}.stage-wrap.scene-photo-active .empty-stage{background:rgba(2,12,10,.58)!important;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border-color:rgba(255,255,255,.20)!important;color:#dce8e3}.stage-wrap.scene-photo-active .empty-stage strong{color:#fff}
.quick-live-camera{border-color:rgba(224,183,74,.28)!important}.quick-live-camera .control-icon{color:#efd47e}.control-button.social-acquisition{border-color:rgba(224,183,74,.34)!important;background:rgba(18,77,68,.78)!important}.control-button.social-acquisition .control-icon{color:#efd47e}
.social-invite-admin{margin:16px 0;border:1px solid rgba(224,183,74,.24);background:linear-gradient(145deg,rgba(11,40,35,.92),rgba(6,25,22,.95));border-radius:15px;padding:16px;display:grid;gap:14px}.social-invite-admin-copy h3{margin:4px 0 5px}.social-invite-admin-copy p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.social-invite-admin-grid{display:grid;grid-template-columns:240px 1fr;gap:14px;align-items:center}.social-invite-admin-grid img{width:100%;aspect-ratio:1200/630;object-fit:cover;border:1px solid var(--line);border-radius:10px}.social-invite-admin-grid>div{display:grid;gap:9px}.social-invite-admin-grid input{font-size:10px}.social-invite-admin-grid small{color:var(--muted);font-size:9px}
@media(max-width:900px){.social-invite-header span{display:none}.social-invite-header{width:38px;padding:0;display:grid;place-items:center}.social-platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.social-invite-schedule{grid-template-columns:1fr 1fr}.social-invite-schedule>div{grid-column:1/-1}.social-invite-admin-grid{grid-template-columns:1fr}.quick-live-camera:not(.hidden){display:flex!important}.scene-image-preview{min-height:160px}.scene-image-preview img{height:200px}}
@media(min-width:901px){.quick-live-camera{display:none!important}}
@media(max-width:560px){.social-invite-panel{padding:11px;gap:11px}.social-invite-head{gap:8px}.social-invite-badge{display:none}.social-platform-grid{grid-template-columns:1fr 1fr}.social-platform-grid button{padding:9px 7px}.social-invite-tools{display:grid;grid-template-columns:1fr}.social-invite-tools .secondary-button{display:flex!important}.scene-image-actions{display:grid;grid-template-columns:1fr}.scene-image-actions .secondary-button{display:flex!important}.social-invite-schedule input{font-size:16px}}

/* Vignette sociale = amorçage : l’action reste volontairement visible sur tablette/mobile. */
@media(max-width:900px){
  .social-invite-header{width:auto!important;min-width:76px!important;padding:0 9px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;white-space:nowrap!important}
  .social-invite-header span{display:inline!important;font-size:9px!important}
  .control-button.social-acquisition{background:linear-gradient(135deg,rgba(20,111,98,.96),rgba(10,72,64,.96))!important;border-color:rgba(235,199,99,.55)!important;box-shadow:0 5px 16px rgba(0,0,0,.16)!important}
}
@media(max-width:480px){
  .social-invite-header{min-width:64px!important}
  .social-invite-header span{font-size:0!important}
  .social-invite-header span::after{content:'Inviter';font-size:9px!important}
}

/* 1.20.25 / 20.10.12 — Nouveautés : footer mobile sans recouvrement */
@media(max-width:760px){
  #whatsNewModal .modal-actions{position:static!important;bottom:auto!important;z-index:auto!important;margin:14px 14px 0!important;padding:8px 0 max(16px,env(safe-area-inset-bottom))!important;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  #whatsNewModal .whats-new-modal.whats-new-premium{scroll-padding-bottom:max(24px,env(safe-area-inset-bottom))!important}
}


/* Bridge 1.20.28 — Nouveautés : structure anti-recouvrement définitive.
   Le contenu est le seul élément scrollable ; le footer occupe sa propre ligne. */
#whatsNewModal{z-index:1200!important;}
#whatsNewModal .whats-new-modal.whats-new-premium{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  isolation:isolate!important;
  max-height:min(92dvh,900px)!important;
}
#whatsNewModal .whats-new-scroll{
  position:relative!important;
  z-index:1!important;
  min-height:0!important;
  flex:1 1 auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  padding-bottom:8px!important;
}
#whatsNewModal .whats-new-footer{
  position:relative!important;
  inset:auto!important;
  z-index:4!important;
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
  padding:12px 20px max(16px,env(safe-area-inset-bottom))!important;
  background:#0a221d!important;
  border-top:1px solid rgba(255,255,255,.07)!important;
  box-shadow:0 -14px 28px rgba(0,0,0,.20)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#whatsNewModal .whats-new-footer .primary-button{
  width:min(360px,100%)!important;
  min-height:46px!important;
  margin:0 auto!important;
}
#whatsNewModal .modal-corner{
  position:absolute!important;
  float:none!important;
  top:16px!important;
  right:16px!important;
  margin:0!important;
  z-index:8!important;
}
@media(max-width:760px){
  #whatsNewModal{
    height:100dvh!important;
    min-height:100dvh!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom))!important;
  }
  #whatsNewModal .whats-new-modal.whats-new-premium{
    width:100%!important;
    height:100%!important;
    max-height:100%!important;
    margin:0 auto!important;
    border-radius:18px!important;
  }
  #whatsNewModal .whats-new-scroll{
    scroll-padding-top:18px!important;
    scroll-padding-bottom:20px!important;
  }
  #whatsNewModal .whats-new-footer{
    padding:10px 14px max(14px,env(safe-area-inset-bottom))!important;
  }
  #whatsNewModal .whats-new-footer .primary-button{
    width:100%!important;
  }
  #whatsNewModal .modal-corner{
    top:14px!important;
    right:14px!important;
  }
}

/* BONJOUR BRIDGE 1.20.29 — HARMONIE MOBILE + TABLETTE / SALONS + AMORÇAGE SOCIAL
   Référence : Accueil / Mon Bonjour / Contribuer. L'or reste un accent, jamais une couleur d'action. */

/* ---- Mobile : Salons permanents retrouve la densité de l'accueil ---- */
@media (max-width:720px){
  body[data-bonjour-pwa="1"] .regions-card.bonjour-mobile-page-shell{
    width:min(100%,620px)!important;
    padding:18px 16px 17px!important;
    border-radius:17px!important;
  }
  body[data-bonjour-pwa="1"] .regions-card .bonjour-page-close{
    top:14px!important;right:14px!important;
    width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;
    border-radius:11px!important;font-size:24px!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head{
    display:block!important;padding:1px 50px 0 0!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head .eyebrow{
    margin:0 0 6px!important;font-size:9.5px!important;letter-spacing:.16em!important;
  }
  body[data-bonjour-pwa="1"] .regions-page-head h2{
    margin:0!important;font-size:24px!important;line-height:1.08!important;letter-spacing:-.025em!important;
  }
  body[data-bonjour-pwa="1"] .regions-head-actions{
    display:grid!important;grid-template-columns:1fr!important;gap:7px!important;
    margin:15px 0 0!important;
  }
  body[data-bonjour-pwa="1"] #addPermanentRoomKeyBtn:not(.hidden),
  body[data-bonjour-pwa="1"] #createPermanentRoomBtn:not(.hidden){
    min-height:40px!important;height:40px!important;padding:0 11px!important;
    border-radius:10px!important;background:var(--accent)!important;color:#fff!important;
    border:0!important;box-shadow:none!important;font-size:12px!important;font-weight:600!important;
  }
  body[data-bonjour-pwa="1"] .regions-help{
    margin:14px 0 15px!important;font-size:12.5px!important;line-height:1.45!important;
    color:rgba(231,241,237,.70)!important;
  }
  body[data-bonjour-pwa="1"] .regions-list{gap:8px!important}
  body[data-bonjour-pwa="1"] .region-row-wrap{gap:7px!important;border-radius:11px!important}
  body[data-bonjour-pwa="1"] .region-row{
    min-height:0!important;padding:12px 13px!important;border-radius:11px!important;
  }
  body[data-bonjour-pwa="1"] .region-main-copy strong{font-size:13.5px!important;line-height:1.22!important}
  body[data-bonjour-pwa="1"] .region-hours{font-size:10.5px!important;margin-top:3px!important}
  body[data-bonjour-pwa="1"] .region-community-meta{gap:8px!important;margin-top:6px!important;font-size:10.5px!important}
  body[data-bonjour-pwa="1"] .status-pill{font-size:8.5px!important;padding:5px 8px!important}
  body[data-bonjour-pwa="1"] .region-admin-actions{gap:7px!important}
  body[data-bonjour-pwa="1"] .region-share,
  body[data-bonjour-pwa="1"] .region-manage,
  body[data-bonjour-pwa="1"] .region-actions button{
    min-height:40px!important;height:40px!important;border-radius:10px!important;
    font-size:12.5px!important;font-weight:600!important;
  }
}

/* ---- Charte sociale : vert d'action, or uniquement dans la vignette/identité ---- */
@media (max-width:1024px), (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
  body[data-bonjour-pwa="1"] .social-invite-header{
    border:1px solid rgba(207,224,217,.17)!important;
    background:linear-gradient(135deg,rgba(36,151,140,.95),rgba(26,119,111,.96))!important;
    color:#f7fbf9!important;box-shadow:0 7px 18px rgba(0,0,0,.15)!important;
  }
  body[data-bonjour-pwa="1"] .social-invite-header:hover{border-color:rgba(207,224,217,.24)!important}
  body[data-bonjour-pwa="1"] .social-invite-panel{
    border:1px solid rgba(207,224,217,.15)!important;
    background:linear-gradient(145deg,rgba(8,43,38,.90),rgba(5,27,24,.96))!important;
    box-shadow:none!important;
  }
  body[data-bonjour-pwa="1"] .social-invite-badge{
    border:1px solid rgba(120,190,177,.22)!important;background:rgba(36,151,140,.07)!important;
    color:#9ccfc5!important;
  }
  body[data-bonjour-pwa="1"] .social-platform-grid button{
    border-color:rgba(207,224,217,.13)!important;background:rgba(7,29,25,.92)!important;
  }
  body[data-bonjour-pwa="1"] .social-platform-grid button:hover{
    border-color:rgba(88,167,153,.34)!important;background:rgba(14,53,46,.96)!important;
  }
  body[data-bonjour-pwa="1"] .social-platform-grid button>span{
    background:rgba(45,151,139,.10)!important;color:#8bc9bd!important;
  }
  body[data-bonjour-pwa="1"] .social-invite-schedule{
    border-color:rgba(207,224,217,.13)!important;background:rgba(4,18,15,.60)!important;
  }
  body[data-bonjour-pwa="1"] .scene-image-preview{
    border-color:rgba(207,224,217,.16)!important;
  }
  body[data-bonjour-pwa="1"] .quick-live-camera,
  body[data-bonjour-pwa="1"] .control-button.social-acquisition{
    border-color:rgba(207,224,217,.14)!important;
    background:rgba(20,77,68,.78)!important;
  }
  body[data-bonjour-pwa="1"] .quick-live-camera .control-icon,
  body[data-bonjour-pwa="1"] .control-button.social-acquisition .control-icon{
    color:#f4faf7!important;
  }
}

/* ---- Téléphone : panneau d'invitation plus léger et cohérent ---- */
@media (max-width:720px){
  body[data-bonjour-pwa="1"] #inviteModal{padding:12px!important}
  body[data-bonjour-pwa="1"] #inviteModal .invite-modal{
    width:min(100%,620px)!important;max-width:620px!important;max-height:90dvh!important;
    padding:16px!important;border-radius:17px!important;
  }
  body[data-bonjour-pwa="1"] #inviteModal .modal-head h3{font-size:21px!important;line-height:1.1!important}
  body[data-bonjour-pwa="1"] #inviteModal .modal-subtitle{font-size:12.5px!important;line-height:1.45!important;margin:8px 0 12px!important}
  body[data-bonjour-pwa="1"] .social-invite-panel{padding:10px!important;gap:10px!important;border-radius:12px!important}
  body[data-bonjour-pwa="1"] .social-invite-head strong{font-size:14px!important}
  body[data-bonjour-pwa="1"] .social-invite-head small{font-size:9.5px!important;line-height:1.35!important}
  body[data-bonjour-pwa="1"] .social-invite-preview-wrap{padding:5px!important;border-radius:10px!important}
  body[data-bonjour-pwa="1"] .social-invite-schedule{padding:9px!important;gap:7px!important;border-radius:10px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid{gap:7px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid button{padding:8px 7px!important;border-radius:9px!important;column-gap:7px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid button>span{width:25px!important;height:25px!important;border-radius:6px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid strong{font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid small{font-size:7.8px!important;line-height:1.25!important}
  body[data-bonjour-pwa="1"] .social-invite-tools{gap:7px!important}
  body[data-bonjour-pwa="1"] .social-invite-tools .secondary-button{min-height:38px!important;height:38px!important;font-size:11px!important}
}

/* ---- Tablette paysage : la scène redevient une fenêtre, pas un plein écran déguisé ---- */
@media (min-width:1025px) and (max-width:1366px) and (pointer:coarse){
  body[data-bonjour-pwa="1"] .room-view{
    width:min(1160px,calc(100vw - 96px))!important;
    max-width:1160px!important;
    height:min(820px,calc(100dvh - 88px))!important;
    min-height:0!important;max-height:min(820px,calc(100dvh - 88px))!important;
    margin:44px auto!important;
    border-radius:18px!important;
    box-shadow:0 28px 86px rgba(0,0,0,.42)!important;
  }
  body[data-bonjour-pwa="1"] .room-header{
    height:46px!important;min-height:46px!important;flex-basis:46px!important;padding:0 11px!important;
  }
  body[data-bonjour-pwa="1"] .room-identity strong{font-size:10.8px!important}
  body[data-bonjour-pwa="1"] .room-identity small{font-size:8.4px!important}
  body[data-bonjour-pwa="1"] .header-actions{gap:5px!important}
  body[data-bonjour-pwa="1"] .header-actions .secondary-button,
  body[data-bonjour-pwa="1"] .header-actions .icon-text-button,
  body[data-bonjour-pwa="1"] .social-invite-header{
    min-height:30px!important;height:30px!important;padding:0 8px!important;border-radius:8px!important;font-size:9px!important;
  }
  body[data-bonjour-pwa="1"] .social-invite-header{min-width:118px!important;width:auto!important}
  body[data-bonjour-pwa="1"] .social-invite-header span{display:inline!important;font-size:9px!important}
  body[data-bonjour-pwa="1"] .stage-wrap{
    padding:8px!important;gap:7px!important;background-color:rgba(2,13,11,.58)!important;
    box-shadow:inset 0 0 150px rgba(0,0,0,.36)!important;
  }
  body[data-bonjour-pwa="1"] .stage-wrap.scene-photo-active{background-blend-mode:multiply!important;background-color:rgba(2,13,11,.48)!important}
  body[data-bonjour-pwa="1"] .empty-stage strong{font-size:14px!important}
  body[data-bonjour-pwa="1"] .empty-stage span{font-size:10.5px!important;line-height:1.4!important}
  body[data-bonjour-pwa="1"] .control-bar{
    height:54px!important;min-height:54px!important;flex-basis:54px!important;padding:0 9px!important;
  }
  body[data-bonjour-pwa="1"] .control-button{min-width:46px!important;padding:3px 4px!important;font-size:8px!important}
  body[data-bonjour-pwa="1"] .control-icon{width:25px!important;height:23px!important;font-size:10px!important}
  body[data-bonjour-pwa="1"] .leave-button{height:32px!important;min-width:58px!important;font-size:9px!important}

  body[data-bonjour-pwa="1"] #inviteModal{padding:34px 48px!important}
  body[data-bonjour-pwa="1"] #inviteModal .invite-modal{
    width:min(720px,calc(100vw - 140px))!important;max-width:720px!important;max-height:82dvh!important;
    padding:20px!important;border-radius:18px!important;overflow:auto!important;
  }
  body[data-bonjour-pwa="1"] #inviteModal .modal-head h3{font-size:21px!important;line-height:1.08!important}
  body[data-bonjour-pwa="1"] #inviteModal .modal-subtitle{font-size:11.5px!important;line-height:1.45!important;margin:7px 0 12px!important}
  body[data-bonjour-pwa="1"] .social-invite-panel{padding:12px!important;gap:11px!important;border-radius:12px!important}
  body[data-bonjour-pwa="1"] .social-invite-head strong{font-size:14.5px!important}
  body[data-bonjour-pwa="1"] .social-invite-head small{font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .social-invite-preview-wrap{padding:5px!important;border-radius:10px!important}
  body[data-bonjour-pwa="1"] .social-invite-schedule{
    grid-template-columns:1fr 1fr!important;gap:7px!important;padding:9px!important;border-radius:10px!important;
  }
  body[data-bonjour-pwa="1"] .social-invite-schedule>div{grid-column:1/-1!important}
  body[data-bonjour-pwa="1"] .social-invite-schedule input{padding:7px 8px!important;font-size:11px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid button{padding:8px!important;border-radius:9px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid button>span{width:25px!important;height:25px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid strong{font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .social-platform-grid small{font-size:7.8px!important;line-height:1.25!important}
  body[data-bonjour-pwa="1"] .social-invite-tools .secondary-button{min-height:34px!important;height:34px!important;font-size:9.5px!important}
  body[data-bonjour-pwa="1"] .social-invite-status{font-size:8px!important}
}

/* BONJOUR BRIDGE 1.20.30 — CORRECTIFS CIBLÉS UNIQUEMENT
   1. Presenter tablette : la diapo reste entièrement visible quand un panneau latéral s'ouvre.
   2. Fichiers tablette : restitution de la marge intérieure manquante.
   3. Salon mobile via le lien Web : barre basse affinée, sans toucher aux fonctions caméra. */
@media (min-width:700px){
  body[data-bonjour-pwa="1"] .room-view.presenter-side-panel-open .broadcast-stage.presenter-active .presenter-stage{
    right:calc(var(--presenter-side-panel-width,0px) + 8px)!important;
  }
}
@media (min-width:700px) and (max-width:1366px) and (pointer:coarse){
  body[data-bonjour-pwa="1"] .room-view .files-panel{
    padding:12px 12px 14px!important;box-sizing:border-box!important;
  }
}
@media (max-width:560px){
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar{
    grid-template-columns:auto minmax(0,1fr) auto!important;
    gap:2px!important;
    min-height:54px!important;height:54px!important;flex-basis:54px!important;
    padding-top:4px!important;
    padding-left:max(4px,env(safe-area-inset-left))!important;
    padding-right:max(4px,env(safe-area-inset-right))!important;
    padding-bottom:max(5px,env(safe-area-inset-bottom))!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar #mediaControls,
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .right-controls{
    gap:2px!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar #mediaControls .control-button,
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .center-controls .control-button{
    min-width:38px!important;width:38px!important;height:42px!important;padding:2px!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .center-controls{
    gap:2px!important;padding:0 1px!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .control-icon{
    width:28px!important;height:28px!important;font-size:12px!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .leave-button{
    min-width:58px!important;max-width:58px!important;height:42px!important;padding:0 6px!important;font-size:10.5px!important;
  }
}


/* BONJOUR BRIDGE 1.20.31 — MOBILE WEB APP / SALON
   Correctif strictement ciblé : calibration téléphone, commandes tactiles fiables,
   un seul accès Chat visible et panneau latéral propre. Aucun changement WebRTC/caméra. */
@media (max-width:720px){
  /* Le Chat reste dans la barre d'actions : pas de doublon dans l'en-tête. */
  body[data-bonjour-pwa="1"] #toggleChatBtn{display:none!important}

  /* Les commandes tactiles ne doivent jamais déclencher la sélection de texte iOS. */
  body[data-bonjour-pwa="1"] .room-header button,
  body[data-bonjour-pwa="1"] .control-bar button,
  body[data-bonjour-pwa="1"] .side-tabs button,
  body[data-bonjour-pwa="1"] .more-menu button{
    -webkit-user-select:none!important;user-select:none!important;
    -webkit-touch-callout:none!important;touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
  }

  /* Barre basse : chaque bouton reste dans sa zone et reçoit bien les taps. */
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar{
    position:relative!important;z-index:420!important;
    width:100%!important;max-width:100%!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    overflow:visible!important;
    padding-left:max(5px,env(safe-area-inset-left))!important;
    padding-right:max(5px,env(safe-area-inset-right))!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .center-controls{
    min-width:0!important;overflow-x:auto!important;overflow-y:visible!important;
    -webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;
    touch-action:pan-x!important;overscroll-behavior-x:contain!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .center-controls::-webkit-scrollbar{display:none!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-button,
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .leave-button{
    position:relative!important;z-index:2!important;pointer-events:auto!important;
  }
  body[data-bonjour-pwa="1"] .room-chat-footer-badge{
    position:absolute!important;top:1px!important;right:1px!important;
    min-width:15px!important;height:15px!important;padding:0 4px!important;
    font-size:8px!important;line-height:15px!important;z-index:4!important;
  }

  /* Menu Plus : toujours au-dessus de la scène et réellement cliquable. */
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .more-menu:not(.hidden){
    position:fixed!important;left:max(8px,env(safe-area-inset-left))!important;
    right:max(8px,env(safe-area-inset-right))!important;
    bottom:calc(60px + env(safe-area-inset-bottom))!important;
    width:auto!important;max-width:none!important;z-index:520!important;
    pointer-events:auto!important;padding:7px!important;border-radius:13px!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .more-menu button{
    min-height:42px!important;padding:8px 11px!important;font-size:12px!important;
  }

  /* Panneau Participants / Demandes / Chat / Fichiers : plein écran propre, sans contenu sous les onglets. */
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden){
    display:flex!important;flex-direction:column!important;overflow:hidden!important;
    padding-top:env(safe-area-inset-top)!important;padding-bottom:env(safe-area-inset-bottom)!important;
    z-index:500!important;
  }
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden) .side-tabs{
    position:relative!important;top:auto!important;flex:0 0 52px!important;min-height:52px!important;
    padding:0 8px!important;gap:2px!important;overflow-x:auto!important;overflow-y:hidden!important;
    z-index:3!important;
  }
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden) .side-tab{
    flex:0 0 auto!important;padding:8px 9px!important;font-size:13px!important;line-height:1!important;
  }
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden) .panel-close{
    position:relative!important;right:auto!important;flex:0 0 38px!important;width:38px!important;height:38px!important;
  }
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden) .panel-content{
    position:relative!important;flex:1 1 auto!important;min-height:0!important;
    overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;
  }
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden) .participants-list,
  body[data-bonjour-pwa="1"] .room-view .side-panel:not(.hidden) .requests-list{padding:12px 10px 18px!important}

  /* Rejoindre un salon : remettre l'échelle téléphone à la finesse du reste de l'app. */
  body[data-bonjour-pwa="1"] .prejoin-view{
    padding:max(8px,env(safe-area-inset-top)) 10px max(14px,env(safe-area-inset-bottom))!important;
  }
  body[data-bonjour-pwa="1"] .prejoin-layout{width:100%!important;max-width:100%!important;gap:0!important}
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell{
    width:100%!important;max-width:100%!important;min-height:0!important;
    padding:16px 16px 18px!important;border-radius:16px!important;
    overflow:visible!important;
  }
  body[data-bonjour-pwa="1"] .join-card .bonjour-page-close{
    top:14px!important;right:14px!important;width:38px!important;height:38px!important;
    min-width:38px!important;min-height:38px!important;font-size:24px!important;border-radius:10px!important;
  }
  body[data-bonjour-pwa="1"] .join-card .eyebrow{margin:1px 48px 5px 0!important;font-size:9px!important;line-height:1.35!important}
  body[data-bonjour-pwa="1"] .join-card h2{margin:0 48px 8px 0!important;font-size:24px!important;line-height:1.06!important}
  body[data-bonjour-pwa="1"] .bonjour-page-intro{margin:0 48px 12px 0!important;font-size:12.5px!important;line-height:1.42!important}
  body[data-bonjour-pwa="1"] .room-status{margin-top:8px!important;padding:9px 11px!important;font-size:12px!important;border-radius:10px!important}
  body[data-bonjour-pwa="1"] .join-card label,
  body[data-bonjour-pwa="1"] .join-card .field-label{margin-top:10px!important;font-size:11.5px!important;line-height:1.3!important}
  body[data-bonjour-pwa="1"] .join-card input,
  body[data-bonjour-pwa="1"] .join-card select,
  body[data-bonjour-pwa="1"] .join-card textarea{
    min-height:44px!important;padding:10px 12px!important;font-size:14px!important;border-radius:10px!important;
  }
  body[data-bonjour-pwa="1"] .join-card .field-help{margin-top:5px!important;font-size:10px!important;line-height:1.32!important}
  body[data-bonjour-pwa="1"] .avatar-choice-wrap{margin-top:10px!important}
  body[data-bonjour-pwa="1"] .avatar-choice-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:7px!important}
  body[data-bonjour-pwa="1"] .photo-upload-button{width:100%!important;min-height:38px!important;height:38px!important;font-size:11px!important;border-radius:9px!important}
  body[data-bonjour-pwa="1"] .avatar-choices{gap:7px!important;margin-top:7px!important;flex-wrap:nowrap!important;justify-content:flex-start!important}
  body[data-bonjour-pwa="1"] .avatar-choice{width:29px!important;height:29px!important;flex:0 0 29px!important}
  body[data-bonjour-pwa="1"] .join-card .primary-button{min-height:46px!important;height:46px!important;margin-top:14px!important;font-size:12.5px!important;border-radius:10px!important}
}

/* BONJOUR BRIDGE 1.20.33 — CHAT COMMUNAUTAIRE + MON AGENDA + CAMERA MOBILE
   Extension ciblée : conversations groupe/membres, agenda Bonjour, créneaux,
   accès direct au retournement caméra et remontée du dock mobile. */
.chat-experience-tabs{display:flex;gap:5px;padding:9px 10px 7px;border-bottom:1px solid rgba(207,224,217,.10);background:rgba(4,18,15,.78)}
.chat-experience-tab{border:1px solid transparent;background:transparent;color:#8fa8a0;border-radius:9px;min-height:34px;padding:0 11px;font-size:11px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px}
.chat-experience-tab.active{color:#f5f8f6;background:rgba(35,135,126,.16);border-color:rgba(81,171,159,.20)}
.chat-experience-tab .mini-badge{background:#288f84;color:#fff}
.chat-experience-pane{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.chat-experience-pane.hidden{display:none!important}
.chat-context-note{display:flex;flex-direction:column;gap:2px;padding:8px 13px;background:rgba(11,63,60,.11);border-bottom:1px solid rgba(207,224,217,.08)}
.chat-context-note strong{font-size:10.5px;color:#dce9e5}.chat-context-note span{font-size:9px;line-height:1.35;color:#809991}
.chat-members-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 7px}.chat-members-head strong,.chat-members-head span{display:block}.chat-members-head strong{font-size:12px}.chat-members-head span{margin-top:2px;color:#829b93;font-size:9.5px}.chat-members-refresh{width:31px;height:31px;border-radius:9px;border:1px solid rgba(207,224,217,.12);background:rgba(11,63,60,.16);color:#d7e6e1;font-size:16px;cursor:pointer}
.chat-member-search{margin:0 11px 8px;display:flex;align-items:center;gap:7px;min-height:38px;padding:0 10px;border:1px solid rgba(207,224,217,.13);border-radius:10px;background:rgba(3,15,13,.72)}.chat-member-search>span{color:#7da49b}.chat-member-search input{min-width:0;flex:1;border:0!important;outline:0!important;background:transparent!important;color:#f2f7f5!important;font-size:11px!important;padding:0!important;min-height:34px!important}.chat-members-list{flex:1;min-height:0;overflow:auto;padding:0 8px 12px;-webkit-overflow-scrolling:touch}
.chat-member-row{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;border:0;border-bottom:1px solid rgba(207,224,217,.07);background:transparent;color:#f4f8f6;text-align:left;padding:9px 7px;cursor:pointer;border-radius:9px}.chat-member-row:hover{background:rgba(11,63,60,.16)}.chat-member-row>.avatar{width:34px!important;height:34px!important;font-size:11px!important}.chat-member-meta{min-width:0}.chat-member-meta strong,.chat-member-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-member-meta strong{font-size:11.5px}.chat-member-meta small{font-size:9px;color:#809b93;margin-top:2px}.chat-member-presence{color:#687d78;font-size:11px}.chat-member-presence.online{color:#38b7a8;text-shadow:0 0 10px rgba(56,183,168,.35)}
.message-private,.private-chat-trigger{border:1px solid rgba(81,171,159,.18)!important;background:rgba(35,135,126,.12)!important;color:#bfe1da!important;border-radius:8px!important;font-size:9.5px!important;font-weight:700!important;padding:5px 7px!important}.message-private:hover,.private-chat-trigger:hover{background:rgba(35,135,126,.22)!important}
.private-chat-drawer{border-color:rgba(207,224,217,.18)!important;background:linear-gradient(155deg,rgba(5,31,27,.985),rgba(3,18,16,.99))!important;border-radius:16px!important;overflow:hidden!important}.private-chat-head{background:rgba(10,45,39,.90)!important}.private-chat-msg.mine{background:rgba(35,135,126,.20)!important;border-color:rgba(81,171,159,.17)!important}.private-chat-compose button{border-radius:9px!important;background:#23877e!important;color:#fff!important;box-shadow:none!important}.private-chat-continuity a{color:#b7d7cf!important}.private-chat-status{background:rgba(7,28,24,.90)!important}

.camera-flip-quick .control-icon{background:rgba(35,135,126,.24)!important;border:1px solid rgba(79,178,165,.22)!important;color:#f5fbf9!important}.camera-flip-quick{color:#cde6e0!important}.camera-flip-quick:not(.hidden){animation:bonjourFlipHint 2.8s ease-in-out 1}@keyframes bonjourFlipHint{0%,100%{filter:none}45%{filter:drop-shadow(0 0 8px rgba(54,170,157,.26))}}

.agenda-modal{max-width:760px!important}.agenda-dashboard{display:flex;flex-direction:column;gap:9px}.agenda-toolbar{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:7px;padding:2px 0}.agenda-toolbar strong{text-align:center;font-size:14px;text-transform:capitalize}.agenda-toolbar button{width:34px;height:34px;border:1px solid rgba(207,224,217,.12);border-radius:9px;background:rgba(11,63,60,.13);color:#dceae6;font-size:20px;cursor:pointer}.agenda-weekdays,.agenda-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.agenda-weekdays span{text-align:center;color:#708b84;font-size:8px;font-weight:700;padding:2px 0}.agenda-day{position:relative;aspect-ratio:1.25/1;min-height:38px;border:1px solid rgba(207,224,217,.08);border-radius:9px;background:rgba(4,19,16,.62);color:#dce7e3;cursor:pointer;font-size:10px}.agenda-day.outside{opacity:.35}.agenda-day.today{border-color:rgba(70,169,157,.42);background:rgba(35,135,126,.13)}.agenda-day.has-events:after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;transform:translateX(-50%);background:#d6b55e}.agenda-day i{position:absolute;right:4px;top:4px;min-width:13px;height:13px;border-radius:99px;display:grid;place-items:center;background:rgba(214,181,94,.15);color:#dec57f;font-style:normal;font-size:7px}.agenda-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:2px}.agenda-primary-actions button{min-height:40px!important}.agenda-secondary-actions{display:flex;gap:7px;justify-content:center}.agenda-secondary-actions button,.agenda-back-button{border:0;background:transparent;color:#8db0a8;font-size:9.5px;cursor:pointer;padding:5px 7px}.agenda-secondary-actions button:hover,.agenda-back-button:hover{color:#d8e5e1}.agenda-dashboard .scheduled-meetings-local{margin-top:2px!important;padding-top:10px!important}.schedule-meeting-form.hidden,.agenda-dashboard.hidden{display:none!important}
.availability-modal{max-width:650px!important}.availability-slots-head{display:flex;justify-content:space-between;align-items:end;margin:9px 0 6px}.availability-slots-head strong{font-size:12px}.availability-slots-head small{font-size:9px;color:#839c95}.availability-slot-inputs{display:flex;flex-direction:column;gap:6px}.availability-slot-row{display:grid;grid-template-columns:1fr 36px;gap:6px}.availability-slot-row input{min-height:40px;border:1px solid rgba(207,224,217,.13);border-radius:9px;background:#061411;color:#f4f8f6;padding:8px 10px}.availability-slot-row button{border:1px solid rgba(207,224,217,.10);border-radius:9px;background:rgba(128,50,49,.16);color:#e4b4b2;cursor:pointer}.availability-create-result{margin-top:12px;padding:12px;border-radius:11px;border:1px solid rgba(81,171,159,.17);background:rgba(35,135,126,.08)}.availability-create-result>span,.availability-create-result>code{display:block}.availability-create-result>span{font-size:9px;color:#83a49c}.availability-create-result>code{margin:5px 0 10px;overflow-wrap:anywhere;font-size:10px;color:#dfeae7}.availability-booking-slots{display:grid;gap:7px}.availability-booking-slot{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 12px;border:1px solid rgba(207,224,217,.12);border-radius:10px;background:rgba(4,19,16,.62);color:#edf5f2;text-align:left;cursor:pointer}.availability-booking-slot strong{font-size:11px;text-transform:capitalize}.availability-booking-slot span{font-size:9.5px;color:#8aa59e}.availability-booking-slot.selected{border-color:rgba(79,178,165,.48);background:rgba(35,135,126,.15);box-shadow:0 0 0 1px rgba(79,178,165,.08) inset}.availability-booking-result{display:flex;gap:10px;align-items:center;padding:13px;border-radius:11px;background:rgba(35,135,126,.11);border:1px solid rgba(81,171,159,.16)}.availability-booking-result strong{font-size:13px}.availability-booking-result p{margin:3px 0 7px;color:#91aca5;font-size:10px}

@media (max-width:720px){
  /* Le salon mobile garde une vraie respiration sous la scène et le dock remonte
     au-dessus du bord système au lieu d'être collé en bas de l'écran. */
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode){padding-bottom:0!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .room-body{padding-bottom:92px!important;box-sizing:border-box!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .stage-wrap{padding-bottom:8px!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar{
    position:absolute!important;left:max(7px,env(safe-area-inset-left))!important;right:max(7px,env(safe-area-inset-right))!important;
    bottom:max(22px,calc(env(safe-area-inset-bottom) + 16px))!important;width:auto!important;max-width:none!important;
    height:56px!important;min-height:56px!important;flex-basis:56px!important;padding:5px 6px!important;
    border:1px solid rgba(207,224,217,.11)!important;border-radius:14px!important;box-shadow:0 14px 34px rgba(0,0,0,.34)!important;
    background:rgba(5,29,25,.94)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;
  }
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-button>span:not(.control-icon):not(.badge):not(.mini-badge){display:none!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar #mediaControls .control-button,
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-bar .center-controls .control-button{width:38px!important;min-width:38px!important;height:42px!important;padding:2px!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .control-icon{width:29px!important;height:29px!important;font-size:12px!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .leave-button{height:42px!important;min-width:59px!important;max-width:64px!important;padding:0 7px!important;font-size:10.5px!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .more-menu:not(.hidden){bottom:calc(96px + env(safe-area-inset-bottom))!important}
  body[data-bonjour-pwa="1"] .room-view:not(.broadcast-mode) .toast{bottom:108px!important}
  body[data-bonjour-pwa="1"] .camera-flip-quick{display:flex}
  body[data-bonjour-pwa="1"] .camera-flip-quick.hidden{display:none!important}
  body[data-bonjour-pwa="1"] .chat-panel{overflow:hidden!important}
  body[data-bonjour-pwa="1"] .chat-experience-tabs{padding:6px 8px!important;gap:4px!important}
  body[data-bonjour-pwa="1"] .chat-experience-tab{min-height:32px!important;font-size:11px!important;padding:0 10px!important}
  body[data-bonjour-pwa="1"] .chat-context-note{padding:7px 10px!important}
  body[data-bonjour-pwa="1"] .chat-context-note span{font-size:8.5px!important}
  body[data-bonjour-pwa="1"] .messages{padding:10px!important}
  body[data-bonjour-pwa="1"] .chat-form{padding:8px max(8px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important}
  body[data-bonjour-pwa="1"] .private-chat-drawer{left:8px!important;right:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;width:auto!important;height:min(64dvh,560px)!important;border:1px solid rgba(207,224,217,.17)!important;border-radius:15px!important}
  .agenda-modal,.availability-modal{width:calc(100vw - 18px)!important;max-width:calc(100vw - 18px)!important;max-height:calc(100dvh - 20px)!important;padding:14px!important;border-radius:16px!important}
  .agenda-modal-subtitle{font-size:10px!important;line-height:1.38!important;margin:6px 0 9px!important}.agenda-day{min-height:34px!important;border-radius:7px!important}.agenda-primary-actions{grid-template-columns:1fr!important}.agenda-secondary-actions{justify-content:flex-start;flex-wrap:wrap}.availability-booking-slot{align-items:flex-start;flex-direction:column;gap:3px}
}
@media (min-width:721px) and (max-width:1366px) and (pointer:coarse){
  body[data-bonjour-pwa="1"] .camera-flip-quick:not(.hidden){display:flex!important;min-width:46px!important}
  body[data-bonjour-pwa="1"] .camera-flip-quick .control-icon{width:27px!important;height:25px!important}
  body[data-bonjour-pwa="1"] .chat-experience-tab{font-size:9.5px!important;min-height:30px!important}
  body[data-bonjour-pwa="1"] .chat-member-row{padding:8px 6px!important}.agenda-modal{max-width:680px!important}
}

/* BONJOUR UI HARMONY 1.20.38 / HUB 20.10.20 / SATELLITE 20.7.16
   Une seule grammaire visuelle : actions uniques, commandes caméra contextuelles,
   Retour compact et stable, aucune duplication de navigation. */
#socialInviteHeaderBtn,
#inviteFooterBtn,
#moreBtn,
#toggleChatBtn,
#flipCameraQuickBtn{display:none!important}

/* Quand la vignette locale existe, micro/caméra sont pilotés directement sur la vignette. */
.room-view.local-media-tile-active #mediaControls{display:none!important}
.room-view:not(.local-media-tile-active) #camBtn{display:none!important}

.local-media-controls{
  display:flex!important;align-items:center!important;gap:4px!important;
  padding:4px!important;border-radius:10px!important;pointer-events:auto!important;
  background:rgba(5,16,14,.70)!important;border:1px solid rgba(255,255,255,.08)!important;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)
}
.local-media-btn{
  width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;
  display:grid!important;place-items:center!important;padding:0!important;margin:0!important;
  border:0!important;border-radius:8px!important;background:rgba(18,58,51,.62)!important;
  color:#edf5f2!important;font-size:13px!important;line-height:1!important;cursor:pointer!important;
  box-shadow:none!important
}
.local-media-btn:hover{background:rgba(32,94,83,.78)!important}
.local-media-btn.off{background:rgba(103,47,47,.62)!important;color:#f3d7d4!important}
.local-media-btn:disabled{opacity:.38!important;cursor:not-allowed!important}
.local-flip-btn{color:#f0d47f!important;border:1px solid rgba(224,183,74,.16)!important}
.video-tile .tile-footer{pointer-events:none}
.video-tile .tile-footer .local-media-controls{pointer-events:auto}

/* Barre de salle : ne garder que les actions réellement uniques. */
.control-bar .center-controls{align-items:center!important}
.control-bar .control-group{align-items:center!important}

/* Retour : même bouton sur toutes les surfaces et toutes les pages. */
button.bonjour-return-button,
.bonjour-return-button,
body[data-bonjour-pwa="1"] button.bonjour-return-button,
body[data-bonjour-pwa="1"] .bonjour-page-close.bonjour-return-button,
body[data-bonjour-pwa="1"] .panel-close.bonjour-return-button,
body[data-bonjour-pwa="1"] .modal-close.bonjour-return-button{
  position:relative!important;inset:auto!important;transform:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 auto!important;width:auto!important;min-width:72px!important;max-width:96px!important;
  height:34px!important;min-height:34px!important;max-height:34px!important;
  padding:0 10px!important;margin:0!important;border-radius:9px!important;
  border:1px solid rgba(207,224,217,.12)!important;background:rgba(11,48,42,.82)!important;
  color:#e7efec!important;font-size:10.5px!important;font-weight:600!important;line-height:1!important;
  letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;
  box-shadow:none!important
}
button.bonjour-return-button:hover,.bonjour-return-button:hover{background:rgba(18,66,58,.90)!important}

/* Les fermetures placées en coin restent dans l'en-tête mais ne débordent jamais. */
.productivity-page-head .bonjour-return-button,
.modal-head .bonjour-return-button,
.side-tabs .bonjour-return-button,
.join-card .bonjour-return-button,
.regions-card .bonjour-return-button{justify-self:end!important;margin-left:auto!important}

@media (max-width:1366px){
  .local-media-btn{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;font-size:14px!important}
}
@media (max-width:720px){
  button.bonjour-return-button,
  .bonjour-return-button,
  body[data-bonjour-pwa="1"] button.bonjour-return-button,
  body[data-bonjour-pwa="1"] .bonjour-page-close.bonjour-return-button,
  body[data-bonjour-pwa="1"] .panel-close.bonjour-return-button,
  body[data-bonjour-pwa="1"] .modal-close.bonjour-return-button{
    min-width:68px!important;max-width:82px!important;height:32px!important;min-height:32px!important;
    max-height:32px!important;padding:0 8px!important;border-radius:8px!important;font-size:10px!important
  }
  .room-header .header-actions{gap:5px!important}
  .room-header .header-actions #inviteBtn{min-width:82px!important;height:40px!important;min-height:40px!important;padding:0 10px!important;font-size:11px!important}
  .room-header .header-actions #toggleParticipantsBtn{height:40px!important;min-height:40px!important;padding:0 10px!important}
  .room-view .control-bar .center-controls{gap:4px!important}
  .room-view .control-bar .control-button{margin:0!important}
  .local-media-controls{gap:3px!important;padding:3px!important}
  .local-media-btn{width:29px!important;height:29px!important;min-width:29px!important;min-height:29px!important;font-size:13px!important}
}

/* Pages qui possèdent déjà un bouton de fermeture en haut à droite :
   celui-ci devient l'unique Retour. L'ancien lien Retour interne est supprimé. */
.bonjour-mobile-page-shell{position:relative!important}
.bonjour-mobile-page-shell>.bonjour-page-close.bonjour-return-button{
  position:absolute!important;top:14px!important;right:14px!important;left:auto!important;bottom:auto!important;z-index:20!important
}
  /* 1.20.41 : ancienne règle de masquage supprimée — le Retour canonique reste visible. */
@media(max-width:720px){
  .bonjour-mobile-page-shell>.bonjour-page-close.bonjour-return-button{top:12px!important;right:12px!important}
}

/* Dock final : placements stables même quand les commandes locales quittent le dock. */
#liveCameraBtn{display:none!important}
.control-bar #mediaControls{grid-column:1!important}
.control-bar .center-controls{grid-column:2!important}
.control-bar .right-controls{grid-column:3!important}
.control-bar .center-controls{justify-content:center!important}
.control-bar .right-controls{justify-content:flex-end!important}



/* BONJOUR OFFICIAL SYMBOL — 30/09/2026
   Fenêtre Nouveautés : symbole SVG officiel fourni par le projet. */
#whatsNewModal .whats-new-logo-panel{min-height:116px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:2px 12px!important}
#whatsNewModal .whats-new-logo{display:block!important;width:auto!important;height:108px!important;max-width:72px!important;max-height:108px!important;object-fit:contain!important;margin:0 auto!important;filter:drop-shadow(0 10px 18px rgba(0,0,0,.28))!important}
@media (max-width:760px){#whatsNewModal .whats-new-logo-panel{min-height:98px!important;padding:0 10px!important}#whatsNewModal .whats-new-logo{height:90px!important;max-height:90px!important;max-width:54px!important}}
@media (min-width:761px) and (max-width:1180px){#whatsNewModal .whats-new-logo-panel{min-height:108px!important}#whatsNewModal .whats-new-logo{height:100px!important;max-height:100px!important;max-width:62px!important}}


/* BONJOUR UI CONTRACT 1.20.41 / HUB 20.10.23 / SATELLITE 20.7.19
   Contrat transversal vérifié : navigation unique, largeur contenue, densité commune. */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden!important}
body{min-width:0}
.view,.app-shell,.home-card,.regions-card,.network-card,.streaming-shell,.prejoin-layout,.join-card,
.transfer-page-shell,.transfer-main-card,.productivity-shell,.invite-modal,.lobby-card,.admin-room-modal,
.schedule-meeting-modal,.availability-modal,.contribution-modal,.windows-download-modal,.my-bonjour-modal{
  min-width:0!important;box-sizing:border-box!important
}

/* Un seul composant Retour, toujours au coin supérieur droit des pages. */
.bonjour-page-return{
  position:absolute!important;top:16px!important;right:16px!important;left:auto!important;bottom:auto!important;
  z-index:60!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:86px!important;min-width:86px!important;max-width:86px!important;height:36px!important;min-height:36px!important;max-height:36px!important;
  margin:0!important;padding:0 10px!important;border:1px solid rgba(207,224,217,.14)!important;border-radius:10px!important;
  background:rgba(9,48,41,.92)!important;color:#edf4f1!important;font-size:11px!important;font-weight:700!important;line-height:1!important;
  white-space:nowrap!important;overflow:hidden!important;box-shadow:none!important;transform:none!important
}
.bonjour-page-return:hover{background:rgba(15,68,59,.96)!important}
.regions-card,.network-card,.streaming-shell,.join-card,.transfer-main-card,.invite-modal,.productivity-shell{position:relative!important}
.page-head,.regions-page-head,.network-page-head,.streaming-head,.productivity-page-head,.modal-head{position:relative!important;min-width:0!important}
.page-head>.bonjour-page-return,.regions-page-head>.bonjour-page-return,.network-page-head>.bonjour-page-return,
.streaming-head>.bonjour-page-return,.productivity-page-head>.bonjour-page-return,.modal-head>.bonjour-page-return{
  top:0!important;right:0!important
}
/* Les boutons Retour ajoutés dans une modale-page se calent sur la carte et non le viewport. */
.invite-modal>.bonjour-page-return,.transfer-main-card>.bonjour-page-return,.join-card>.bonjour-page-return{top:16px!important;right:16px!important}
/* Réserver la place du retour dans les têtes sans élargir la page. */
.regions-page-head>div:first-of-type,.network-page-head>div:first-of-type,.streaming-head>div:first-of-type,
.modal-head>div:first-child,.my-bonjour-head,.windows-download-head{
  min-width:0!important;padding-right:104px!important
}

/* Aucun écran, carte, formulaire ou modal ne peut dépasser la largeur disponible. */
.view{width:100%!important;max-width:100vw!important;overflow-x:hidden!important}
.regions-card,.network-card,.streaming-shell,.prejoin-layout,.join-card,.transfer-page-shell,.transfer-main-card,
.productivity-shell,.invite-modal,.lobby-card,.admin-room-modal,.schedule-meeting-modal,.availability-modal,
.contribution-modal,.windows-download-modal,.my-bonjour-modal{
  width:min(100%,var(--bonjour-page-max,1180px))!important;max-width:calc(100vw - 24px)!important;margin-left:auto!important;margin-right:auto!important
}
.modal-backdrop,.productivity-modal{max-width:100vw!important;overflow-x:hidden!important}
input,select,textarea,button{max-width:100%}
img,video,canvas,iframe{max-width:100%}

/* Desktop/laptop/tablette : on conserve la finesse et les réserves latérales prévues. */
@media(min-width:721px){
  .regions-card,.join-card,.transfer-main-card,.productivity-shell,.invite-modal{--bonjour-page-max:980px}
  .network-card,.streaming-shell{--bonjour-page-max:1180px}
}
@media(max-width:720px){
  .home-view,.regions-view,.network-view,.streaming-view,.prejoin-view,.transfer-view,.productivity-view{
    width:100%!important;max-width:100vw!important;padding-left:12px!important;padding-right:12px!important;overflow-x:hidden!important
  }
  .regions-card,.network-card,.streaming-shell,.prejoin-layout,.join-card,.transfer-page-shell,.transfer-main-card,
  .productivity-shell,.invite-modal,.lobby-card,.admin-room-modal,.schedule-meeting-modal,.availability-modal,
  .contribution-modal,.windows-download-modal,.my-bonjour-modal{
    width:100%!important;max-width:100%!important;min-width:0!important;margin-left:auto!important;margin-right:auto!important
  }
  .bonjour-page-return{top:12px!important;right:12px!important;width:82px!important;min-width:82px!important;max-width:82px!important;height:34px!important;min-height:34px!important;max-height:34px!important;font-size:10.5px!important;padding:0 8px!important;border-radius:9px!important}
  .page-head>.bonjour-page-return,.regions-page-head>.bonjour-page-return,.network-page-head>.bonjour-page-return,
  .streaming-head>.bonjour-page-return,.productivity-page-head>.bonjour-page-return,.modal-head>.bonjour-page-return{top:0!important;right:0!important}
  .regions-page-head>div:first-of-type,.network-page-head>div:first-of-type,.streaming-head>div:first-of-type,
  .modal-head>div:first-child,.my-bonjour-head,.windows-download-head{padding-right:94px!important}
  .page-head h2,.regions-page-head h2,.network-page-head h2,.streaming-head h2,.productivity-page-head h2,.modal-head h3{overflow-wrap:anywhere}
}

/* 1.20.41 — le formulaire de programmation possède un seul Retour, dans son en-tête. */
#backAgendaFromScheduleBtn{display:none!important}
/* 1.20.41 — correctifs issus de l'audit géométrique multi-écrans. */
.join-card>#backHomeBtn.bonjour-page-return{margin:0!important;right:16px!important;left:auto!important;top:16px!important}
.lobby-card{position:relative!important;padding-top:64px!important}
.lobby-card>.bonjour-page-return{top:16px!important;right:16px!important;left:auto!important;margin:0!important}
.lobby-actions{grid-template-columns:1fr!important}

.network-note,.network-note strong,.network-note span{min-width:0!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
@media(max-width:720px){.join-card>#backHomeBtn.bonjour-page-return{right:12px!important;top:12px!important}}
@media(max-width:720px){.lobby-card{padding-top:58px!important}.lobby-card>.bonjour-page-return{top:12px!important;right:12px!important}}



/* BONJOUR — En-têtes mobiles Windows / Mon Bonjour. */
@media (max-width:720px){
  /* Sur téléphone, l'icône décorative ne doit pas voler la largeur du vrai contenu. */
  body[data-bonjour-pwa="1"] #windowsDownloadModal .windows-logo,
  body[data-bonjour-pwa="1"] #myBonjourModal .my-bonjour-symbol{display:none!important}
  body[data-bonjour-pwa="1"] #windowsDownloadModal .windows-download-hero,
  body[data-bonjour-pwa="1"] #myBonjourModal .my-bonjour-head{
    display:block!important;grid-template-columns:1fr!important;gap:0!important;padding-right:94px!important;min-width:0!important;
  }
  body[data-bonjour-pwa="1"] #windowsDownloadModal .windows-download-hero>div,
  body[data-bonjour-pwa="1"] #myBonjourModal .my-bonjour-head>div{min-width:0!important}
}


/* BONJOUR — CITATION D'ACCUEIL / HALO LATÉRAL — 30/09/2026
   Visible sur laptop/desktop et tablettes disposant réellement de l'espace latéral.
   Le halo se place juste au-dessus du slider ; le menu et la citation restent au-dessus. */
.bonjour-home-quote{display:none}
@media (min-width:900px) and (min-height:600px), (min-width:760px) and (min-height:700px){
  .home-view{position:relative!important;isolation:isolate!important}
  .home-view::before{
    content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:linear-gradient(90deg,
      rgba(2,13,11,.42) 0%,
      rgba(3,18,15,.28) 18%,
      rgba(4,24,20,.14) 38%,
      rgba(5,30,25,.055) 55%,
      rgba(5,30,25,0) 76%);
  }
  .home-card{position:relative!important;z-index:2!important}
  .bonjour-home-quote{
    position:absolute;z-index:2;top:50%;left:clamp(600px,39vw,760px);right:clamp(28px,5vw,96px);
    transform:translateY(-50%);display:flex;flex-direction:column;justify-content:center;
    max-width:1120px;margin:0 auto;pointer-events:none;text-align:center;
    text-shadow:0 3px 22px rgba(0,0,0,.34);
  }
  .bonjour-home-quote-text{
    margin:0;font-family:var(--bonjour-display-font);font-size:clamp(28px,3.1vw,60px);font-weight:700;
    line-height:1.075;letter-spacing:-.025em;text-wrap:balance;
  }
  .bonjour-home-quote-white{color:#fff}
  .bonjour-home-quote-gold{
    display:inline;background:linear-gradient(180deg,#ffd45a 0%,#ffc43d 48%,#ffae1f 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#ddb551;
    filter:drop-shadow(0 4px 13px rgba(217,174,55,.13));
  }
  .bonjour-home-quote-author{
    align-self:flex-end;margin:clamp(12px,1.3vw,22px) clamp(2px,.8vw,12px) 0 0;
    color:#fff;font-family:var(--bonjour-display-font);
    font-size:clamp(13px,1.02vw,19px);font-weight:400;line-height:1.2;letter-spacing:.005em;
    opacity:.92;text-align:right;text-shadow:0 2px 14px rgba(0,0,0,.42);
  }
}
@media (min-width:900px) and (max-width:1100px) and (min-height:600px){
  .bonjour-home-quote{left:590px;right:24px}
  .bonjour-home-quote-text{font-size:clamp(23px,2.65vw,30px);line-height:1.08}
  .bonjour-home-quote-author{font-size:12.5px;margin-top:11px}
}
/* Tablettes portrait : même principe, mais le texte s'affine pour rester dans la zone libre sans toucher le menu. */
@media (min-width:760px) and (max-width:899px) and (min-height:700px){
  .bonjour-home-quote{left:560px;right:16px}
  /* Sur tablette portrait, la bulle lumineuse passe derrière la citation.
     Le contraste est protégé LOCALement sans assombrir la photo globale. */
  .bonjour-home-quote-copy{padding:14px 9px;border-radius:13px;border:1px solid rgba(255,211,98,.17);background:linear-gradient(145deg,rgba(5,30,26,.86),rgba(3,18,16,.70));box-shadow:0 12px 28px rgba(0,0,0,.25)}
  .bonjour-home-quote-text{font-size:clamp(18px,2.45vw,22px);line-height:1.1;letter-spacing:-.018em;text-shadow:0 2px 10px rgba(0,0,0,.70)}
  .bonjour-home-quote-author{font-size:10.5px;margin-top:9px;margin-right:2px}
}


/* BONJOUR PRESENTER — document adaptatif + vrai plein écran — 30/09/2026
   Le format du document pilote l'aide d'orientation. Aucun PDF/PPTX n'impose le paysage. */
.room-view.broadcast-mode .broadcast-rotate-hint{display:none!important}

/* Suggestion discrète UNIQUEMENT pour un document réellement horizontal reçu sur téléphone portrait. */
@media (max-width:760px) and (orientation:portrait){
  .room-view.broadcast-mode .broadcast-stage.presenter-active.presenter-guest.presenter-document-landscape .broadcast-rotate-hint{
    display:flex!important;position:absolute!important;left:50%!important;top:auto!important;
    bottom:calc(66px + env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;
    width:auto!important;max-width:calc(100% - 28px)!important;min-width:0!important;
    align-items:center!important;justify-content:center!important;gap:7px!important;
    padding:7px 10px!important;border-radius:10px!important;background:rgba(3,16,14,.88)!important;
    border:1px solid rgba(126,224,209,.18)!important;box-shadow:0 10px 30px rgba(0,0,0,.30)!important;
    pointer-events:auto!important;white-space:normal!important
  }
  .room-view.broadcast-mode .broadcast-stage.presenter-active.presenter-guest.presenter-document-landscape .broadcast-rotate-hint>span{
    font-size:17px!important;line-height:1!important;flex:0 0 auto!important
  }
  .room-view.broadcast-mode .broadcast-stage.presenter-active.presenter-guest.presenter-document-landscape .broadcast-rotate-hint strong{
    font-size:10px!important;line-height:1.2!important;margin:0!important
  }
  .room-view.broadcast-mode .broadcast-stage.presenter-active.presenter-guest.presenter-document-landscape .broadcast-rotate-hint small{
    display:none!important
  }
}

/* Le plein écran de Presenter remplit réellement la scène sur Web App, iOS/Android, tablette, HUB et Satellite. */
.broadcast-stage:fullscreen.presenter-active,
.broadcast-stage:-webkit-full-screen.presenter-active,
.room-view.broadcast-pseudo-fullscreen .broadcast-stage.presenter-active,
.room-view.desktop-broadcast-fullscreen .broadcast-stage.presenter-active{
  width:100vw!important;height:100dvh!important;min-height:100dvh!important;max-width:none!important;max-height:none!important;
  border:0!important;border-radius:0!important;margin:0!important;padding:0!important
}
.broadcast-stage:fullscreen.presenter-active .presenter-stage,
.broadcast-stage:-webkit-full-screen.presenter-active .presenter-stage,
.room-view.broadcast-pseudo-fullscreen .broadcast-stage.presenter-active .presenter-stage,
.room-view.desktop-broadcast-fullscreen .broadcast-stage.presenter-active .presenter-stage{
  inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
  border-radius:0!important;margin:0!important;padding:0!important
}
.broadcast-stage:fullscreen.presenter-active .presenter-frame,
.broadcast-stage:-webkit-full-screen.presenter-active .presenter-frame,
.room-view.broadcast-pseudo-fullscreen .broadcast-stage.presenter-active .presenter-frame,
.room-view.desktop-broadcast-fullscreen .broadcast-stage.presenter-active .presenter-frame,
.broadcast-stage:fullscreen.presenter-active .presenter-pptx-host,
.broadcast-stage:-webkit-full-screen.presenter-active .presenter-pptx-host,
.room-view.broadcast-pseudo-fullscreen .broadcast-stage.presenter-active .presenter-pptx-host,
.room-view.desktop-broadcast-fullscreen .broadcast-stage.presenter-active .presenter-pptx-host,
.broadcast-stage:fullscreen.presenter-active .presenter-canvas,
.broadcast-stage:-webkit-full-screen.presenter-active .presenter-canvas,
.room-view.broadcast-pseudo-fullscreen .broadcast-stage.presenter-active .presenter-canvas,
.room-view.desktop-broadcast-fullscreen .broadcast-stage.presenter-active .presenter-canvas,
.broadcast-stage:fullscreen.presenter-active .presenter-pdf-canvas,
.broadcast-stage:-webkit-full-screen.presenter-active .presenter-pdf-canvas,
.room-view.broadcast-pseudo-fullscreen .broadcast-stage.presenter-active .presenter-pdf-canvas,
.room-view.desktop-broadcast-fullscreen .broadcast-stage.presenter-active .presenter-pdf-canvas{
  max-width:none!important;max-height:none!important
}
html.bonjour-broadcast-pseudo-fullscreen,html.bonjour-broadcast-pseudo-fullscreen body{overflow:hidden!important}
html.bonjour-broadcast-pseudo-fullscreen .room-view.broadcast-mode{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;z-index:2147483000!important;background:#000!important}
html.bonjour-broadcast-pseudo-fullscreen .room-view.broadcast-mode .room-body,
html.bonjour-broadcast-pseudo-fullscreen .room-view.broadcast-mode .stage-wrap{width:100%!important;height:100%!important;min-height:0!important;padding:0!important;margin:0!important}

/* BONJOUR — Programmer une réunion — contrat responsive source 1.20.46.
   La page partage désormais les mêmes métriques que Mon agenda : alignements, champs et actions. */
@media (max-width:720px){
  #scheduleMeetingModal.modal-backdrop{
    place-items:start center!important;align-items:start!important;justify-items:center!important;
    overflow:hidden!important;padding:max(var(--bonjour-agenda-gutter),env(safe-area-inset-top)) var(--bonjour-agenda-gutter) max(var(--bonjour-agenda-gutter),env(safe-area-inset-bottom))!important;box-sizing:border-box!important
  }
  #scheduleMeetingModal .schedule-meeting-modal{
    width:100%!important;max-width:560px!important;
    max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))!important;
    margin:0 auto!important;padding:var(--bonjour-agenda-pad-x)!important;border-radius:var(--bonjour-agenda-radius)!important;
    overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;box-sizing:border-box!important
  }
  #scheduleMeetingModal .modal-head{position:relative!important;display:block!important;min-height:42px!important;padding-right:88px!important;margin:0 0 8px!important}
  #scheduleMeetingModal .modal-head>div:first-child{min-width:0!important;padding-right:0!important}
  #scheduleMeetingModal .modal-head h2,#scheduleMeetingModal .modal-head h3{font-size:1.28rem!important;line-height:1.08!important;margin:2px 0 3px!important;letter-spacing:-.025em!important}
  #scheduleMeetingModal .modal-head .eyebrow{font-size:.57rem!important;line-height:1.2!important;margin:0 0 4px!important}
  #scheduleMeetingModal .agenda-modal-subtitle{font-size:.72rem!important;line-height:1.42!important;margin:0 0 10px!important;color:#9fb2ac!important}
  #scheduleMeetingModal #closeScheduleMeetingBtn{position:absolute!important;right:0!important;top:0!important;min-width:80px!important;height:35px!important;min-height:35px!important;padding:0 9px!important;font-size:.70rem!important;border-radius:9px!important}
  #scheduleMeetingModal .schedule-meeting-form{gap:9px!important;min-width:0!important}
  #scheduleMeetingModal .schedule-grid{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;min-width:0!important;width:100%!important}
  #scheduleMeetingModal .schedule-grid>*,#scheduleMeetingModal .settings-label{min-width:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important}
  #scheduleMeetingModal .settings-label{font-size:var(--bonjour-agenda-label-size)!important;line-height:1.22!important;gap:5px!important;margin:0!important;color:#c2d0cb!important}
  #scheduleMeetingModal input,#scheduleMeetingModal select,#scheduleMeetingModal textarea{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;line-height:1.2!important;border-radius:10px!important;font-size:var(--bonjour-agenda-field-size)!important}
  #scheduleMeetingModal input,#scheduleMeetingModal select{height:var(--bonjour-agenda-control-h)!important;min-height:var(--bonjour-agenda-control-h)!important;padding:0 11px!important}
  #scheduleMeetingModal textarea{min-height:76px!important;padding:9px 11px!important;resize:vertical!important}
  #scheduleMeetingModal input::placeholder,#scheduleMeetingModal textarea::placeholder{font-size:inherit!important;line-height:inherit!important}
  #scheduleStart{
    display:block!important;inline-size:100%!important;width:100%!important;max-inline-size:100%!important;max-width:100%!important;min-inline-size:0!important;min-width:0!important;
    overflow:hidden!important;-webkit-appearance:none!important;appearance:none!important;padding:0 10px!important;
    font-size:var(--bonjour-agenda-field-size)!important;font-weight:500!important;line-height:1.15!important;letter-spacing:-.008em!important;font-variant-numeric:tabular-nums!important;-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important
  }
  #scheduleStart::-webkit-date-and-time-value{min-width:0!important;width:auto!important;max-width:100%!important;margin:0!important;text-align:left!important;font:inherit!important;line-height:1.15!important}
  #scheduleStart::-webkit-datetime-edit{display:flex!important;align-items:center!important;min-width:0!important;width:auto!important;max-width:calc(100% - 24px)!important;padding:0!important;font:inherit!important;line-height:1.15!important;overflow:hidden!important}
  #scheduleStart::-webkit-datetime-edit-fields-wrapper{display:flex!important;align-items:center!important;min-width:0!important;width:auto!important;max-width:100%!important;font:inherit!important;line-height:1.15!important;overflow:hidden!important}
  #scheduleStart::-webkit-calendar-picker-indicator{flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0 0 0 4px!important;padding:0!important}
  #scheduleMeetingModal .schedule-timezone-note{font-size:.65rem!important;line-height:1.38!important;padding:8px 10px!important;margin:0!important}
  /* Le formulaire utilise settings-actions : l'ancien ciblage modal-actions laissait le bouton primaire avec sa marge globale. */
  #scheduleMeetingModal .settings-actions{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin:1px 0 0!important}
  #scheduleMeetingModal .settings-actions button{width:100%!important;min-height:40px!important;height:40px!important;margin:0!important;padding:0 12px!important;font-size:.74rem!important;line-height:1!important;border-radius:10px!important}
}
@media (min-width:721px) and (max-width:1024px) and (pointer:coarse){
  #scheduleStart,#scheduleStart::-webkit-date-and-time-value,#scheduleStart::-webkit-datetime-edit,#scheduleStart::-webkit-datetime-edit-fields-wrapper{font-size:.86rem!important;font-weight:500!important;line-height:1.15!important;letter-spacing:-.006em!important}
}
}


/* BONJOUR BRIDGE 1.20.50 — NAVIGATEUR / LIENS / VIEWPORT VISUEL
   Les contenus diffusés ne passent plus sous le dock du salon et Safari mobile
   suit la hauteur réellement visible plutôt que le layout viewport historique. */
:root{--bonjour-visible-height:100dvh;--bonjour-visible-width:100vw}
@media (max-width:760px){
  body[data-bonjour-pwa="1"] .app-shell{min-height:var(--bonjour-visible-height,100dvh)!important}
  body[data-bonjour-pwa="1"] .room-view{
    height:var(--bonjour-visible-height,100dvh)!important;
    min-height:var(--bonjour-visible-height,100dvh)!important;
    max-height:var(--bonjour-visible-height,100dvh)!important;
  }
  /* En réception d'un écran, document, page ou présentation, le dock garde sa
     propre bande. L'image n'est plus rendue derrière les commandes. */
  body[data-bonjour-pwa="1"] .room-view.broadcast-mode:not(.broadcast-pseudo-fullscreen):not(.desktop-broadcast-fullscreen) .room-body{
    height:var(--bonjour-visible-height,100dvh)!important;
    min-height:0!important;
    padding-bottom:calc(66px + env(safe-area-inset-bottom))!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  body[data-bonjour-pwa="1"] .room-view.broadcast-mode:not(.broadcast-pseudo-fullscreen):not(.desktop-broadcast-fullscreen) .stage-wrap{
    height:100%!important;min-height:0!important;padding-bottom:6px!important;box-sizing:border-box!important;
  }
  body[data-bonjour-pwa="1"] .room-view.broadcast-mode:not(.broadcast-pseudo-fullscreen):not(.desktop-broadcast-fullscreen) .broadcast-stage{
    max-height:100%!important;height:100%!important;min-height:0!important;
  }
  body[data-bonjour-pwa="1"] .room-view.broadcast-mode .control-bar{
    bottom:max(6px,env(safe-area-inset-bottom))!important;
  }
}


/* BONJOUR — DIFFUSION GEOMETRY CORE
   HUB 20.10.42 / Bridge 1.20.54 / Satellite 20.7.29
   Une seule géométrie de scène pour PC, laptop, tablette, smartphone et PWA.
   La scène utilise la zone réellement visible, respecte les safe-areas et réserve
   physiquement la place du dock Bonjour. Aucun contenu diffusé ne doit être rogné. */
:root{
  --bonjour-visible-height:100dvh;
  --bonjour-visible-width:100vw;
  --bonjour-controlbar-height:58px;
  --bonjour-diffusion-bottom-clearance:76px;
  --bonjour-diffusion-gutter:clamp(6px,1vw,14px);
}

.room-view.broadcast-mode{
  width:min(100%,var(--bonjour-visible-width,100vw))!important;
  height:var(--bonjour-visible-height,100dvh)!important;
  min-height:0!important;
  max-height:var(--bonjour-visible-height,100dvh)!important;
  max-width:100vw!important;
  overflow:hidden!important;
  background:#000!important;
}
.room-view.broadcast-mode .room-body{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  position:relative!important;
}
.room-view.broadcast-mode:not(.broadcast-pseudo-fullscreen):not(.desktop-broadcast-fullscreen) .stage-wrap{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  padding:
    max(var(--bonjour-diffusion-gutter),env(safe-area-inset-top))
    max(var(--bonjour-diffusion-gutter),env(safe-area-inset-right))
    max(var(--bonjour-diffusion-bottom-clearance),calc(var(--bonjour-diffusion-gutter) + env(safe-area-inset-bottom)))
    max(var(--bonjour-diffusion-gutter),env(safe-area-inset-left))!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:#000!important;
}
.room-view.broadcast-mode:not(.broadcast-pseudo-fullscreen):not(.desktop-broadcast-fullscreen) .broadcast-stage{
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
  contain:layout paint!important;
  background:#000!important;
}
.room-view.broadcast-mode .broadcast-media,
.room-view.broadcast-mode .presenter-stage,
.room-view.broadcast-mode .presenter-frame,
.room-view.broadcast-mode .presenter-pptx-host,
.room-view.broadcast-mode .presenter-canvas,
.room-view.broadcast-mode .presenter-pdf-canvas{
  max-width:100%!important;
  max-height:100%!important;
}
.room-view.broadcast-mode .broadcast-media{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  clip-path:none!important;
  background:#000!important;
}
.room-view.broadcast-mode .presenter-stage{
  left:0!important;
  right:0!important;
  width:100%!important;
  overflow:hidden!important;
}
.room-view.broadcast-mode .presenter-frame,
.room-view.broadcast-mode .presenter-pptx-host,
.room-view.broadcast-mode .presenter-canvas,
.room-view.broadcast-mode .presenter-pdf-canvas{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* Barre haute : jamais au-delà des bords, même avec Arrêter/Inviter/Chat présents. */
.room-view.broadcast-mode .broadcast-topbar{
  top:max(6px,env(safe-area-inset-top))!important;
  left:max(6px,env(safe-area-inset-left))!important;
  right:max(6px,env(safe-area-inset-right))!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start!important;
  gap:8px!important;
  overflow:visible!important;
}
.room-view.broadcast-mode .broadcast-status{
  min-width:0!important;
  max-width:100%!important;
  width:max-content!important;
  justify-self:start!important;
  padding:7px 10px!important;
}
.room-view.broadcast-mode .broadcast-status>div{min-width:0!important}
.room-view.broadcast-mode .broadcast-status strong{
  max-width:min(46vw,560px)!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.room-view.broadcast-mode .broadcast-actions{
  min-width:0!important;
  max-width:100%!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:5px!important;
  padding:0!important;
}
.room-view.broadcast-mode .broadcast-overlay-button,
.room-view.broadcast-mode .broadcast-stop-button{
  flex:0 0 auto!important;
  min-height:36px!important;
  max-width:100%!important;
  padding:0 10px!important;
  white-space:nowrap!important;
}

/* Dock : centré dans la largeur réellement visible, jamais hors écran. */
.room-view.broadcast-mode .control-bar{
  left:50%!important;
  right:auto!important;
  bottom:max(6px,env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  width:min(980px,calc(var(--bonjour-visible-width,100vw) - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right))))!important;
  max-width:calc(100% - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right)))!important;
  overflow:hidden!important;
}

/* Tablette / laptop compact : réduire les libellés avant de rogner l'interface. */
@media (max-width:1180px){
  .room-view.broadcast-mode .broadcast-status small{display:none!important}
  .room-view.broadcast-mode .broadcast-overlay-button span:not(.mini-badge){display:none!important}
  .room-view.broadcast-mode .broadcast-overlay-button{width:38px!important;padding:0!important;justify-content:center!important}
  .room-view.broadcast-mode .broadcast-stop-button{padding:0 9px!important}
  .room-view.broadcast-mode .broadcast-status strong{max-width:min(42vw,420px)!important}
}

/* Tablette portrait / grand smartphone : la scène reste intégralement visible. */
@media (max-width:900px){
  :root{--bonjour-diffusion-gutter:6px}
  .room-view.broadcast-mode .broadcast-topbar{gap:5px!important}
  .room-view.broadcast-mode .broadcast-status{padding:6px 8px!important;border-radius:9px!important}
  .room-view.broadcast-mode .broadcast-status strong{font-size:10px!important;max-width:38vw!important}
  .room-view.broadcast-mode .broadcast-actions{gap:3px!important}
  .room-view.broadcast-mode .broadcast-overlay-button,
  .room-view.broadcast-mode .broadcast-stop-button{min-height:34px!important;font-size:10px!important}
  .room-view.broadcast-mode .broadcast-stop-button{padding:0 8px!important}
  .room-view.broadcast-mode .presenter-controls{
    max-width:calc(var(--bonjour-visible-width,100vw) - 16px)!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
}

@media (max-width:560px){
  .room-view.broadcast-mode .broadcast-status strong{max-width:34vw!important;font-size:9px!important}
  .room-view.broadcast-mode .broadcast-status small{display:none!important}
  .room-view.broadcast-mode .broadcast-overlay-button{width:32px!important;min-height:32px!important;border-radius:8px!important;font-size:10px!important}
  .room-view.broadcast-mode .broadcast-stop-button{min-height:32px!important;font-size:9px!important;padding:0 7px!important}
  .room-view.broadcast-mode .control-bar{
    width:calc(var(--bonjour-visible-width,100vw) - max(8px,env(safe-area-inset-left)) - max(8px,env(safe-area-inset-right)))!important;
    max-width:calc(100% - max(8px,env(safe-area-inset-left)) - max(8px,env(safe-area-inset-right)))!important;
  }
}

/* Vrai plein écran : aucune réserve artificielle, média centré sans rognage. */
.room-view.broadcast-pseudo-fullscreen .stage-wrap,
.room-view.desktop-broadcast-fullscreen.broadcast-mode .stage-wrap,
.broadcast-stage:fullscreen,
.broadcast-stage:-webkit-full-screen{
  padding:0!important;
  margin:0!important;
}
.room-view.broadcast-pseudo-fullscreen .broadcast-stage,
.room-view.desktop-broadcast-fullscreen.broadcast-mode .broadcast-stage,
.broadcast-stage:fullscreen,
.broadcast-stage:-webkit-full-screen{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  border-radius:0!important;
}


/* ======================================================================
   BONJOUR · CARTE DE VISITE — Satellite / Web App
   ====================================================================== */
.home-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.home-top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.contact-card-home-button{position:relative;width:44px;height:44px;flex:0 0 44px;margin-top:2px;border:1px solid rgba(132,194,184,.22);border-radius:14px;background:rgba(10,41,36,.84);color:#dbe8e3;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.18);transition:border-color .18s ease,background .18s ease,transform .18s ease}.contact-card-home-button:hover,.contact-card-home-button:focus-visible{background:rgba(14,65,56,.94);border-color:rgba(106,213,181,.36);transform:translateY(-1px)}.contact-card-home-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.contact-card-view{position:relative;z-index:5;min-height:100vh;padding:26px 22px 38px;overflow:auto}.contact-card-shell{width:min(1180px,100%);margin:0 auto}.contact-card-pagebar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:16px}.contact-card-pagebar-title{text-align:center}.contact-card-pagebar-title h2{margin:2px 0 0;font-size:24px;font-weight:600;letter-spacing:-.03em}.contact-card-pagebar-actions{display:flex;gap:8px;justify-content:flex-end}.contact-card-quiet{height:38px;padding:0 13px;border:1px solid rgba(213,227,221,.16);border-radius:10px;background:rgba(8,33,29,.78);color:#dce8e4;font:700 11px/1 inherit;cursor:pointer}.contact-card-quiet:hover{background:rgba(15,58,50,.86)}.contact-card-presentation{display:grid;place-items:start center}.bonjour-contact-card{width:min(760px,100%);overflow:hidden;border-radius:22px;border:1px solid rgba(216,231,224,.13);background:linear-gradient(180deg,rgba(7,30,26,.98),rgba(5,22,19,.99));box-shadow:0 26px 70px rgba(0,0,0,.34);color:#eef5f2}.bonjour-contact-card.is-empty{min-height:360px;display:grid;place-items:center;padding:34px;text-align:center}.contact-card-empty strong{display:block;font-size:23px;margin-bottom:8px}.contact-card-empty p{color:#8da39c;margin:0 0 18px;line-height:1.55}.contact-card-empty button{min-height:42px}.contact-card-hero{position:relative;min-height:235px;background:linear-gradient(135deg,#0b3f3c 0%,#082a27 52%,#061c19 100%);background-size:cover;background-position:center;isolation:isolate}.contact-card-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,13,11,.08),rgba(3,16,13,.36) 68%,rgba(5,22,19,.94));z-index:-1}.contact-card-company-logo{position:absolute;left:24px;top:22px;max-width:150px;max-height:58px;object-fit:contain;object-position:left center;filter:drop-shadow(0 5px 16px rgba(0,0,0,.28))}.contact-card-profile-photo{position:absolute;left:26px;bottom:-54px;width:128px;height:150px;object-fit:cover;border-radius:15px;border:3px solid rgba(233,240,237,.92);box-shadow:0 15px 34px rgba(0,0,0,.33);background:#0b3f3c}.contact-card-profile-placeholder{position:absolute;left:26px;bottom:-54px;width:128px;height:150px;border-radius:15px;border:2px solid rgba(224,236,231,.24);display:grid;place-items:center;background:linear-gradient(145deg,#0b3f3c,#092c29);font-size:35px;font-weight:600;color:#d8e8e2;box-shadow:0 15px 34px rgba(0,0,0,.28)}.contact-card-main{padding:70px 28px 28px}.contact-card-name-line{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.contact-card-kicker{display:block;margin:0 0 7px;color:#819890;font-size:9px;font-weight:700;letter-spacing:.16em}.contact-card-identity h3{margin:0;font-size:36px;line-height:1.02;letter-spacing:-.045em;font-weight:600}.contact-card-identity h3 span{display:block}.contact-card-identity .last-name{color:#e6c777;margin-top:3px}.contact-card-role{margin:9px 0 0;font-size:14px;color:#d4dfdb}.contact-card-company{margin:3px 0 0;font-size:12px;color:#8fa69e;text-transform:uppercase;letter-spacing:.09em}.contact-card-bio{margin:20px 0 0;max-width:650px;color:#c4d2cd;line-height:1.58;font-size:13.5px;white-space:pre-line}.contact-card-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:22px}.contact-card-contact-item{min-width:0;display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid rgba(207,224,217,.1);border-radius:12px;background:rgba(16,53,47,.35);color:#eef5f2;text-decoration:none}.contact-card-contact-item:hover{background:rgba(19,71,62,.52)}.contact-card-contact-icon{width:28px;height:28px;flex:0 0 28px;border-radius:8px;display:grid;place-items:center;background:rgba(232,199,100,.08);color:#dfc474;font-size:12px}.contact-card-contact-copy{min-width:0}.contact-card-contact-copy small,.contact-card-contact-copy strong{display:block;overflow:hidden;text-overflow:ellipsis}.contact-card-contact-copy small{font-size:9px;color:#819890;text-transform:uppercase;letter-spacing:.08em}.contact-card-contact-copy strong{font-size:12px;margin-top:2px;white-space:normal;overflow-wrap:anywhere}.contact-card-socials{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.contact-card-social{height:34px;min-width:34px;padding:0 10px;border:1px solid rgba(207,224,217,.1);border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:rgba(8,34,29,.72);color:#d7e4df;text-decoration:none;font-size:10px;font-weight:600}.contact-card-social b{font-size:12px;color:#ebd58b}.contact-card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:22px}.contact-card-action{min-height:44px;border-radius:11px;border:1px solid rgba(207,224,217,.12);background:rgba(11,63,60,.56);color:#eef5f2;font-weight:600;font-size:11px;cursor:pointer;padding:8px 10px}.contact-card-action.primary{background:#0b3f3c;border-color:rgba(130,200,188,.25)}.contact-card-action.subtle{background:rgba(8,30,27,.74)}.contact-card-action:hover{filter:brightness(1.08)}.contact-card-extra{margin:24px 28px 28px;padding-top:22px;border-top:1px solid rgba(207,224,217,.1)}.contact-card-extra h4{font-size:12px;margin:0 0 10px;color:#e7efecef;text-transform:uppercase;letter-spacing:.08em}.contact-card-map{overflow:hidden;border-radius:14px;border:1px solid rgba(207,224,217,.11);background:#071d19}.contact-card-map iframe{display:block;width:100%;height:240px;border:0;filter:saturate(.82) contrast(.96)}.contact-card-map a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;color:#cfe0da;text-decoration:none;font-size:11px}.contact-card-google{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border:1px solid rgba(207,224,217,.1);border-radius:12px;background:rgba(255,255,255,.025);color:#eef5f2;text-decoration:none}.contact-card-google strong{display:block;font-size:13px}.contact-card-google small{display:block;color:#879e96;font-size:10px;margin-top:2px}.contact-card-google-score{font-size:16px;font-weight:700;color:#e1c777;white-space:nowrap}.contact-card-editor{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.72fr);gap:18px;align-items:start}.contact-card-form,.contact-card-live-preview{border:1px solid rgba(207,224,217,.11);border-radius:18px;background:rgba(5,25,22,.91);box-shadow:0 18px 46px rgba(0,0,0,.22)}.contact-card-form{padding:18px}.contact-card-form-section{padding:4px 0 18px;margin-bottom:14px;border-bottom:1px solid rgba(207,224,217,.08)}.contact-card-form-section:last-of-type{border-bottom:0}.contact-card-section-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:13px}.contact-card-section-head h3{margin:2px 0 0;font-size:17px}.contact-card-section-head p{margin:5px 0 0;color:#829890;font-size:10.5px;line-height:1.45;max-width:560px}.contact-card-section-head select{height:36px;border:1px solid rgba(207,224,217,.12);border-radius:9px;background:#082520;color:#dce8e4;padding:0 9px;font-size:11px}.contact-card-fields{display:grid;gap:10px}.contact-card-fields.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-card-fields .span-two{grid-column:1/-1}.contact-card-form label{display:block;color:#acbeb7;font-size:10px;font-weight:600}.contact-card-form input,.contact-card-form textarea,.contact-card-form select{width:100%;margin-top:6px;border:1px solid rgba(207,224,217,.12);border-radius:10px;background:#061d19;color:#eef5f2;outline:0;font:500 12px/1.35 inherit;box-sizing:border-box}.contact-card-form input{height:40px;padding:0 11px}.contact-card-form textarea{padding:10px 11px;resize:vertical;min-height:84px}.contact-card-form input:focus,.contact-card-form textarea:focus,.contact-card-form select:focus{border-color:rgba(103,181,167,.44);box-shadow:0 0 0 3px rgba(56,140,126,.08)}.contact-card-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:12px}.contact-card-media-picker{padding:10px;border:1px solid rgba(207,224,217,.09);border-radius:11px;background:rgba(9,38,33,.58)}.contact-card-media-picker>span,.contact-card-media-picker>small{display:block}.contact-card-media-picker button{width:100%;min-height:36px;margin:7px 0;border:1px solid rgba(207,224,217,.12);border-radius:8px;background:rgba(11,63,60,.44);color:#e7efec;font-size:10px;font-weight:600;cursor:pointer}.contact-card-media-picker.has-image button::after{content:" · ✓";color:#e1c777}.contact-card-media-picker small{font-size:9px;line-height:1.35;color:#728a82}.contact-card-editor-actions{display:flex;gap:8px;margin-top:12px}.contact-card-editor-actions button{min-height:42px}.contact-card-status{min-height:18px;color:#89b9ae;font-size:10.5px;margin:4px 0 0}.contact-card-live-preview{position:sticky;top:18px;padding:12px}.contact-card-live-preview>.eyebrow{display:block;margin:1px 2px 10px}.contact-card-live-preview .bonjour-contact-card{transform-origin:top center;box-shadow:none}.contact-card-live-preview .contact-card-actions,.contact-card-live-preview .contact-card-extra{display:none}.contact-card-live-preview .contact-card-hero{min-height:160px}.contact-card-live-preview .contact-card-main{padding:58px 18px 20px}.contact-card-live-preview .contact-card-profile-photo,.contact-card-live-preview .contact-card-profile-placeholder{left:18px;bottom:-46px;width:94px;height:110px;border-radius:12px}.contact-card-live-preview .contact-card-company-logo{left:18px;top:16px;max-width:112px;max-height:42px}.contact-card-live-preview .contact-card-identity h3{font-size:27px}.contact-card-live-preview .contact-card-contact-grid{grid-template-columns:1fr}.contact-card-live-preview .contact-card-socials{gap:5px}.contact-card-public-note{margin:18px 0 0;text-align:center;color:#81968f;font-size:10px}.contact-card-nfc-help{margin:8px 0 0;text-align:center;color:#71877f;font-size:9.5px}
@media(max-width:900px){.contact-card-view{padding:18px 14px 32px}.contact-card-editor{grid-template-columns:1fr}.contact-card-live-preview{position:static}.contact-card-live-preview .bonjour-contact-card{width:min(620px,100%);margin:0 auto}.contact-card-pagebar{grid-template-columns:auto 1fr auto}.contact-card-pagebar-title h2{font-size:21px}.contact-card-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bonjour-contact-card{width:min(720px,100%)}}
@media(max-width:620px){.home-topline{gap:8px}.home-top-actions{gap:6px}.contact-card-home-button,.bonjour-notification-button{width:40px!important;height:40px!important;flex-basis:40px!important;border-radius:12px!important}.contact-card-home-button svg{width:20px;height:20px}.contact-card-view{padding:max(10px,env(safe-area-inset-top)) 10px calc(24px + env(safe-area-inset-bottom))}.contact-card-pagebar{grid-template-columns:auto minmax(0,1fr) auto;gap:7px;margin:2px 0 10px}.contact-card-pagebar-title .eyebrow{font-size:7.5px}.contact-card-pagebar-title h2{font-size:17px}.contact-card-pagebar-actions{gap:4px}.contact-card-quiet{height:34px;padding:0 8px;border-radius:9px;font-size:9px}.bonjour-contact-card{border-radius:16px}.contact-card-hero{min-height:172px}.contact-card-company-logo{left:15px;top:14px;max-width:108px;max-height:42px}.contact-card-profile-photo,.contact-card-profile-placeholder{left:16px;bottom:-44px;width:92px;height:110px;border-radius:11px;border-width:2px}.contact-card-profile-placeholder{font-size:27px}.contact-card-main{padding:58px 16px 18px}.contact-card-name-line{display:block}.contact-card-identity h3{font-size:29px}.contact-card-role{font-size:12px;margin-top:7px}.contact-card-company{font-size:9.5px}.contact-card-bio{font-size:11.5px;line-height:1.52;margin-top:14px}.contact-card-contact-grid{grid-template-columns:1fr;gap:6px;margin-top:16px}.contact-card-contact-item{padding:9px 10px;border-radius:10px}.contact-card-contact-icon{width:26px;height:26px;flex-basis:26px}.contact-card-contact-copy strong{font-size:11px}.contact-card-socials{margin-top:13px}.contact-card-social{height:31px;min-width:31px;padding:0 8px;font-size:9px}.contact-card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:16px}.contact-card-action{min-height:40px;font-size:10px;border-radius:9px}.contact-card-extra{margin:18px 16px 20px;padding-top:16px}.contact-card-map iframe{height:190px}.contact-card-google{padding:11px 12px}.contact-card-google-score{font-size:14px}.contact-card-form{padding:12px;border-radius:14px}.contact-card-live-preview{padding:10px;border-radius:14px}.contact-card-section-head{margin-bottom:10px}.contact-card-section-head h3{font-size:15px}.contact-card-section-head p{font-size:9.5px}.contact-card-section-head select{height:34px;font-size:10px}.contact-card-fields.two-cols{grid-template-columns:1fr}.contact-card-fields .span-two{grid-column:auto}.contact-card-form input{height:38px;font-size:11px}.contact-card-form textarea{font-size:11px}.contact-card-media-grid{grid-template-columns:1fr}.contact-card-media-picker{padding:8px}.contact-card-media-picker button{min-height:34px;margin:5px 0}.contact-card-editor-actions{display:grid;grid-template-columns:1fr 1fr}.contact-card-editor-actions button{min-height:40px;height:40px;font-size:10px}.contact-card-live-preview{display:none}}


/* ======================================================================
   BONJOUR · CARTE DE VISITE 2 — présentation premium, unique et autonome
   ====================================================================== */
.contact-card-menu-action .action-icon{font-size:18px}
.contact-card-view.is-presentation{padding:0!important;background:#020706!important;min-height:100dvh;overflow-x:hidden;overflow-y:auto}
.contact-card-view.is-presentation .contact-card-shell{width:100%;max-width:none;margin:0}
.contact-card-view.is-presentation .contact-card-pagebar{display:none!important}
.contact-card-view.is-presentation .contact-card-presentation{display:block;width:100%;min-height:100dvh}
.contact-card-owner-back{position:fixed;z-index:45;top:max(16px,calc(env(safe-area-inset-top) + 8px));left:max(16px,calc(env(safe-area-inset-left) + 10px));width:42px;height:42px;border-radius:13px;border:1px solid rgba(239,245,242,.17);background:rgba(3,18,15,.74);backdrop-filter:blur(12px);color:#eff5f2;font-size:20px;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.contact-card-view.is-public-card .contact-card-owner-back{display:none!important}
.contact-card-presentation .bonjour-contact-card{width:min(820px,100%);min-height:100dvh;margin:0 auto;overflow:hidden;border:0;border-radius:0;background:#030908;box-shadow:none;color:#f4f7f5}
.contact-card-presentation .contact-card-hero{position:relative;min-height:330px;background:linear-gradient(135deg,#0b3f3c 0%,#082a27 48%,#04120f 100%);background-size:cover;background-position:center;isolation:isolate}
.contact-card-presentation .contact-card-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,7,6,.02),rgba(1,7,6,.15) 55%,#030908 99%);z-index:-1}
.contact-card-presentation .contact-card-company-logo{position:absolute;z-index:2;left:50%;top:max(24px,calc(env(safe-area-inset-top) + 14px));transform:translateX(-50%);max-width:min(210px,44vw);max-height:72px;object-fit:contain;filter:drop-shadow(0 8px 22px rgba(0,0,0,.36))}
.contact-card-presentation .contact-card-profile-photo,.contact-card-presentation .contact-card-profile-placeholder{position:absolute;z-index:3;left:50%;bottom:-142px;transform:translateX(-50%);width:clamp(190px,36vw,270px);aspect-ratio:.82;height:auto;object-fit:cover;object-position:center;border-radius:14px;border:1px solid rgba(238,244,241,.42);box-shadow:0 24px 56px rgba(0,0,0,.42);background:#0b3f3c}
.contact-card-presentation .contact-card-profile-placeholder{display:grid;place-items:center;font-size:54px;font-weight:600;color:#edf4f1;background:linear-gradient(145deg,#0b3f3c,#061d19)}
.contact-card-presentation .contact-card-main{padding:174px clamp(28px,6vw,70px) 56px;text-align:center}
.contact-card-presentation .contact-card-identity{max-width:690px;margin:0 auto}
.contact-card-presentation .contact-card-kicker{display:block;margin:0 0 14px;color:#a9bbb5;font-size:clamp(12px,1.4vw,16px);font-weight:700;letter-spacing:.2em}
.contact-card-presentation .contact-card-identity h3{margin:0;font-family:var(--bonjour-display-font);font-size:clamp(38px,6.1vw,66px);line-height:.98;letter-spacing:.015em;font-weight:600;text-transform:uppercase;color:#fff}
.contact-card-presentation .contact-card-identity h3 span{display:block;color:#fff}
.contact-card-presentation .contact-card-role{margin:15px 0 0;color:#dfc474;font-family:var(--bonjour-display-font);font-size:clamp(17px,2.4vw,25px);line-height:1.2;text-transform:uppercase;letter-spacing:.035em}
.contact-card-presentation .contact-card-company{margin:9px 0 0;color:#c5d0cc;font-size:clamp(11px,1.5vw,14px);font-weight:600;text-transform:uppercase;letter-spacing:.13em}
.contact-card-presentation .contact-card-bio{max-width:670px;margin:36px auto 0;color:#e4e9e7;font-size:clamp(15px,2.1vw,20px);line-height:1.8;white-space:pre-line;text-align:center}
.contact-card-presentation .contact-card-directs{display:flex;flex-direction:column;align-items:center;gap:15px;margin:42px auto 0;max-width:670px}
.contact-card-presentation .contact-card-direct{display:block;max-width:100%;text-align:center;text-decoration:none;color:#fff}
.contact-card-presentation .contact-card-direct small{display:block;margin-bottom:3px;color:#8fa49c;font-size:10px;font-weight:600;letter-spacing:.17em}
.contact-card-presentation .contact-card-direct strong{display:block;font-size:clamp(20px,3.2vw,31px);line-height:1.18;font-weight:600;overflow-wrap:anywhere}
.contact-card-presentation .contact-card-direct.email strong{font-size:clamp(16px,2.4vw,24px);color:#dfc474}
.contact-card-presentation .contact-card-direct.website strong{font-size:clamp(14px,2vw,20px);color:#c5d0cc}
.contact-card-presentation .contact-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:670px;margin:40px auto 0}
.contact-card-presentation .contact-card-action{min-height:64px;border-radius:15px;border:1px solid rgba(226,237,232,.17);background:rgba(7,34,29,.72);color:#f5f7f6;font-size:14px;font-weight:600;letter-spacing:.01em;padding:12px 16px;cursor:pointer}
.contact-card-presentation .contact-card-action.primary{background:#0b3f3c;border-color:rgba(126,192,180,.42);box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.contact-card-presentation .contact-card-action.subtle{min-height:50px;background:rgba(4,22,18,.78);font-size:12px}
.contact-card-presentation .contact-card-action:hover{filter:brightness(1.08)}
.contact-card-presentation .contact-card-section{max-width:670px;margin:54px auto 0;padding-top:40px;border-top:1px solid rgba(214,229,222,.13)}
.contact-card-presentation .contact-card-section-title>span,.contact-card-presentation .contact-card-review-eyebrow{display:block;color:#dce5e1;font-family:var(--bonjour-display-font);font-size:clamp(17px,2.4vw,23px);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.contact-card-presentation .contact-card-section-title p{margin:13px auto 20px;color:#c2cfca;font-size:14px;line-height:1.55;max-width:580px}
.contact-card-presentation .contact-card-map{overflow:hidden;border-radius:18px;border:1px solid rgba(219,231,226,.14);background:#071512;box-shadow:0 20px 46px rgba(0,0,0,.22)}
.contact-card-presentation .contact-card-map iframe{display:block;width:100%;height:330px;border:0;filter:none}
.contact-card-presentation .contact-card-map a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;color:#dce7e3;text-decoration:none;background:#071713;font-size:13px}
.contact-card-presentation .contact-card-map a strong{color:#dfc474;white-space:nowrap}
.contact-card-presentation .contact-card-reviews{text-align:center}
.contact-card-presentation .contact-card-stars{margin:18px 0 20px;color:#dfc474;font-size:27px;letter-spacing:.12em}
.contact-card-presentation .contact-card-stars small{display:block;margin-top:8px;color:#a7bab3;font-size:12px;letter-spacing:.02em}
.contact-card-presentation .contact-card-review-button{display:flex;align-items:center;justify-content:center;max-width:600px;min-height:64px;margin:22px auto 0;border-radius:15px;border:1px solid rgba(223,196,116,.42);background:#0b3f3c;color:#f8f8f4;text-decoration:none;font-size:15px;font-weight:700}
.contact-card-presentation .contact-card-social-section{padding-bottom:6px}
.contact-card-presentation .contact-card-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:0}
.contact-card-presentation .contact-card-social{width:58px;height:58px;min-width:58px;padding:0;border:1px solid rgba(219,231,226,.15);border-radius:14px;display:grid;place-items:center;background:#f3f5f4;color:#35413d;text-decoration:none}
.contact-card-presentation .contact-card-social b{font-size:23px;line-height:1;color:inherit}
.contact-card-presentation .contact-card-social:hover{transform:translateY(-1px);filter:brightness(.96)}
.contact-card-presentation .contact-card-nfc-help{display:none!important}
.contact-card-presentation .contact-card-empty{min-height:100dvh;display:grid;place-items:center;padding:40px 24px;text-align:center}
body.contact-card-public-mode{background:#020706!important}
body.contact-card-public-mode .bonjour-global-carousel,body.contact-card-public-mode #bonjourPwaInstall,body.contact-card-public-mode .bonjour-pwa-install,body.contact-card-public-mode #whatsNewModal{display:none!important}
body.contact-card-public-mode .app-shell{background:#020706!important}

@media(min-width:821px){.contact-card-view.is-presentation{padding:32px 18px!important}.contact-card-presentation .bonjour-contact-card{min-height:calc(100dvh - 64px);border-radius:24px;box-shadow:0 28px 90px rgba(0,0,0,.42)}.contact-card-presentation .contact-card-hero{border-radius:24px 24px 0 0}}
@media(max-width:620px){
  .contact-card-view.is-presentation{padding:0!important}
  .contact-card-presentation .bonjour-contact-card{width:100%;min-height:100dvh;border-radius:0!important}
  .contact-card-owner-back{width:39px;height:39px;border-radius:12px;top:max(12px,calc(env(safe-area-inset-top) + 6px));left:max(12px,calc(env(safe-area-inset-left) + 8px));font-size:18px}
  .contact-card-presentation .contact-card-hero{min-height:285px;background-position:center}
  .contact-card-presentation .contact-card-company-logo{top:max(18px,calc(env(safe-area-inset-top) + 10px));max-width:46vw;max-height:60px}
  .contact-card-presentation .contact-card-profile-photo,.contact-card-presentation .contact-card-profile-placeholder{bottom:-118px;width:clamp(170px,52vw,225px);border-radius:12px}
  .contact-card-presentation .contact-card-main{padding:144px 24px calc(42px + env(safe-area-inset-bottom))}
  .contact-card-presentation .contact-card-kicker{margin-bottom:11px;font-size:11px}
  .contact-card-presentation .contact-card-identity h3{font-size:clamp(34px,10.3vw,48px);line-height:1.02}
  .contact-card-presentation .contact-card-role{margin-top:11px;font-size:clamp(16px,5vw,20px)}
  .contact-card-presentation .contact-card-company{font-size:10px;line-height:1.5}
  .contact-card-presentation .contact-card-bio{margin-top:28px;font-size:15px;line-height:1.68}
  .contact-card-presentation .contact-card-directs{margin-top:32px;gap:13px}
  .contact-card-presentation .contact-card-direct strong{font-size:clamp(20px,6.2vw,27px)}
  .contact-card-presentation .contact-card-direct.email strong{font-size:clamp(15px,4.4vw,20px)}
  .contact-card-presentation .contact-card-actions{grid-template-columns:1fr 1fr;gap:9px;margin-top:32px}
  .contact-card-presentation .contact-card-action{min-height:58px;border-radius:13px;font-size:12px;padding:10px}
  .contact-card-presentation .contact-card-action.primary{grid-column:1/-1;min-height:62px;font-size:13px}
  .contact-card-presentation .contact-card-action.subtle{min-height:47px;font-size:11px}
  .contact-card-presentation .contact-card-section{margin-top:42px;padding-top:32px}
  .contact-card-presentation .contact-card-section-title>span,.contact-card-presentation .contact-card-review-eyebrow{font-size:17px}
  .contact-card-presentation .contact-card-map{border-radius:15px}
  .contact-card-presentation .contact-card-map iframe{height:285px}
  .contact-card-presentation .contact-card-map a{padding:13px 14px;font-size:12px}
  .contact-card-presentation .contact-card-review-button{min-height:58px;border-radius:13px;font-size:13px}
  .contact-card-presentation .contact-card-socials{gap:11px}
  .contact-card-presentation .contact-card-social{width:48px;height:48px;min-width:48px;border-radius:12px}
  .contact-card-presentation .contact-card-social b{font-size:20px}
}

/* ======================================================================
   BONJOUR · CARTE DE VISITE — FINITION CHARTE V20.7.33 / 1.20.57
   Correction de structure : finesse, profil carré, actions compactes,
   réseaux en ligne, configuration bornée au viewport.
   ====================================================================== */
.contact-card-view,.contact-card-shell,.contact-card-editor,.contact-card-form,.contact-card-form-section,.contact-card-media-grid,.contact-card-fields,.contact-card-section-head,.contact-card-live-preview{min-width:0;max-width:100%}
.contact-card-view{width:100%;max-width:100vw;overflow-x:hidden!important}
.contact-card-shell{width:min(1040px,100%)}
.contact-card-editor{grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:14px}
.contact-card-form,.contact-card-live-preview{border-radius:16px;border-color:rgba(215,229,223,.1);background:rgba(5,27,23,.92);box-shadow:0 15px 42px rgba(0,0,0,.2)}
.contact-card-form{width:100%;padding:16px}
.contact-card-form-section{padding:2px 0 16px;margin:0 0 14px}
.contact-card-section-head{flex-wrap:wrap}
.contact-card-section-head>div{min-width:0;flex:1 1 220px}
.contact-card-section-head select{flex:0 1 150px;max-width:100%;min-width:0}
.contact-card-form label{min-width:0}
.contact-card-form input,.contact-card-form textarea,.contact-card-form select{max-width:100%;min-width:0}
.contact-card-media-picker{min-width:0;overflow:hidden}
.contact-card-media-picker button{white-space:normal}

.contact-card-presentation{width:100%}
.contact-card-presentation .bonjour-contact-card{width:min(720px,100%);min-height:0;background:#04100e;border:1px solid rgba(216,231,224,.11);border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.32);overflow:hidden}
.contact-card-presentation .contact-card-hero{min-height:300px;background-position:center;background-size:cover}
.contact-card-presentation .contact-card-hero::after{background:linear-gradient(180deg,rgba(2,10,8,.01),rgba(2,10,8,.12) 54%,rgba(4,16,14,.96) 100%)}
.contact-card-presentation .contact-card-profile-photo,.contact-card-presentation .contact-card-profile-placeholder{bottom:-132px;width:264px;height:264px;aspect-ratio:1/1;border-radius:12px;border:1px solid rgba(241,246,244,.48);object-fit:cover;object-position:center;box-shadow:0 22px 54px rgba(0,0,0,.38)}
.contact-card-presentation .contact-card-main{padding:158px 34px 38px;text-align:center}
.contact-card-presentation .contact-card-kicker{margin-bottom:12px;color:#90a39c;font-size:10px;letter-spacing:.24em}
.contact-card-presentation .contact-card-identity h3{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:clamp(34px,5.1vw,52px);line-height:1.02;letter-spacing:-.035em;font-weight:600;text-transform:none}
.contact-card-presentation .contact-card-identity h3 .first-name{color:#d9b95e}
.contact-card-presentation .contact-card-identity h3 .last-name{color:#f4f7f5;margin-top:1px}
.contact-card-presentation .contact-card-role{margin:10px 0 0;color:#f1f5f3;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:clamp(14px,2vw,18px);font-weight:600;letter-spacing:0;text-transform:none}
.contact-card-presentation .contact-card-company{margin:7px 0 0;color:#d9b95e;font-size:clamp(10px,1.4vw,12px);font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.contact-card-presentation .contact-card-directs{gap:2px;margin:28px auto 0;max-width:620px}
.contact-card-presentation .contact-card-direct{line-height:1.15}
.contact-card-presentation .contact-card-direct small{display:none!important}
.contact-card-presentation .contact-card-direct strong{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:clamp(20px,3vw,28px);font-weight:600;line-height:1.16}
.contact-card-presentation .contact-card-direct.email strong{font-size:clamp(14px,2.1vw,19px);color:#d9b95e;font-weight:500}
.contact-card-presentation .contact-card-bio{margin:21px auto 0;max-width:570px;color:#dbe5e1;font-size:13px;line-height:1.62}
.contact-card-presentation .contact-card-website{display:inline-block;margin:13px auto 0;color:#aebdb7;text-decoration:none;font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.contact-card-presentation .contact-card-website:hover{color:#edf3f0}
.contact-card-presentation .contact-card-actions{display:grid;grid-template-columns:1fr;gap:7px;max-width:430px;margin:28px auto 0}
.contact-card-presentation .contact-card-action{display:flex;align-items:center;justify-content:center;width:100%;min-height:43px;height:43px;border-radius:11px;padding:0 14px;border:1px solid rgba(220,234,228,.16);font-size:12px;font-weight:600;letter-spacing:.005em;text-decoration:none}
.contact-card-presentation .contact-card-action.primary{background:#0b3f3c;border-color:rgba(131,194,184,.34);color:#f4f7f5;box-shadow:none}
.contact-card-presentation .contact-card-action.review{background:#eef1ed;border-color:#eef1ed;color:#0b3f3c}
.contact-card-presentation .contact-card-social-section{max-width:520px;margin:25px auto 0;padding:0;border:0}
.contact-card-presentation .contact-card-socials{display:flex;flex-wrap:nowrap;justify-content:center;gap:8px;margin:0;overflow-x:auto;scrollbar-width:none;padding:1px}
.contact-card-presentation .contact-card-socials::-webkit-scrollbar{display:none}
.contact-card-presentation .contact-card-social{width:40px;height:40px;min-width:40px;padding:0;border:1px solid rgba(220,232,227,.14);border-radius:10px;background:#f3f4f0;color:#171d1b;display:grid;place-items:center;box-shadow:none}.contact-card-presentation .contact-card-social:hover{transform:translateY(-1px);background:#fff}
.contact-card-presentation .contact-card-social svg{width:18px;height:18px;display:block;fill:currentColor;stroke:currentColor;stroke-width:1.7}
.contact-card-presentation .contact-card-social svg rect,.contact-card-presentation .contact-card-social svg circle:not(.fill){fill:none}
.contact-card-presentation .contact-card-social svg .fill{fill:currentColor;stroke:none}
.contact-card-presentation .contact-card-review-flow{max-width:430px;margin:18px auto 0;padding:9px 12px;border-top:1px solid rgba(217,230,224,.1);border-bottom:1px solid rgba(217,230,224,.1);display:flex;align-items:center;justify-content:center;gap:8px;color:#c6d1cd;text-decoration:none;font-size:10.5px;line-height:1.2}
.contact-card-presentation .contact-card-review-stars{color:#d9b95e;font-size:10px;letter-spacing:.05em;white-space:nowrap}
.contact-card-presentation .contact-card-review-copy{color:#afbeb8}
.contact-card-presentation .contact-card-review-arrow{color:#d9b95e;font-size:12px}
.contact-card-presentation .contact-card-location{max-width:520px;margin:22px auto 0}
.contact-card-presentation .contact-card-map{position:relative;overflow:hidden;border-radius:13px;border:1px solid rgba(219,231,226,.12);background:#071512;box-shadow:none}
.contact-card-presentation .contact-card-map iframe{display:block;width:100%;height:205px;border:0;filter:saturate(.82) contrast(.98)}
.contact-card-presentation .contact-card-map .contact-card-map-open,.contact-card-presentation .contact-card-map .contact-card-route{position:absolute;display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 11px;border:1px solid rgba(231,239,235,.16);border-radius:9px;background:rgba(5,29,25,.9);backdrop-filter:blur(9px);color:#f1f5f3;text-decoration:none;font-size:10.5px;font-weight:700}.contact-card-presentation .contact-card-map .contact-card-map-open{left:9px;top:9px}.contact-card-presentation .contact-card-map .contact-card-route{right:9px;bottom:9px}
.contact-card-presentation .contact-card-section,.contact-card-presentation .contact-card-reviews{border:0;margin:0;padding:0}
.contact-card-presentation .contact-card-review-button,.contact-card-presentation .contact-card-stars,.contact-card-presentation .contact-card-section-title{display:none!important}

@media(max-width:900px){
  .contact-card-editor{grid-template-columns:1fr}
  .contact-card-live-preview{position:static}
}
@media(max-width:620px){
  .contact-card-view.is-editor{padding:max(10px,env(safe-area-inset-top)) 12px calc(26px + env(safe-area-inset-bottom))!important}
  .contact-card-view.is-editor .contact-card-shell{width:100%;max-width:100%;margin:0}
  .contact-card-view.is-editor .contact-card-pagebar{width:100%;grid-template-columns:40px minmax(0,1fr) auto;gap:7px;margin:0 0 10px}
  .contact-card-view.is-editor .contact-card-back{width:40px;min-width:40px;padding:0;font-size:0}
  .contact-card-view.is-editor .contact-card-back::before{content:"←";font-size:18px}
  .contact-card-view.is-editor .contact-card-pagebar-title{min-width:0;text-align:left}
  .contact-card-view.is-editor .contact-card-pagebar-title .eyebrow{font-size:7px;white-space:nowrap}
  .contact-card-view.is-editor .contact-card-pagebar-title h2{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .contact-card-view.is-editor .contact-card-quiet{height:34px;max-width:96px;padding:0 9px;font-size:9px;white-space:nowrap}
  .contact-card-form{padding:11px;border-radius:14px}
  .contact-card-form-section{padding-bottom:13px;margin-bottom:12px}
  .contact-card-section-head{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .contact-card-section-head select{width:100%;max-width:100%;height:36px}
  .contact-card-media-grid,.contact-card-fields.two-cols{grid-template-columns:1fr!important}
  .contact-card-media-picker{padding:8px;border-radius:10px}
  .contact-card-form input{height:38px}
  .contact-card-form textarea{min-height:78px}
  .contact-card-editor-actions{grid-template-columns:1fr 1fr;gap:7px}
  .contact-card-live-preview{display:none!important}

  .contact-card-view.is-presentation{padding:max(7px,env(safe-area-inset-top)) 8px calc(10px + env(safe-area-inset-bottom))!important}
  .contact-card-presentation .bonjour-contact-card{width:100%;min-height:0;border-radius:21px!important}
  .contact-card-owner-back{width:38px;height:38px;border-radius:11px;top:max(14px,calc(env(safe-area-inset-top) + 7px));left:max(15px,calc(env(safe-area-inset-left) + 9px));font-size:18px}
  .contact-card-presentation .contact-card-hero{min-height:296px;border-radius:21px 21px 0 0;background-position:center}
  .contact-card-presentation .contact-card-company-logo{top:max(18px,calc(env(safe-area-inset-top) + 8px));max-width:42vw;max-height:48px}
  .contact-card-presentation .contact-card-profile-photo,.contact-card-presentation .contact-card-profile-placeholder{bottom:-128px;width:248px;height:248px;border-radius:11px}
  .contact-card-presentation .contact-card-main{padding:151px 18px 28px}
  .contact-card-presentation .contact-card-kicker{margin-bottom:9px;font-size:9px}
  .contact-card-presentation .contact-card-identity h3{font-size:clamp(32px,9.4vw,40px);line-height:1.02}
  .contact-card-presentation .contact-card-role{margin-top:8px;font-size:15px}
  .contact-card-presentation .contact-card-company{margin-top:5px;font-size:9px;line-height:1.45}
  .contact-card-presentation .contact-card-directs{margin-top:24px;gap:1px}
  .contact-card-presentation .contact-card-direct strong{font-size:clamp(21px,6.4vw,27px)}
  .contact-card-presentation .contact-card-direct.email strong{font-size:clamp(14px,4.2vw,18px)}
  .contact-card-presentation .contact-card-bio{margin-top:18px;font-size:12px;line-height:1.55}
  .contact-card-presentation .contact-card-website{margin-top:11px;font-size:12px}
  .contact-card-presentation .contact-card-actions{max-width:100%;margin-top:24px;gap:6px}
  .contact-card-presentation .contact-card-action{height:42px;min-height:42px;border-radius:10px;font-size:11.5px}
  .contact-card-presentation .contact-card-social-section{margin-top:22px}
  .contact-card-presentation .contact-card-socials{gap:7px}
  .contact-card-presentation .contact-card-social{width:34px;height:34px;min-width:34px;border-radius:8px}
  .contact-card-presentation .contact-card-social svg{width:17px;height:17px}
  .contact-card-presentation .contact-card-review-flow{margin-top:15px;padding:8px 7px;font-size:10px}
  .contact-card-presentation .contact-card-location{margin-top:18px}
  .contact-card-presentation .contact-card-map{border-radius:12px}
  .contact-card-presentation .contact-card-map iframe{height:180px}
  .contact-card-presentation .contact-card-map .contact-card-route{right:7px;bottom:7px;min-height:30px;padding:0 9px;border-radius:8px;font-size:10px}
}



/* ======================================================================
   BONJOUR · CARTE DE VISITE — CALAGE FINAL 1.20.59
   Base stricte : Bridge 1.20.57. Aucun nouveau langage graphique.
   ====================================================================== */
:root{
  --bonjour-gold-light:#fff1ae;
  --bonjour-gold-mid:#e1ba5c;
  --bonjour-gold-deep:#b47b25;
  --bonjour-gold-fallback:#ddb551;
}

/* ÉDITEUR : une seule vraie carte Bonjour, en-tête compris. */
.contact-card-view.is-editor{
  display:grid!important;
  place-items:start center!important;
  padding:clamp(18px,3vw,34px)!important;
}
.contact-card-view.is-editor .contact-card-shell{
  width:min(900px,100%)!important;
  margin:0 auto!important;
}
.contact-card-view.is-editor .contact-card-editor{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
}
.contact-card-view.is-editor .contact-card-form{
  position:relative!important;
  width:100%!important;
  margin:0!important;
  padding:clamp(20px,3vw,28px)!important;
  border:1px solid rgba(231,244,239,.10)!important;
  border-radius:26px!important;
  background:linear-gradient(145deg,rgba(8,49,42,.94),rgba(5,33,28,.95))!important;
  box-shadow:0 24px 70px rgba(0,0,0,.22)!important;
  overflow:hidden!important;
}
.contact-card-view.is-editor .contact-card-pagebar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"title actions" "title actions"!important;
  align-items:start!important;
  gap:12px 18px!important;
  width:100%!important;
  margin:0 0 24px!important;
  padding:0 0 20px!important;
  border-bottom:1px solid rgba(231,244,239,.09)!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title{grid-area:title!important;min-width:0!important}
.contact-card-view.is-editor .contact-card-pagebar-title .eyebrow{font-size:11px!important;letter-spacing:.16em!important}
.contact-card-view.is-editor .contact-card-pagebar-title h2{margin:6px 0 0!important;font-size:clamp(28px,4vw,34px)!important;line-height:1!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.contact-card-view.is-editor .contact-card-pagebar-actions{grid-area:actions!important;display:flex!important;align-items:center!important;gap:8px!important}
.contact-card-view.is-editor .contact-card-back,
.contact-card-view.is-editor .contact-card-quiet{
  width:auto!important;
  min-width:0!important;
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
  padding:0 13px!important;
  border-radius:10px!important;
  border:1px solid rgba(231,244,239,.12)!important;
  background:rgba(7,30,26,.56)!important;
  color:#f4f8f6!important;
  font-size:11px!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.contact-card-view.is-editor .contact-card-back{position:absolute!important;right:clamp(20px,3vw,28px)!important;top:clamp(20px,3vw,28px)!important;z-index:2!important}
.contact-card-view.is-editor .contact-card-pagebar-actions{padding-right:84px!important}
.contact-card-view.is-editor .contact-card-form-section{padding:0 0 20px!important;margin:0 0 20px!important;border-bottom:1px solid rgba(231,244,239,.08)!important}
.contact-card-view.is-editor .contact-card-form-section:last-of-type{border-bottom:0!important;margin-bottom:8px!important}
.contact-card-view.is-editor .contact-card-media-picker,
.contact-card-view.is-editor .contact-card-fields input,
.contact-card-view.is-editor .contact-card-fields textarea,
.contact-card-view.is-editor .contact-card-section-head select{
  background:rgba(3,23,19,.70)!important;
}
.contact-card-view.is-editor .contact-card-live-preview{display:none!important}

/* CARTE : l'or est exactement celui déjà utilisé par Bonjour sur le prénom d'accueil. */
.contact-card-presentation .contact-card-identity h3 .first-name,
.contact-card-presentation .contact-card-company,
.contact-card-presentation .contact-card-direct.email strong{
  background:linear-gradient(180deg,var(--bonjour-gold-light) 0%,var(--bonjour-gold-mid) 45%,var(--bonjour-gold-deep) 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  -webkit-text-fill-color:transparent!important;
  color:var(--bonjour-gold-fallback)!important;
  filter:drop-shadow(0 3px 10px rgba(217,174,55,.10));
}
.contact-card-presentation .contact-card-review-stars,
.contact-card-presentation .contact-card-review-arrow{color:var(--bonjour-gold-mid)!important}

/* Logo entreprise : aucun fond forcé ; le canal alpha des PNG reste visible. */
.contact-card-presentation .contact-card-company-logo{
  background:transparent!important;
  object-fit:contain!important;
  box-shadow:none!important;
  mix-blend-mode:normal!important;
}

/* Actions : dimensions Bonjour, pas de pavés. */
.contact-card-presentation .contact-card-actions{
  width:min(100%,390px)!important;
  max-width:390px!important;
  gap:6px!important;
  margin:24px auto 0!important;
}
.contact-card-presentation .contact-card-action{
  height:38px!important;
  min-height:38px!important;
  border-radius:9px!important;
  padding:0 13px!important;
  font-size:11px!important;
  font-weight:600!important;
  line-height:1!important;
}
.contact-card-presentation .contact-card-action.primary{
  background:rgba(11,63,60,.88)!important;
  border-color:rgba(126,192,180,.28)!important;
}
.contact-card-presentation .contact-card-action.review{
  background:#eef1ed!important;
  border-color:rgba(238,241,237,.92)!important;
  color:#0b3f3c!important;
}

@media(max-width:620px){
  .contact-card-view.is-editor{
    padding:max(14px,calc(env(safe-area-inset-top) + 8px)) 14px calc(22px + env(safe-area-inset-bottom))!important;
  }
  .contact-card-view.is-editor .contact-card-form{
    padding:18px 16px!important;
    border-radius:21px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:"title" "actions"!important;
    gap:12px!important;
    margin-bottom:18px!important;
    padding-bottom:16px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title .eyebrow{font-size:9px!important}
  .contact-card-view.is-editor .contact-card-pagebar-title h2{font-size:25px!important}
  .contact-card-view.is-editor .contact-card-pagebar-actions{
    padding-right:74px!important;
    justify-content:flex-start!important;
  }
  .contact-card-view.is-editor .contact-card-back{
    right:16px!important;
    top:18px!important;
    height:36px!important;
    min-height:36px!important;
    padding:0 11px!important;
    font-size:10px!important;
  }
  .contact-card-view.is-editor .contact-card-quiet{
    height:36px!important;
    min-height:36px!important;
    padding:0 11px!important;
    font-size:10px!important;
  }
  .contact-card-presentation .contact-card-actions{max-width:330px!important;margin-top:21px!important;gap:5px!important}
  .contact-card-presentation .contact-card-action{height:36px!important;min-height:36px!important;border-radius:9px!important;font-size:10.5px!important;padding:0 10px!important}
}


/* BONJOUR — CITATION + SIGNATURE LES ESSENTIELS — 01/10/2026
   L'auteur suit exactement la limite droite du bloc de citation.
   Le logo personnel reste centré, sans lien et compatible smartphone. */
@media (min-width:900px) and (min-height:600px), (min-width:760px) and (min-height:700px){
  .bonjour-home-quote-copy{
    width:fit-content;
    max-width:100%;
    margin:0 auto;
  }
  .bonjour-home-quote-author{
    width:100%!important;
    align-self:stretch!important;
    margin:clamp(12px,1.3vw,22px) 0 0!important;
    padding:0!important;
    text-align:right!important;
  }
  .bonjour-home-creator-logo{
    position:relative;
    align-self:center;
    width:clamp(178px,21vw,315px);
    max-width:75%;
    margin:clamp(30px,4.5vh,65px) auto 0;
    pointer-events:none;
    opacity:.92;
    filter:drop-shadow(0 10px 22px rgba(0,0,0,.28));
  }
  .bonjour-home-creator-logo img{display:block;width:100%;height:auto;object-fit:contain}

}
@media (min-width:900px) and (max-width:1100px) and (min-height:600px){
  .bonjour-home-creator-logo{width:clamp(145px,18vw,205px);margin-top:34px}
}
@media (min-width:760px) and (max-width:899px) and (min-height:700px){
  .bonjour-home-quote-author{margin-top:9px!important}
  .bonjour-home-creator-logo{width:clamp(118px,17vw,152px);max-width:78%;margin-top:28px}
}
@media (max-width:759px){
  .bonjour-home-creator-logo{display:block}
}


/* BONJOUR — ALIGNEMENT FINAL DE LA SIGNATURE — 01/10/2026
   La signature finit exactement au bord droit de la zone de citation. */
@media (min-width:900px) and (min-height:600px), (min-width:760px) and (min-height:700px){
  .bonjour-home-quote-copy{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
  }
  .bonjour-home-quote-author{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    text-align:right!important;
    align-self:stretch!important;
  }
}

/* ======================================================================
   BONJOUR WEB APP PC — CONTRAT FINAL 1.20.62 · 02/10/2026
   Une seule grammaire desktop : accueil, salons, réunions, agenda,
   transfert, carte de visite, contribution, Windows et Mon Bonjour.
   Cette couche est volontairement finale afin qu'aucun ancien calage ne
   puisse reprendre le dessus sur PC/laptop.
   ====================================================================== */
[hidden],.view.hidden,section.view.hidden,.productivity-view.hidden,#agendaView.hidden,#bookingPublicView.hidden{
  display:none!important;visibility:hidden!important;pointer-events:none!important;position:absolute!important;
  width:0!important;height:0!important;min-width:0!important;min-height:0!important;max-width:0!important;max-height:0!important;
  margin:0!important;padding:0!important;overflow:hidden!important
}
.view[aria-hidden="true"]{pointer-events:none!important}

@media (min-width:1100px) and (pointer:fine){
  html,body{height:100%!important;min-height:100%!important;overflow:hidden!important}
  .app-shell{height:100dvh!important;min-height:0!important;overflow:hidden!important}
  .view:not(.hidden){height:100dvh!important;min-height:0!important;max-height:100dvh!important;overflow:auto!important;overscroll-behavior:none!important}
  .room-view:not(.hidden){overflow:hidden!important}

  /* Gabarit commun et typographie. */
  .eyebrow,.page-head .eyebrow,.modal-head .eyebrow,.productivity-page-head .eyebrow{font-size:10px!important;letter-spacing:.15em!important;color:#79c9bf!important}
  .bonjour-page-return,.productivity-back,.productivity-back-text{
    width:auto!important;min-width:88px!important;max-width:98px!important;height:38px!important;min-height:38px!important;max-height:38px!important;
    padding:0 11px!important;border-radius:10px!important;font-size:11.5px!important;line-height:1!important;white-space:nowrap!important;
    background:rgba(11,58,50,.88)!important;border-color:rgba(151,202,191,.16)!important;color:#eef5f2!important
  }
  .action-card>span:last-child,.page-head>div,.regions-page-head>div,.modal-head>div,.productivity-page-head>div,
  .participant-meta,.transfer-history-card-top>div,.scheduled-list-row>div{min-width:0!important}
  .action-card strong,.action-card small,.modal-subtitle,.field-help,.settings-label,.transfer-lead,.network-intro,.productivity-page-head p,
  .contribution-idea-card p,.contribution-support-card p,.windows-release-card p,.my-bonjour-modal p{
    overflow-wrap:anywhere!important;word-break:normal!important;white-space:normal!important
  }

  /* Accueil : le menu reste compact mais aucun titre ne se casse inutilement. */
  .home-view{padding-left:clamp(72px,5vw,112px)!important;padding-right:clamp(34px,4vw,72px)!important}
  .home-card{width:clamp(540px,36vw,600px)!important;max-width:600px!important}
  .home-actions{gap:10px!important}
  .action-card{min-height:80px!important;padding:14px 15px!important;gap:12px!important;border-radius:14px!important}
  .action-icon{width:40px!important;height:40px!important;min-width:40px!important;border-radius:11px!important;font-size:20px!important}
  .action-card strong{font-size:14px!important;line-height:1.12!important;margin-bottom:3px!important}
  .action-card small{font-size:10.5px!important;line-height:1.28!important}
  #scheduleMeetingBtn strong{font-size:13.5px!important;letter-spacing:-.01em!important}

  /* Salons permanents. */
  .regions-view,.prejoin-view,.transfer-view,.productivity-view,.contact-card-view{padding:clamp(26px,3vw,44px) clamp(40px,4.5vw,78px)!important}
  .regions-card{width:min(1160px,74vw)!important;max-width:1160px!important;max-height:86dvh!important;padding:25px!important;border-radius:18px!important;overflow:auto!important}
  .regions-page-head h2{font-size:28px!important;line-height:1.06!important}.regions-help{font-size:12px!important;line-height:1.45!important;margin:8px 0 17px!important}
  .regions-list{gap:8px!important}.region-row-wrap{gap:8px!important}.region-row{min-height:56px!important;padding:10px 12px!important;border-radius:10px!important}
  .region-row strong{font-size:12px!important}.region-row small{font-size:9.5px!important}.region-share,.region-manage{min-height:56px!important;font-size:10.5px!important;border-radius:9px!important}
  .regions-empty{min-height:210px!important;border-radius:13px!important}

  /* Création / rejoindre : proportions identiques à Satellite PC. */
  .prejoin-layout{width:min(1220px,78vw)!important;max-width:1220px!important;grid-template-columns:minmax(0,700px) minmax(410px,450px)!important;gap:22px!important;align-items:center!important}
  .preview-card{aspect-ratio:4/3!important;border-radius:17px!important;max-height:70dvh!important}
  .join-card{width:100%!important;max-width:450px!important;max-height:84dvh!important;padding:23px!important;border-radius:18px!important;overflow:auto!important}
  .join-card h2{font-size:26px!important;line-height:1.06!important;margin:6px 102px 11px 0!important}.join-card>p{font-size:12px!important;line-height:1.45!important}
  .join-card label,.join-card .field-label{font-size:11px!important;margin-top:10px!important}.join-card input,.join-card select,.join-card textarea{min-height:41px!important;padding:9px 11px!important;font-size:12.5px!important;border-radius:9px!important;box-sizing:border-box!important;max-width:100%!important}
  .join-card .field-help{font-size:9.5px!important}.photo-upload-button{height:34px!important;min-height:34px!important;font-size:10px!important}.avatar-choice{width:27px!important;height:27px!important}
  .join-card .primary-button{height:42px!important;min-height:42px!important;font-size:11.5px!important}.preview-controls .round-control{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;border-radius:10px!important}

  /* Programmer une réunion. */
  .schedule-meeting-modal{width:min(980px,68vw)!important;max-width:980px!important;max-height:86dvh!important;padding:24px!important;border-radius:18px!important;overflow:auto!important}
  .schedule-meeting-modal .modal-head h3{font-size:27px!important;line-height:1.06!important}.schedule-meeting-modal .modal-subtitle{font-size:12px!important;line-height:1.46!important;margin-right:105px!important}
  .schedule-meeting-form,.schedule-grid{gap:10px!important}.schedule-meeting-modal .settings-label{font-size:11px!important}.schedule-meeting-modal input,.schedule-meeting-modal select,.schedule-meeting-modal textarea{min-height:41px!important;padding:9px 11px!important;font-size:12px!important;border-radius:9px!important;box-sizing:border-box!important;max-width:100%!important}
  .schedule-meeting-modal textarea{min-height:90px!important}.schedule-timezone-note{font-size:10px!important;padding:10px 12px!important}.schedule-meeting-modal .primary-button,.schedule-meeting-modal .secondary-button{min-height:41px!important;font-size:11px!important}

  /* Transfert : aucun gros bouton or, retour au vert Bonjour. */
  .transfer-view{justify-content:center!important;align-items:center!important}
  .transfer-page-shell{width:min(900px,62vw)!important;max-width:900px!important;margin:0 auto!important}
  .transfer-main-card{width:100%!important;max-height:84dvh!important;padding:24px!important;border-radius:18px!important;overflow:auto!important}
  .transfer-main-card>h2{font-size:28px!important;line-height:1.08!important;margin:7px 108px 8px 0!important;max-width:680px!important}.transfer-lead{font-size:12px!important;line-height:1.48!important;max-width:720px!important}
  .transfer-drop-zone{min-height:126px!important;border-radius:12px!important}.transfer-drop-zone strong{font-size:14px!important}.transfer-drop-zone small{font-size:10.5px!important}.transfer-limits{font-size:9.5px!important}
  .transfer-primary{height:42px!important;min-height:42px!important;font-size:11.5px!important;background:var(--accent)!important;color:#fff!important;box-shadow:none!important;filter:none!important}

  /* Carte de visite : véritable fenêtre PC, champs lisibles, scroll interne maîtrisé. */
  .contact-card-view.is-editor{place-items:start center!important;overflow:auto!important}
  .contact-card-view.is-editor .contact-card-shell{width:min(980px,72vw)!important;max-width:980px!important}
  .contact-card-view.is-editor .contact-card-form{padding:24px!important;border-radius:20px!important;max-height:none!important;overflow:visible!important}
  .contact-card-view.is-editor .contact-card-pagebar{margin-bottom:20px!important;padding-bottom:17px!important}.contact-card-view.is-editor .contact-card-pagebar-title h2{font-size:29px!important}
  .contact-card-section-head h3{font-size:16.5px!important}.contact-card-section-head p{font-size:10.5px!important;line-height:1.45!important}.contact-card-form label{font-size:10.5px!important}
  .contact-card-form input{height:41px!important;font-size:12px!important}.contact-card-form textarea{font-size:12px!important;min-height:90px!important}.contact-card-media-picker button{min-height:36px!important;font-size:10px!important}

  /* Contribuer : la même densité que les autres fenêtres Bonjour. */
  #contributionModal{padding:44px!important}
  .contribution-modal{width:min(980px,70vw)!important;max-width:980px!important;max-height:86dvh!important;padding:23px!important;border-radius:18px!important;overflow:auto!important}
  .contribution-modal .modal-head h3{font-size:27px!important}.contribution-modal>.modal-subtitle{font-size:12px!important;line-height:1.48!important;margin-right:104px!important}
  .contribution-layout{gap:13px!important}.contribution-idea-card,.contribution-support-card{padding:17px!important;border-radius:13px!important}.contribution-idea-card h4,.contribution-support-card h4{font-size:17px!important}.contribution-idea-card>p,.contribution-support-card>p{font-size:11px!important}
  .contribution-idea-card input,.contribution-idea-card select{min-height:40px!important;font-size:11.5px!important}.contribution-idea-card textarea{min-height:96px!important;font-size:11.5px!important}.contribution-submit{min-height:41px!important}

  /* Bonjour pour Windows : notes de version contenues, aucune superposition. */
  #windowsDownloadModal{padding:44px!important}
  body[data-bonjour-pwa="1"] .windows-download-modal{width:min(760px,56vw)!important;max-width:760px!important;max-height:86dvh!important;padding:23px!important;border-radius:18px!important;overflow:auto!important}
  body[data-bonjour-pwa="1"] .windows-download-hero{grid-template-columns:46px minmax(0,1fr)!important;gap:13px!important;padding-right:100px!important}
  body[data-bonjour-pwa="1"] .windows-logo{width:44px!important;height:44px!important;padding:8px!important;border-radius:11px!important}
  body[data-bonjour-pwa="1"] .windows-download-hero h3{font-size:23px!important}.windows-download-hero p{font-size:11.5px!important;line-height:1.46!important}
  body[data-bonjour-pwa="1"] .windows-release-card{padding:13px 14px!important;border-radius:10px!important;overflow:hidden!important}
  body[data-bonjour-pwa="1"] .windows-release-card strong{font-size:12.5px!important}
  body[data-bonjour-pwa="1"] .windows-release-card p{font-size:10.5px!important;line-height:1.5!important;margin:6px 0!important;max-height:118px!important;overflow:auto!important;overscroll-behavior:contain!important;padding-right:8px!important;white-space:pre-line!important}
  body[data-bonjour-pwa="1"] .windows-release-card small{display:block!important;font-size:9.5px!important;margin-top:6px!important}
  body[data-bonjour-pwa="1"] .windows-download-primary{height:41px!important;min-height:41px!important;margin-top:11px!important;font-size:11px!important}
  body[data-bonjour-pwa="1"] .windows-install-guide{margin-top:10px!important;gap:7px!important}.windows-install-guide>div{padding:9px!important}.windows-download-actions button{min-height:35px!important;font-size:10px!important}.windows-download-trust{font-size:9.5px!important;line-height:1.45!important}

  /* Mon Bonjour. */
  #myBonjourModal{padding:44px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-modal{width:min(720px,52vw)!important;max-width:720px!important;max-height:86dvh!important;padding:23px!important;border-radius:18px!important;overflow:auto!important}
  body[data-bonjour-pwa="1"] .my-bonjour-head h3{font-size:24px!important}.my-bonjour-head p{font-size:11px!important;line-height:1.46!important}.my-bonjour-panel>strong{font-size:13px!important}.my-bonjour-panel>p{font-size:10.5px!important}

  /* Tous les champs et boutons restent dans leur fenêtre. */
  .join-card input,.join-card select,.join-card textarea,.schedule-meeting-modal input,.schedule-meeting-modal select,.schedule-meeting-modal textarea,
  .productivity-field input,.productivity-field select,.productivity-field textarea,.contact-card-form input,.contact-card-form select,.contact-card-form textarea,
  .contribution-modal input,.contribution-modal select,.contribution-modal textarea{
    min-width:0!important;max-width:100%!important;box-sizing:border-box!important
  }
}

@media (min-width:1600px) and (pointer:fine){
  .home-card{width:600px!important}.regions-card{width:1200px!important}.prejoin-layout{width:1260px!important;grid-template-columns:720px 455px!important}
  .schedule-meeting-modal{width:1000px!important}.transfer-page-shell{width:920px!important}.contact-card-view.is-editor .contact-card-shell{width:1020px!important}.productivity-shell{width:1220px!important;max-width:1220px!important}
}

/* ======================================================================
   BONJOUR WEB APP PC — SYNCHRO MULTI-APPAREILS + FINITIONS 1.20.70
   Ajustements conservateurs après contrôle des captures PC : même axe,
   même densité et en-têtes lisibles sans modifier tablette/smartphone.
   ====================================================================== */
@media (min-width:1100px) and (pointer:fine){
  .regions-view,.productivity-view{place-items:center!important}
  .regions-card{width:min(1080px,70vw)!important;max-width:1080px!important}
  .regions-page-head{align-items:start!important}
  .regions-page-head>div:first-child{min-width:0!important;max-width:760px!important}

  .productivity-shell{width:min(1100px,72vw)!important;max-width:1100px!important}
  .agenda-shell{min-height:min(700px,82dvh)!important;max-height:86dvh!important}
  .productivity-page-head{grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important}
  .productivity-page-head:not(.bonjour-agenda-header-v2) .productivity-page-intro,.productivity-page-head:not(.bonjour-agenda-header-v2)>div:first-child>p{
    display:block!important;grid-column:auto!important;max-width:720px!important;margin:6px 0 0!important;padding:0!important;
    font-size:11px!important;line-height:1.42!important;color:#a9b9b2!important
  }
  .agenda-commandbar{min-height:52px!important}.agenda-actionsbar{min-height:52px!important}
  .agenda-layout{min-height:0!important}

  #myBonjourModal{padding:36px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-modal{width:min(760px,54vw)!important;max-width:760px!important;padding:24px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-panel{padding:15px!important;border-radius:12px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-actions button{min-height:40px!important;font-size:11px!important}
}
@media (min-width:1600px) and (pointer:fine){
  .regions-card{width:1120px!important;max-width:1120px!important}
  .productivity-shell{width:1140px!important;max-width:1140px!important}
  body[data-bonjour-pwa="1"] .my-bonjour-modal{width:780px!important;max-width:780px!important}
}

/* 1.21.01 — état de travail non alarmant pour l'ajout BJC/BJA/BJO. */
#addRoomKeyError[data-state="working"]{color:#9bcfc7!important;background:rgba(35,135,126,.08);border:1px solid rgba(88,189,176,.18);border-radius:10px;padding:9px 11px;min-height:0}


/* 1.21.10 — invitation permanente salon : lien + code toujours visibles */
.permanent-invite-stack{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:10px}.permanent-invite-field{min-width:0}.permanent-invite-field input{box-sizing:border-box;width:100%;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.01em;user-select:all}.permanent-code-actions{display:flex;align-items:flex-end}.permanent-code-actions .compact-button{white-space:nowrap}.permanent-code-help{display:block;margin-top:7px;color:var(--muted);line-height:1.45}.permanent-link-section.is-pending .permanent-invite-field input{opacity:.72}.permanent-link-section.is-active .permanent-invite-field input{border-color:rgba(64,170,152,.38)}
@media(max-width:620px){.permanent-invite-stack{grid-template-columns:1fr;gap:9px}.permanent-link-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%!important}.permanent-link-actions .compact-button{width:100%!important;min-width:0!important}.permanent-code-actions{width:100%}.permanent-code-actions .compact-button{width:100%!important;min-height:44px}.permanent-invite-field input{min-height:48px!important;height:auto!important;padding:12px 13px!important;font-size:12px!important}}
body[data-bonjour-pwa="1"] .permanent-invite-stack{grid-template-columns:minmax(0,1fr) auto!important}body[data-bonjour-pwa="1"] .permanent-invite-field input{min-height:36px!important;height:36px!important;padding:8px 10px!important;border-radius:8px!important;font-size:10.5px!important}body[data-bonjour-pwa="1"] .permanent-code-actions .compact-button{height:36px!important;min-height:36px!important;margin:0!important}
@media(max-width:620px){body[data-bonjour-pwa="1"] .permanent-invite-stack{grid-template-columns:1fr!important}body[data-bonjour-pwa="1"] .permanent-invite-field input{min-height:44px!important;height:44px!important;font-size:11px!important}body[data-bonjour-pwa="1"] .permanent-link-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}body[data-bonjour-pwa="1"] .permanent-link-actions .compact-button,body[data-bonjour-pwa="1"] .permanent-code-actions .compact-button{width:100%!important;min-width:0!important;height:42px!important;min-height:42px!important;font-size:11px!important}}



/* =====================================================================
   BONJOUR 1.22.17 · CARTE DE VISITE · ÉDITEUR CANONIQUE
   Un en-tête natif, un seul bloc, Retour indépendant ; styles limités
   à l'éditeur (ne modifient jamais la carte publique ou le HUB).
   ===================================================================== */
.contact-card-view.is-editor {
  position:relative!important;isolation:isolate!important;
  background:radial-gradient(circle at 50% 10%, rgba(244,255,251,.10) 0%, rgba(213,255,245,.06) 12%, rgba(163,255,235,0) 24%), linear-gradient(180deg,#07211e 0%,#051917 44%,#031210 100%)!important;
}
.contact-card-view.is-editor .contact-card-form {
  background:radial-gradient(circle at 52% 6%, rgba(248,255,252,.08) 0%, rgba(230,255,248,.04) 13%, rgba(171,255,236,0) 25%), linear-gradient(160deg,#093732 0%,#072925 38%,#041c19 100%)!important;
  border:1px solid rgba(214,239,230,.11)!important;
  box-shadow:0 20px 58px rgba(0,0,0,.22)!important;
  padding:clamp(18px,3vw,26px)!important;
  border-radius:23px!important;
}
/* Normalisation Retour conservée, mais indépendant du contenu de l'en-tête. */
.contact-card-view.is-editor .contact-card-back,
.contact-card-view.is-editor .contact-card-quiet {
  background:linear-gradient(180deg,#155349 0%,#0a322d 52%,#05211f 100%)!important;
  border:1px solid #e6b740!important;
  color:#ffd35a!important;
  -webkit-text-fill-color:#ffd35a!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
  border-radius:11px!important;
  padding:0 12px!important;
  font-size:11px!important;
  font-weight:700!important;
  white-space:nowrap!important;
  min-height:38px!important;
  height:38px!important;
}
.contact-card-view.is-editor .contact-card-back {
  position:absolute!important;top:18px!important;right:18px!important;
  z-index:12!important;
}
.contact-card-view.is-editor .contact-card-pagebar {
  display:flex!important;flex-direction:column!important;gap:0!important;
  width:100%!important;min-width:0!important;
  padding:0 0 19px!important;margin:0 0 20px!important;
  border-bottom:1px solid rgba(214,239,230,.10)!important;
  background:transparent!important;
}
.contact-card-view.is-editor .contact-card-heading-band {
  display:grid!important;grid-template-columns:90px minmax(0,1fr)!important;
  align-items:center!important;column-gap:16px!important;
  margin:35px 0 0!important;min-width:0!important;
}
.contact-card-view.is-editor .contact-card-heading-crown {
  width:90px!important;max-width:90px!important;height:92px!important;
  justify-self:center!important;align-self:center!important;
  margin:0!important;padding:0!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title{
  display:block!important;min-width:0!important;max-width:100%!important;
  padding:0!important;margin:0!important;text-align:left!important;
  grid-area:auto!important;grid-column:2!important;grid-row:1!important;align-self:center!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title .eyebrow{
  display:block!important;margin:0 0 6px!important;color:#ffcf58!important;
  font-size:12px!important;line-height:1.25!important;letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title h2{
  margin:0!important;padding:0!important;font-size:clamp(24px,3vw,29px)!important;
  font-weight:700!important;line-height:1.1!important;white-space:normal!important;
  overflow:visible!important;text-overflow:clip!important;letter-spacing:-.025em!important;
  color:#fff!important;
}
.contact-card-view.is-editor .contact-card-pagebar-lead{
  width:100%!important;max-width:680px!important;
  margin:14px 0 0!important;padding:0!important;
  color:#e4efeb!important;font-size:13px!important;line-height:1.55!important;
  text-align:left!important;
}
.contact-card-view.is-editor .contact-card-pagebar-lead strong{
  color:#ffcf58!important;font-weight:700!important;
}
.contact-card-view.is-editor #contactCardNameAside[hidden]{display:none!important}
.contact-card-view.is-editor .contact-card-pagebar-actions{
  display:flex!important;justify-content:flex-start!important;align-items:center!important;
  padding:0!important;margin:13px 0 0!important;
  width:auto!important;max-width:100%!important;
}
.contact-card-view.is-editor .contact-card-section-head h3{
  font-size:18px!important;line-height:1.15!important;color:#fff!important;
}
.contact-card-view.is-editor .contact-card-section-head .eyebrow {color:#8ccec3!important}
.contact-card-view.is-editor .contact-card-section-head p{
  color:#afc9c0!important;font-size:11.5px!important;line-height:1.55!important;
}
.contact-card-view.is-editor .contact-card-form-section{
  padding:0 0 20px!important;margin:0 0 20px!important;
  border-bottom:1px solid rgba(214,239,230,.08)!important;
}
.contact-card-view.is-editor .contact-card-media-picker {
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;
  background:rgba(4,29,25,.70)!important;
  border:1px solid rgba(211,233,225,.10)!important;
  border-radius:13px!important;padding:11px 12px!important;
}
.contact-card-view.is-editor .contact-card-media-picker > span{
  color:#e5eeea!important;font-size:11.5px!important;font-weight:700!important;
}
.contact-card-view.is-editor .contact-card-media-picker button {
  width:auto!important;max-width:100%!important;min-width:0!important;
  min-height:38px!important;height:38px!important;
  margin:7px 0 5px!important;padding:0 15px!important;
  border-radius:9px!important;
  background:linear-gradient(180deg,#ffda65 0%,#ffbe32 100%)!important;
  border:1px solid #e6b340!important;
  color:#0b3f3c!important;-webkit-text-fill-color:#0b3f3c!important;
  font:700 11px/1.1 Roboto,Arial,sans-serif!important;
  white-space:normal!important;text-align:center!important;
  box-shadow:inset 0 1px 0 rgba(255,247,207,.32)!important;
}
.contact-card-view.is-editor .contact-card-media-picker button:focus-visible{
  outline:2px solid #fff!important;outline-offset:3px!important;
}
.contact-card-view.is-editor .contact-card-media-picker.has-image button::after {color:#0b3f3c!important}
.contact-card-view.is-editor .contact-card-media-picker small{
  color:#a4bdb4!important;font-size:10px!important;line-height:1.4!important;
}
.contact-card-view.is-editor .contact-card-form label {color:#d0e3db!important;font-size:11px!important}
.contact-card-view.is-editor .contact-card-form :is(input,textarea),
.contact-card-view.is-editor .contact-card-section-head select{
  background:rgba(3,21,18,.87)!important;
  color:#f3f7f5!important;border:1px solid rgba(214,239,230,.14)!important;
}
.contact-card-view.is-editor .contact-card-editor-actions .primary-button{
  background:linear-gradient(180deg,#ffda65 0%,#ffbd31 100%)!important;
  border:1px solid #e6b340!important;color:#0b3f3c!important;
  font-size:11px!important;border-radius:11px!important;
}
.contact-card-view.is-editor .contact-card-editor-actions .secondary-button{
  background:linear-gradient(180deg,#155349,#072923)!important;
  border:1px solid #e6b740!important;color:#ffd35a!important;
  font-size:11px!important;border-radius:11px!important;
}
@media(max-width:620px) {
  .contact-card-view.is-editor{padding:max(10px,env(safe-area-inset-top)) 12px calc(22px + env(safe-area-inset-bottom))!important}
  .contact-card-view.is-editor .contact-card-form{padding:17px 15px!important;border-radius:21px!important}
  .contact-card-view.is-editor .contact-card-back{top:15px!important;right:15px!important}
  .contact-card-view.is-editor .contact-card-heading-band{
    grid-template-columns:79px minmax(0,1fr)!important;
    column-gap:12px!important;margin-top:36px!important;
  }
  .contact-card-view.is-editor .contact-card-heading-crown{
    width:76px!important;max-width:76px!important;height:85px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title .eyebrow{
    font-size:10px!important;line-height:1.25!important;letter-spacing:.11em!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title h2{
    font-size:clamp(21px,5.7vw,25px)!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-lead{
    margin-top:10px!important;font-size:12px!important;line-height:1.52!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-actions{margin-top:10px!important;padding:0!important}
  .contact-card-view.is-editor .contact-card-media-picker button{
    min-height:36px!important;height:36px!important;font-size:10.5px!important;padding:0 12px!important;
  }
}
@media(max-width:350px){
  .contact-card-view.is-editor .contact-card-heading-band{
    grid-template-columns:68px minmax(0,1fr)!important;column-gap:9px!important;
  }
  .contact-card-view.is-editor .contact-card-heading-crown{
    width:66px!important;height:76px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title h2{font-size:19px!important}
}
@media(prefers-reduced-motion:reduce){
  .contact-card-view.is-editor .contact-card-heading-crown > span{animation:none!important}
}


/* Bonjour 1.22.18 — Carte de visite : calage du titre, couronne et uploads.
   La page publique et toutes les autres pages restent inchangées. */
.contact-card-view.is-editor .contact-card-heading-band {
  align-items:end!important;
  margin-top:43px!important; /* Sous la zone indépendante du Retour. */
  column-gap:15px!important;
}
.contact-card-view.is-editor .contact-card-heading-crown {
  align-self:end!important;
  justify-self:center!important;
  margin:0 0 0!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title {
  align-self:end!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title .eyebrow {
  margin:0 0 5px!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title h2 {
  display:block!important;
  max-width:100%!important;
  line-height:1.14!important;
  white-space:normal!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title h2 > span {
  display:block!important;
  white-space:nowrap!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title .contact-card-title-secondary {
  margin-top:2px!important;
  font-size:.77em!important;
  letter-spacing:-.022em!important;
  line-height:1.18!important;
  font-weight:650!important;
}
/* Un seul gabarit pour les trois blocs d'insertion d'images. */
.contact-card-view.is-editor .contact-card-media-picker {
  align-items:stretch!important;
  text-align:center!important;
  padding:11px 12px 12px!important;
}
.contact-card-view.is-editor .contact-card-media-picker > span,
.contact-card-view.is-editor .contact-card-media-picker > small {
  width:100%!important;
  max-width:100%!important;
  text-align:center!important;
}
.contact-card-view.is-editor .contact-card-media-picker > span {
  line-height:1.35!important;
}
.contact-card-view.is-editor .contact-card-media-picker > small {
  margin:3px 0 0!important;
  line-height:1.43!important;
}
.contact-card-view.is-editor .contact-card-media-picker button {
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  max-width:100%!important;
  min-height:38px!important;
  height:38px!important;
  padding:0 10px!important;
  margin:7px 0 5px!important;
  box-sizing:border-box!important;
  text-align:center!important;
  font-size:11px!important;
}
@media (max-width:620px) {
  .contact-card-view.is-editor .contact-card-heading-band {
    margin-top:34px!important;
    grid-template-columns:79px minmax(0,1fr)!important;
    column-gap:10px!important;
  }
  .contact-card-view.is-editor .contact-card-heading-crown {
    height:76px!important;
    width:74px!important;
    max-width:74px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title h2 {
    font-size:clamp(20px,5.6vw,24px)!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title .contact-card-title-secondary {
    font-size:.82em!important;
  }
  .contact-card-view.is-editor .contact-card-media-picker button {
    height:38px!important;
    min-height:38px!important;
    font-size:10.8px!important;
  }
}
@media (max-width:360px) {
  .contact-card-view.is-editor .contact-card-heading-band {
    grid-template-columns:67px minmax(0,1fr)!important;
    column-gap:8px!important;
    margin-top:34px!important;
  }
  .contact-card-view.is-editor .contact-card-heading-crown {
    width:64px!important;
    max-width:64px!important;
    height:72px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title h2 {
    font-size:19px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title .contact-card-title-secondary {
    font-size:.77em!important;
  }
}


/* Bonjour 1.22.22 — ajustement visuel final : sections remontées et fond carte harmonisé */
@media(max-width:620px){
  .contact-card-view.is-editor .contact-card-pagebar{margin:0 0 18px!important;padding-bottom:16px!important}
  .contact-card-view.is-editor .contact-card-pagebar-lead{max-width:100%!important}
}


/* En-tête commun de pré-entrée : réserve pour Retour, sans marge superflue.
   Créer, Rejoindre et salons permanents utilisent tous ce formulaire. */
@media(max-width:720px){
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell{
    padding-top:52px!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell .bonjour-prejoin-heading-band{
    margin-top:4px!important;
    margin-bottom:14px!important;
    align-items:end!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell .bonjour-prejoin-heading-copy{
    min-width:0!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell .bonjour-prejoin-heading-copy .eyebrow{
    display:block!important;
    margin:0 0 8px 0!important;
    line-height:1.3!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell .bonjour-prejoin-heading-copy h2{
    margin:0!important;
    line-height:1.08!important;
  }
  body[data-bonjour-pwa="1"] .join-card.bonjour-mobile-page-shell .bonjour-page-intro{
    margin:0 0 14px 0!important;
  }
}


/* =====================================================================
   BONJOUR 1.22.30 · CARTE DE VISITE · EN-TÊTE REMONTÉ + SECTIONS PERSONNELLES
   Ajuste uniquement l'éditeur d'administration de la carte.
   ===================================================================== */
.contact-card-view.is-editor {
  background:radial-gradient(circle at 50% 12%, rgba(252,255,254,.12) 0%, rgba(236,255,249,.06) 14%, rgba(171,255,236,0) 27%), linear-gradient(180deg,#07211e 0%,#051917 44%,#031210 100%)!important;
}
.contact-card-view.is-editor .contact-card-form {
  background:radial-gradient(circle at 52% 7%, rgba(252,255,254,.11) 0%, rgba(240,255,250,.05) 14%, rgba(171,255,236,0) 26%), linear-gradient(160deg,#093732 0%,#072925 38%,#041c19 100%)!important;
}
.contact-card-view.is-editor .contact-card-pagebar {
  margin:0 0 18px!important;
  padding:0 0 16px!important;
}
.contact-card-view.is-editor .contact-card-heading-band {
  align-items:center!important;
  column-gap:14px!important;
  margin:22px 0 0!important;
}
.contact-card-view.is-editor .contact-card-heading-crown {
  align-self:center!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title,
.contact-card-view.is-editor .contact-card-pagebar-title h2 {
  align-self:center!important;
}
.contact-card-view.is-editor .contact-card-pagebar-title .eyebrow,
.contact-card-view.is-editor .contact-card-section-head .eyebrow {
  background:linear-gradient(180deg,#ffe28a 0%,#ffcf58 45%,#f2b432 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  letter-spacing:.14em!important;
}
.contact-card-view.is-editor .contact-card-section-head h3 {
  font-size:20px!important;
  line-height:1.14!important;
  color:#fff!important;
  margin:0!important;
}
.contact-card-view.is-editor .contact-card-section-head p {
  color:#e4efeb!important;
  font-size:12px!important;
  line-height:1.55!important;
}
@media(max-width:620px){
  .contact-card-view.is-editor .contact-card-heading-band {
    margin-top:18px!important;
    grid-template-columns:79px minmax(0,1fr)!important;
    column-gap:12px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar {
    margin:0 0 16px!important;
    padding:0 0 14px!important;
  }
  .contact-card-view.is-editor .contact-card-pagebar-title .eyebrow,
  .contact-card-view.is-editor .contact-card-section-head .eyebrow {
    letter-spacing:.12em!important;
  }
  .contact-card-view.is-editor .contact-card-section-head h3 {
    font-size:18px!important;
  }
  .contact-card-view.is-editor .contact-card-section-head p {
    font-size:11.5px!important;
  }
}
@media(max-width:350px){
  .contact-card-view.is-editor .contact-card-heading-band {
    margin-top:16px!important;
  }
}


