/* Meeting module: isolated names, accessible native dialog, responsive call shell. */
.em-dialog, .em-call-shell { --em-ink:#172238; --em-muted:#707c90; --em-green:#3259ed; --em-light:#f1f5ff; --em-line:#e1e7f2; font-family:inherit; color:var(--em-ink); box-sizing:border-box; }
.em-dialog *, .em-call-shell * { box-sizing:border-box; }
.em-dialog [hidden], .em-call-shell [hidden] { display:none!important; }
.em-dialog { position:fixed; width:min(580px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 40px); overflow:auto; padding:32px 36px 25px; border:1px solid #e3e9f5; border-radius:24px; background:#ffffff; box-shadow:0 28px 120px #14285159; overscroll-behavior:contain; margin:auto; }
.em-dialog::backdrop { background:#14213bb0; backdrop-filter:blur(7px); }
.em-dialog button, .em-dialog input, .em-dialog select, .em-call-shell button, .em-call-shell input { font:inherit; }
.em-dialog button, .em-call-shell button, .em-call-shell a { -webkit-tap-highlight-color:transparent; }
.em-dialog button, .em-call-shell button { cursor:pointer; }
.em-dialog button:focus-visible, .em-dialog a:focus-visible, .em-call-shell button:focus-visible, .em-call-shell a:focus-visible { outline:3px solid #94a9ff; outline-offset:4px; }
.em-icon-button { display:inline-flex; flex-shrink:0; align-items:center; justify-content:center; width:42px; height:42px; padding:0; border:1px solid var(--em-line); border-radius:11px; background:#fff; color:var(--em-ink); transition:background .15s; }
.em-icon-button:hover { background:#edf2ff; }
.em-dialog-close { position:absolute; right:20px; top:20px; width:34px; height:34px; border:none; background:transparent; color:var(--em-muted); }
.em-modal-mark { display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:14px; background:#eaf0ff; color:var(--em-green); margin:0 0 20px; }
.em-modal-mark svg { width:25px; height:25px; }
.em-eyebrow { margin:0 0 9px; font-size:10px; font-weight:700; letter-spacing:.16em; color:var(--em-muted); }
.em-dialog h2 { margin:0 20px 10px 0; font-size:clamp(25px,4vw,31px); letter-spacing:-1px; line-height:1.17; font-weight:600; }
.em-dialog-description { margin:0 0 24px; color:var(--em-muted); line-height:1.5; font-size:14px; }
.em-mode-tabs { display:grid; grid-template-columns:1fr 1fr 1fr; gap:3px; padding:4px; border-radius:11px; background:#edf1fa; margin-bottom:23px; }
.em-mode-tabs button { padding:10px 5px; font-size:12px; line-height:1.3; color:#68768b; border:0; border-radius:8px; background:transparent; font-weight:500; }
.em-mode-tabs button.is-active { color:var(--em-ink); background:#ffffff; box-shadow:0 2px 6px #2338550d; }
.em-mode-tabs button:hover:not(.is-active) { color:var(--em-ink); background:#e3ebfa; }
.em-field { margin:0 0 18px; min-width:0; }
.em-field label { display:block; font-size:13px; font-weight:600; margin:0 0 8px; }
.em-optional { font-weight:400; color:var(--em-muted); font-size:12px; }
.em-dialog input:not([type=checkbox]), .em-dialog select { width:100%; height:48px; padding:0 13px; border:1px solid #dce3f0; border-radius:10px; color:var(--em-ink); font-size:14px; background:white; outline:none; appearance:auto; }
.em-dialog input::placeholder { color:#98a2b6; }
.em-dialog input:focus, .em-dialog select:focus { border-color:#5879ed; box-shadow:0 0 0 3px #5879ed19; }
.em-dialog input[aria-invalid=true] { border-color:#b65a49; }
.em-field-hint { margin:8px 0 0; color:var(--em-muted); font-size:11px; line-height:1.55; }
.em-field-row { display:grid; grid-template-columns:1.5fr 1fr; gap:14px; }
#em-timezone-hint { margin:-8px 0 20px; }
.em-invitation { padding:15px; margin:0 0 20px; background:#f1f5ff; border:1px solid #e4eaf8; border-radius:12px; }
.em-invitation-label { display:flex; justify-content:space-between; gap:10px; align-items:center; font-size:12px; font-weight:600; margin-bottom:10px; }
.em-invitation-label span { color:#5573b7; font-size:10px; font-weight:500; }
.em-link-row { display:flex; align-items:center; gap:6px; }
.em-link-row input { min-width:0; font-size:11px!important; height:42px!important; background:#ffffff!important; text-overflow:ellipsis; }
.em-invitation p { margin:9px 0 0; font-size:11px; color:#727f99; line-height:1.5; }
.em-direct-invitation { border-top:1px solid var(--em-line); margin-top:14px; padding-top:14px; }
.em-provider-notice { display:flex; align-items:flex-start; gap:10px; border-top:1px solid var(--em-line); padding-top:15px; margin:0 0 20px; }
.em-provider-icon { flex:none; display:flex; margin-top:1px; color:#6581c5; }
.em-provider-icon svg { width:17px; height:17px; }
.em-provider-notice strong { display:block; font-size:12px; font-weight:600; }
.em-provider-notice p { margin:5px 0 0; color:var(--em-muted); font-size:11px; line-height:1.6; }
.em-provider-notice a { color:#3259ed; text-decoration:underline; text-underline-offset:2px; }
.em-primary, .em-secondary { min-height:47px; display:flex; align-items:center; justify-content:center; gap:9px; width:100%; padding:12px 18px; border-radius:10px; font-size:14px; font-weight:600; line-height:1.4; text-decoration:none; transition:background .15s,transform .15s; }
.em-primary { border:1px solid #3259ed; background:#3259ed; color:#fff; }
.em-primary:hover { background:#2449d6; }
.em-primary:active { transform:translateY(1px); }
.em-secondary { border:1px solid #dae3f4; background:transparent; color:var(--em-ink); }
.em-secondary:hover { background:#eaf0ff; }
#em-submit { justify-content:space-between; }
.em-form-footnote { text-align:center; margin:11px 0 0; color:#8b96aa; font-size:10px; line-height:1.5; }
.em-error { padding:10px 12px; border:1px solid #efd7cf; border-radius:9px; background:#fff3ee; color:#a64630; font-size:12px; line-height:1.5; margin:0 0 14px; }
.em-inline-status { font-size:11px; color:#375fc8; line-height:1.4; text-align:center; margin:12px 0 0; min-height:0; }
.em-inline-status:empty { margin:0; }
.em-schedule-result { text-align:center; }
.em-success-mark { width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#3259ed; background:#e8eeff; margin:6px auto 15px; }
.em-schedule-result h3 { font-size:22px; margin:0 0 10px; font-weight:600; }
#em-scheduled-summary { font-size:13px; line-height:1.6; color:var(--em-muted); margin:0 0 18px; overflow-wrap:anywhere; }
.em-schedule-result .em-link-row { margin-bottom:15px; }
.em-schedule-result .em-secondary { margin-top:18px; }
.em-call-shell { position:fixed; inset:0; z-index:10000; background:#141d31; height:100dvh; display:flex; flex-direction:column; isolation:isolate; }
.em-call-header { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:79px; padding:14px 25px; background:#ffffff; border-bottom:1px solid #e4e9f5; }
.em-call-brand { display:flex; align-items:center; gap:10px; color:#172238; font-size:19px; font-weight:600; letter-spacing:-.6px; }
.em-call-logo { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px; color:white; background:#3259ed; }
.em-brand-light { font-weight:400; }
.em-call-brand small { display:block; color:#7b88a1; font-size:10px; font-weight:400; letter-spacing:0; line-height:1.5; margin-top:4px; }
.em-call-actions { display:flex; align-items:center; gap:9px; }
.em-call-actions button, .em-call-actions a { display:inline-flex; justify-content:center; align-items:center; gap:7px; min-height:40px; padding:9px 13px; border-radius:9px; border:1px solid #dce4f3; font-size:12px; font-weight:500; text-decoration:none; background:#ffffff; color:#3c507c; white-space:nowrap; }
.em-call-actions button:hover, .em-call-actions a:hover { background:#edf2ff; }
.em-call-actions .em-leave-button { color:#a64c3c; border-color:#efdad3; background:#fff2ee; }
.em-call-actions .em-leave-button:hover { background:#f9e5dd; }
.em-call-actions svg { width:17px; height:17px; }
.em-call-notice { min-height:32px; display:flex; justify-content:space-between; gap:12px; padding:8px 25px; background:#eef3ff; color:#647599; font-size:10px; line-height:1.5; flex-shrink:0; }
#em-call-announcement:not(:empty) { color:#3259bd; }
.em-call-stage { position:relative; flex:1; min-height:0; display:flex; }
#em-jitsi-container { position:absolute; inset:0; width:100%; height:100%; }
#em-jitsi-container iframe { border:0; width:100%; height:100%; display:block; }
.em-loading { display:flex; flex-direction:column; justify-content:center; align-items:center; position:absolute; inset:0; z-index:1; padding:32px; text-align:center; color:#e7edff; background:radial-gradient(ellipse at 50% 30%,#273858,#141d31 70%); }
.em-loading h2 { font-size:25px; font-weight:500; line-height:1.25; letter-spacing:-.7px; margin:26px 0 13px; }
.em-loading p { font-size:14px; color:#a8b8d6; max-width:500px; line-height:1.7; margin:0; }
.em-spinner { width:35px; height:35px; border:2px solid #526b9a; border-top-color:#a9beff; border-radius:50%; animation:em-spin 1s linear infinite; }
.em-loading.has-error .em-spinner { animation:none; border:none; width:50px; height:50px; display:grid; place-content:center; background:#ffffff10; }
.em-loading.has-error .em-spinner::after { content:'!'; color:#ddc19f; font-size:24px; }
.em-loading-actions { display:flex; flex-direction:column; gap:10px; margin-top:25px; width:min(340px,100%); }
.em-loading-actions .em-primary { background:#a9beff; border-color:#a9beff; color:#192b57; }
.em-loading-actions .em-primary:hover { background:#c1d0ff; }
.em-loading-actions .em-secondary { color:#dbe5ff; border-color:#6478a3; }
.em-loading-actions .em-secondary:hover { background:#ffffff0e; }
.em-call-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-shrink:0; min-height:27px; padding:6px 25px; color:#8f9fbc; background:#141d31; font-size:9px; line-height:1.4; }
.em-copy-buffer { position:absolute; left:14px; bottom:3px; width:1px; height:1px; padding:0; opacity:0; border:0; }
.em-copy-buffer.is-visible { left:16px; bottom:38px; width:calc(100% - 32px); height:44px; opacity:1; padding:10px 14px; border:1px solid #6481bd; background:#fff; color:#172238; border-radius:8px; z-index:3; font-size:13px; }
@keyframes em-spin { to { transform:rotate(360deg); } }
@media (max-width:600px) {
  .em-dialog { padding:26px 22px 20px; border-radius:20px; width:calc(100vw - 24px); max-height:calc(100dvh - 24px); }
  .em-modal-mark { margin-bottom:16px; width:43px; height:43px; }
  .em-dialog-description { margin-bottom:19px; }
  .em-mode-tabs button { font-size:10px; padding:11px 3px; }
  .em-field-row { grid-template-columns:1.35fr 1fr; gap:8px; }
  .em-field-row input, .em-field-row select { font-size:12px; padding:0 8px; }
  .em-invitation-label { align-items:flex-start; font-size:11px; }
  .em-invitation-label span { font-size:9px; }
  .em-call-header { gap:8px; min-height:66px; padding:11px 12px; }
  .em-call-brand { font-size:15px; gap:7px; }
  .em-call-logo { width:29px; height:29px; border-radius:8px; }
  .em-call-logo svg { width:18px; height:18px; }
  .em-call-brand small { max-width:160px; font-size:9px; }
  .em-call-actions { gap:5px; }
  .em-call-actions button, .em-call-actions a { min-height:36px; padding:8px; }
  .em-call-copy span, .em-direct-link span { display:none; }
  .em-call-actions .em-leave-button { font-size:11px; }
  .em-call-actions .em-leave-button svg { display:none; }
  .em-call-notice { padding:7px 12px; font-size:9px; flex-direction:column; gap:4px; }
  #em-call-announcement:empty { display:none; }
  .em-call-footer { padding:7px 12px; font-size:8px; }
  .em-call-footer span:last-child { display:none; }
  .em-loading { padding:24px; }
  .em-loading h2 { font-size:23px; }
  .em-loading p { font-size:13px; }
}
@media (max-width:380px) {
  .em-dialog { padding:24px 17px 18px; }
  .em-field-row { grid-template-columns:1fr; gap:0; }
  .em-optional { display:block; margin-top:4px; }
  .em-call-brand { font-size:13px; }
  .em-call-logo { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .em-spinner { animation-duration:2.8s; }
  .em-dialog *, .em-call-shell * { transition:none!important; }
}
