/* Mail / share / template / QR surfaces */
.admin-share-wrap{
  position:relative;
  display:flex;
  align-items:center;
  gap:0;
}
.admin-share-caret{
  min-width:38px;
  padding-inline:10px;
}
.admin-share-menu{
  right:72px;
}
.mail-composer-modal{
  position:fixed;
  inset:0;
  z-index:2200;
}
.mail-composer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.38);
}
.mail-composer-shell{
  position:relative;
  width:min(1440px, calc(100vw - 32px));
  height:min(92vh, 980px);
  margin:24px auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 32px 80px rgba(15,23,42,.22);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto 1fr;
}
.mail-composer-topbar{
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 22px;
  border-bottom:1px solid #e2e8f0;
}
.mail-composer-title{
  font-size:20px;
  font-weight:700;
  color:#0f172a;
}
.mail-composer-notice{
  display:none;
  align-items:center;
  justify-content:center;
  min-width:120px;
  padding:6px 12px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
}
.mail-composer-notice.is-success{
  background:#e8f7eb;
  color:#15803d;
}
.mail-composer-notice.is-error{
  background:#fef2f2;
  color:#b91c1c;
}
.mail-composer-top-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:10px;
}
.mail-composer-close{
  width:32px;
  height:32px;
  min-width:32px;
  border:none !important;
  border-radius:999px;
  background:transparent !important;
  color:#64748b !important;
  box-shadow:none !important;
  padding:0 !important;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.mail-composer-close:hover{
  background:#f1f5f9 !important;
  color:#0f172a !important;
  transform:none !important;
}
.mail-composer-body{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);
  min-height:0;
}
.mail-composer-left{
  padding:22px 26px 26px;
  overflow:auto;
  border-right:1px solid #e2e8f0;
  display:grid;
  gap:18px;
}
.mail-composer-right{
  padding:30px 26px;
  background:#f8fafc;
  overflow:auto;
}
.mail-form-row{
  display:grid;
  gap:10px;
}
.mail-form-row--labelled{
  grid-template-columns:92px minmax(0,1fr);
  align-items:start;
  gap:14px;
}
.mail-form-row--message{
  align-items:stretch;
}
.mail-form-row--reply{
  grid-template-columns:92px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
}
.mail-field-label{
  display:flex;
  align-items:center;
  min-height:44px;
  font-size:15px;
  color:#334155;
}
.mail-field-main{
  min-width:0;
}
.mail-form-row--labelled .mail-field-main .sm-input,
.mail-form-row--reply .mail-field-main .sm-input{
  display:block;
  width:100%;
  max-width:none;
  min-width:0;
}
.mail-form-row--reply input[type=email].sm-input,
#mailSubject.sm-input,
#mailReplyToInput.sm-input,
#mailReplyTo.sm-input{
  display:block;
  width:100% !important;
  max-width:none !important;
  padding:6px 8px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  font:inherit;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:border-color .12s ease, box-shadow .12s ease, background .12s ease;
  box-sizing:border-box;
}
.mail-form-row--reply input[type=email].sm-input:focus,
#mailReplyToInput.sm-input:focus,
#mailReplyTo.sm-input:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(79,70,229,.14);
}
.mail-template-row{
  display:flex;
  gap:10px;
  align-items:center;
}
.mail-template-row .sm-input{
  flex:1 1 auto;
  min-width:0;
}
.mail-recipient-source-wrap{
  position:relative;
}
.mail-recipient-menu{
  right:0;
  min-width:220px;
}
.mail-pill-input{
  min-height:48px;
  border:1px solid #dbe1ea;
  border-radius:14px;
  padding:8px 10px;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  background:#fff;
}
.mail-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:#f1f5f9;
  color:#0f172a;
  font-size:14px;
}
.mail-pill button{
  border:0 !important;
  background:transparent !important;
  color:#64748b !important;
  cursor:pointer;
  font-size:16px;
  line-height:1;
  padding:0 !important;
  min-width:auto !important;
  box-shadow:none !important;
  transform:none !important;
}
.mail-pill-entry{
  border:0;
  outline:0;
  min-width:180px;
  flex:1 1 180px;
  font:inherit;
}
.mail-body-input{
  width:100%;
  min-height:320px;
  resize:vertical;
  border:1px solid #dbe1ea;
  border-radius:16px;
  padding:14px 16px;
  font:inherit;
  line-height:1.6;
  box-sizing:border-box;
}
.mail-body-tools{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:0 0 8px;
}
.mail-body-tools--template{
  margin:0 0 10px;
}
.mail-font-btn{
  min-width:auto !important;
  padding:4px 8px !important;
  border:0 !important;
  background:transparent !important;
  color:#4f46e5 !important;
  font-weight:700;
  line-height:1.2;
  box-shadow:none !important;
  transform:none !important;
}
.mail-font-btn:hover{
  color:#312e81 !important;
  background:#eef2ff !important;
}
.mail-help-toggle{
  border:0;
  padding:0;
  color:#0f172a;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.mail-token-btn{
  border:1px solid #dbe1ea !important;
  background:#fff !important;
  color:#334155 !important;
  box-shadow:none !important;
  font-weight:600;
  justify-content:flex-start;
  padding:8px 10px !important;
  min-width:auto !important;
}
.mail-token-btn:hover{
  background:#eef2ff !important;
  color:#312e81 !important;
  transform:none !important;
}
.mail-tokens-panel{
  display:grid;
  gap:8px;
  padding:16px;
  border:1px solid #e2e8f0;
  border-radius:16px;
  background:#f8fafc;
  font-size:13px;
  color:#334155;
}
.mail-tokens-panel.mail-tokens-panel--inline{
  display:flex !important;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.mail-dynamic-help .mail-field-main{
  width:100%;
}
.mail-tokens-panel--template{
  padding:12px;
}
.mail-tokens-panel.mail-tokens-panel--inline .mail-token-btn{
  width:auto !important;
  flex:0 0 auto;
}
.mail-preview-card{
  width:min(100%, 420px);
  margin:0 auto;
  background:#fff;
  border:1px solid #e2e8f0;
  box-shadow:0 18px 44px rgba(15,23,42,.08);
}
.mail-preview-brand{
  padding:28px 20px 18px;
  text-align:center;
}
.mail-preview-brand img{
  max-width:88px;
  max-height:88px;
}
.mail-preview-title{
  margin-top:14px;
  font-size:18px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#0f172a;
}
.mail-preview-image{
  background:#f8fafc;
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mail-preview-image img{
  width:100%;
  max-height:320px;
  object-fit:contain;
}
.mail-preview-body{
  padding:26px 28px 30px;
  font-size:15px;
  line-height:1.7;
  color:#0f172a;
}
.mail-preview-button{
  display:inline-block;
  margin-top:24px;
  padding:13px 28px;
  background:#1f2937;
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
}
.template-manager-shell{
  position:relative;
  width:min(1180px, calc(100vw - 40px));
  height:min(86vh, 840px);
  margin:32px auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 32px 80px rgba(15,23,42,.22);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto 1fr;
}
.template-manager-body{
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  min-height:0;
}
.template-manager-list{
  border-right:1px solid #e2e8f0;
  overflow:auto;
  padding:18px;
  display:grid;
  gap:10px;
}
.template-list-item{
  text-align:left;
  border:1px solid #dbe1ea;
  background:#fff;
  border-radius:14px;
  padding:12px 14px;
  cursor:pointer;
}
.template-list-item.is-active{
  border-color:#4f46e5;
  box-shadow:0 0 0 2px rgba(79,70,229,.08);
}
.template-manager-editor{
  padding:22px 24px;
  overflow:auto;
  display:grid;
  gap:16px;
}
.template-form-row{
  width:100%;
}
.template-manager-editor .mail-field-main{
  width:100%;
}
.template-manager-editor .mail-field-main .sm-input{
  width:100%;
  max-width:none;
}
.template-manager-editor .mail-body-input{
  min-height:340px;
}
.template-manager-editor .mail-body-tools{
  margin:0 0 8px;
}
.template-manager-editor .mail-tokens-panel{
  width:100%;
}
.template-manager-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  align-items:center;
}
.template-manager-actions .button{
  min-width:0;
}
.template-manager-actions .button.secondary{
  background:var(--accent-soft);
  color:var(--accent) !important;
  border:1px solid rgba(79,70,229,.14);
  box-shadow:none;
}
.qr-shell{
  position:relative;
  width:min(460px, calc(100vw - 40px));
  margin:80px auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 32px 80px rgba(15,23,42,.22);
  overflow:hidden;
}
.qr-body{
  padding:28px;
  display:grid;
  gap:16px;
}
.qr-body img{
  width:240px;
  height:240px;
  margin:0 auto;
  object-fit:contain;
}
.download-email-modal{
  position:fixed;
  inset:0;
  z-index:1600;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,23,42,.55);
  padding:20px;
}
.download-email-card{
  width:min(100%, 440px);
  background:#fff;
  border-radius:18px;
  box-shadow:0 20px 60px rgba(15,23,42,.24);
  padding:24px;
}
.download-email-card h2{
  margin:0 0 10px;
  font-size:30px;
  line-height:1.1;
}
.download-email-card p{
  margin:0 0 16px;
  color:#475569;
}
.download-email-form{
  display:grid;
  gap:14px;
}
.download-email-form input{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  font:inherit;
  box-sizing:border-box;
}
.download-email-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

@media (max-width: 900px) {
  .mail-composer-shell,
  .template-manager-shell{
    width:100vw;
    height:100vh;
    margin:0;
    border-radius:0;
  }
  .mail-composer-topbar{
    flex-wrap:wrap;
  }
  .mail-composer-notice{
    order:3;
    width:100%;
    justify-content:flex-start;
  }
  .mail-composer-body,
  .template-manager-body{
    grid-template-columns:1fr;
  }
  .mail-composer-left{
    border-right:0;
    border-bottom:1px solid #e2e8f0;
  }
  .mail-form-row--inline{
    grid-template-columns:1fr;
  }
  .mail-form-row--labelled,
  .mail-form-row--reply{
    grid-template-columns:1fr;
    gap:8px;
  }
  .mail-field-label{
    min-height:auto;
  }
}
