.compose-window {
  left: 630px;
  right: 0;
  top: 0;
  bottom: 0;
  width: auto;
  border: 0;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
}
.compose-window form { height: 100%; display: flex; flex-direction: column; }
.compose-window header { height: 56px; flex: 0 0 56px; border-radius: 0; background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); padding: 0 18px; }
.compose-window .compose-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.compose-window header .icon { margin-left: 0; color: var(--muted); }
.compose-window header .primary { height: 36px; padding: 0 20px; }
.compose-window label span { width: 58px; flex: 0 0 58px; }
.recipient-button { border: 0; background: transparent; color: var(--accent); padding: 6px 4px; white-space: nowrap; }
.compose-editor {
  height: auto;
  min-height: 220px;
  flex: 1;
  overflow: auto;
  border: 0 !important;
  font: 14px/1.65 "Segoe UI","Microsoft YaHei",Arial,sans-serif;
}
#editor-toolbar { flex: 0 0 auto; border-bottom: 1px solid var(--line); background: #f8fafb; position: relative; z-index: 3; }
#editor-toolbar .w-e-toolbar { background: #f8fafb; flex-wrap: wrap; padding: 5px 10px; }
#editor-toolbar .w-e-bar-item { height: 36px; padding: 3px; }
#editor-toolbar .w-e-bar-item button { height: 30px; min-width: 30px; border-radius: 4px; }
#editor-toolbar .w-e-bar-item button:hover { background: #e9eef1; }
.compose-editor .w-e-text-container { min-height: 100%; background: #fff; }
.compose-editor .w-e-text-placeholder { color: #9aa5af; font-style: normal; top: 16px; }
.compose-editor [data-slate-editor] { min-height: 100%; padding: 14px 18px; }
.w-e-drop-panel,.w-e-modal { z-index: 50 !important; }
.compose-window footer { min-height: 42px; height: auto; }
.contact-form { width: min(720px, calc(100vw - 30px)) !important; }
.contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; padding: 10px 18px; max-height: 65vh; overflow: auto; }
.contact-fields label { display: flex; flex-direction: column; gap: 5px; padding: 7px 0 !important; }
.recipient-picker { width: min(680px, calc(100vw - 30px)) !important; }
.recipient-search { padding: 14px 18px 10px; border-bottom: 1px solid var(--line); }
.recipient-search>input { width: 100%; height: 38px; border: 1px solid var(--line); border-radius: 4px; padding: 0 10px; }
.filter-button { height: 36px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--muted); padding: 0 10px; }
.filter-button.active { border-color: var(--accent); background: #e9f5f0; color: var(--accent); font-weight: 700; }
.advanced-search-form footer { justify-content: flex-end; }
.advanced-search-form footer button { min-width: 76px; }
.advanced-search-form footer span { margin-right: auto; order: -1; }
.mail-label { display: inline-block; margin-right: 5px; padding: 0 5px; border-radius: 3px; font-size: 10px; line-height: 18px; color: #31594d; background: #e4f2ed; vertical-align: middle; }
.mail-label.label-followup { color: #76540b; background: #fff2c7; }
.mail-label.label-personal { color: #275985; background: #e5f0fa; }
.mail-label.label-finance { color: #8a3535; background: #f8e6e6; }
@media(max-width:760px){.filter-button{padding:0 7px}.message-pane>header{gap:6px}.advanced-search-form footer{height:auto;min-height:58px;flex-wrap:wrap;padding:10px 15px}}
.invitation-panel { margin: 0 0 22px; border: 1px solid #b8d8cc; border-left: 4px solid var(--accent); border-radius: 5px; padding: 14px 16px; background: #f3faf7; }
.invitation-panel>strong { display: block; font-size: 16px; margin-bottom: 8px; }
.invitation-panel dl { margin: 0; }
.invitation-panel dl div { display: grid; grid-template-columns: 60px minmax(0,1fr); gap: 8px; padding: 3px 0; }
.invitation-panel dt { color: var(--muted); }
.invitation-panel dd { margin: 0; overflow-wrap: anywhere; }
.invitation-panel>span { display: inline-block; margin-top: 10px; color: var(--accent); font-weight: 700; }
.invitation-actions { display: flex; align-items: center; gap: 7px; margin-top: 12px; flex-wrap: wrap; }
.invitation-actions select,.invitation-actions button { height: 34px; border: 1px solid #b8d8cc; border-radius: 4px; background: #fff; padding: 0 10px; }
.invitation-actions button { color: var(--accent); font-weight: 700; }
.invitation-actions button[data-meeting-response="decline"] { color: var(--danger); }
.invitation-actions small { color: var(--muted); }
.attendee-control { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; width: 100%; }
.attendee-control button { border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--accent); padding: 0 10px; }
.freebusy-result { max-height: 150px; overflow: auto; padding: 9px 15px; border-bottom: 1px solid var(--line); background: #f8faf9; font-size: 12px; }
.freebusy-result div { display: grid; grid-template-columns: minmax(120px,1fr) 2fr; gap: 10px; padding: 4px 0; }
.freebusy-result strong { overflow: hidden; text-overflow: ellipsis; }
.freebusy-result span { color: var(--muted); }
.recipient-tabs { display: flex; gap: 18px; margin-top: 11px; }
.recipient-tabs button { border: 0; border-bottom: 2px solid transparent; background: transparent; padding: 6px 1px; color: var(--muted); }
.recipient-tabs button.active { color: var(--accent); border-color: var(--accent); }
.recipient-list { min-height: 260px; max-height: 50vh; overflow: auto; padding: 8px 18px; }
.recipient-choice { display: grid; grid-template-columns: 20px 1fr; gap: 10px; padding: 10px 4px; border-bottom: 1px solid #edf0f2; align-items: start; }
.recipient-choice strong,.recipient-choice small { display: block; }
.recipient-choice small { color: var(--muted); }
.contact-card .contact-meta { display: flex; flex-wrap: wrap; gap: 3px 12px; color: var(--muted); font-size: 12px; }
.settings-content {
  padding: 24px 24px 56px;
  display: block;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}
.portal-workspace { height: 100vh; min-height: 0; overflow: hidden; }
.portal-workspace > .portal-header { flex: 0 0 auto; }
#settings-workspace > .settings-content { flex: 1 1 0; height: 0; min-height: 0; overflow-y: scroll; }
.settings-tabs { position: sticky; top: 0; z-index: 3; display: flex; gap: 4px; overflow-x: auto; margin: -24px -24px 24px; padding: 14px 24px 0; border-bottom: 1px solid var(--line); background: #fff; scrollbar-width: thin; }
.settings-tab { flex: 0 0 auto; min-height: 42px; padding: 0 15px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); font-weight: 650; }
.settings-tab.active { color: var(--accent); border-bottom-color: var(--accent); }
.settings-tab:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
.settings-panes { width: min(1120px,100%); }
.settings-pane { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; align-items: start; }
.settings-pane[hidden] { display: none; }
.settings-pane[data-settings-pane="general"] > :first-child,
.settings-pane[data-settings-pane="sync"] > *,
.settings-pane[data-settings-pane="devices"] > *,
.settings-pane[data-settings-pane="lists"] > * { grid-column: 1 / -1; }
.settings-content .preference-form,
.settings-content .sync-settings {
  width: 100%;
  margin: 0;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
}
.settings-content .preference-form h2 { font-size: 16px; margin: 0; }
.settings-content .preference-form .setting-check { display: flex; flex-direction: row; align-items: center; gap: 9px; }
.settings-content .preference-form .setting-check input { width: 16px; height: 16px; margin: 0; padding: 0; }
.signature-field { min-width: 0; }
.signature-heading { display: flex; align-items: center; justify-content: space-between; margin: 14px 0 6px; }
.signature-heading span { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.signature-heading span.over-limit { color: var(--danger); font-weight: 700; }
#signature-toolbar { border: 1px solid var(--line); border-bottom: 0; background: #f8fafb; }
#signature-editor { min-height: 180px; max-height: 320px; overflow-y: auto; border: 1px solid var(--line); background: #fff; }
#signature-editor .w-e-text-container { min-height: 178px; }
#signature-editor img { max-width: 100%; height: auto; }
.address-book small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
}
.calendar-source-empty {
  display: block;
  color: var(--muted);
  padding: 7px 3px 14px;
  line-height: 1.4;
}
@media (max-width: 980px) {
  .compose-window { left: 540px; }
  .settings-pane { grid-template-columns: 1fr; }
  .settings-pane > * { grid-column: 1; }
}
@media (max-width: 760px) {
  .compose-window {
    right: 0;
    left: 0;
    top: 0;
    bottom: 0;
    width: 100%;
    height: 100vh;
    border-radius: 0;
  }
  .compose-window form {
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .compose-editor {
    height: auto;
    min-height: 0;
    flex: 1;
  }
  .settings-content {
    display: block;
    padding: 16px;
  }
  #settings-workspace > .settings-content { height: 0; }
  .settings-tabs { margin: -16px -16px 16px; padding: 10px 12px 0; }
  .settings-content .preference-form + .preference-form,
  .settings-content .sync-settings { margin-top: 16px; }
  .contact-fields { grid-template-columns: 1fr; }
}
.duplicate-panel{width:min(680px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 32px));overflow:auto;background:#fff;border-radius:8px;padding:20px;box-shadow:0 20px 60px #17222d33}.duplicate-panel>header{display:flex;align-items:center;justify-content:space-between}.duplicate-panel>p{color:#65717c}.duplicate-group{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(220px,1.5fr) auto;gap:16px;align-items:center;padding:14px 0;border-top:1px solid #e1e6e9}.duplicate-group div,.duplicate-group li{display:grid;gap:3px}.duplicate-group ul{margin:0;padding-left:18px}.duplicate-group small{color:#65717c}.duplicate-panel footer{min-height:24px;padding-top:12px}@media(max-width:700px){.duplicate-group{grid-template-columns:1fr}.duplicate-group button{justify-self:start}}
.address-book-owner{display:block;color:#65717c;font-size:12px}.share-form{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto}.share-form>label{display:grid;gap:6px;margin:12px 0}.share-form>.primary{margin:14px 15px}.share-form>#address-book-share-list,.share-form>#address-book-share-state{display:block;margin:0 15px 14px}.share-entry{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #e1e6e9}.share-entry small{color:#65717c}@media(max-width:700px){.share-form>.primary{width:calc(100% - 30px)}.share-entry{grid-template-columns:1fr auto}.share-entry button{grid-column:2;grid-row:1/3}}
.address-book-form{width:min(520px,calc(100vw - 32px))}.address-book-form>label{display:grid;gap:6px;padding:10px 18px}.address-book-form textarea{min-height:90px;resize:vertical}.address-book-form footer{display:flex;align-items:center;gap:10px}.address-book-form footer .danger{margin-right:auto;color:#b42318;border-color:#e5aaa5;background:#fff}.portal-header #create-address-book{white-space:nowrap}@media(max-width:900px){.portal-header #manage-address-book,.portal-header #share-address-book{display:none}.portal-header #create-address-book{padding:0 9px}}
.contact-card .contact-email{display:block;max-width:100%;padding:0;color:var(--muted);font:inherit;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.contact-card .contact-email:hover{color:var(--accent);text-decoration:underline}
