:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #1f2937;
  background: #f6f7f9;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #f6f7f9; }
button, input, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }

.mail-app {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  grid-template-rows: 68px 1fr;
  grid-template-areas:
    "topbar topbar"
    "sidebar content";
}

.topbar {
  grid-area: topbar;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 22px;
  background: #fff;
  border-bottom: 1px solid #e3e7ed;
}

.mail-brand { color: #1769e0; font-size: 18px; font-weight: 800; }
.account-area { display: flex; align-items: center; gap: 16px; }
.account-copy { display: grid; text-align: right; }
.account-copy strong { font-size: 13px; }
.account-copy span { color: #6b7280; font-size: 12px; }

.text-button,
.icon-button,
.close-button {
  border: 0;
  background: transparent;
  cursor: pointer;
}

.text-button { color: #1769e0; font-weight: 700; }

.sidebar {
  grid-area: sidebar;
  padding: 18px 14px;
  background: #fbfcfd;
  border-right: 1px solid #e3e7ed;
}

.compose-button {
  width: 100%;
  height: 44px;
  margin-bottom: 18px;
  border: 0;
  border-radius: 9px;
  color: #fff;
  background: #1769e0;
  font-weight: 750;
  cursor: pointer;
}

.sidebar nav { display: grid; gap: 3px; }

.folder {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 40px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  color: #526070;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.folder:hover { background: #f0f3f7; }
.folder.active { color: #145ebf; background: #eaf2ff; }
.folder-count { font-size: 12px; }
.folder.is-disabled { opacity: .52; cursor: default; }
.folder.is-disabled:hover { background: transparent; }

.mail-content {
  grid-area: content;
  min-width: 0;
  padding: 28px;
}

.mail-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}

.eyebrow {
  margin: 0 0 4px;
  color: #7b8794;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

h1 { margin: 0; font-size: 26px; }

.icon-button {
  width: 38px;
  height: 38px;
  color: #556273;
  background: #fff;
  border: 1px solid #dfe4eb;
  border-radius: 8px;
  font-size: 20px;
}

.icon-button:disabled { cursor: default; opacity: .6; }
.icon-button.is-refreshing { animation: mail-spin .8s linear infinite; }

.mail-status {
  margin: -6px 0 14px;
  padding: 10px 12px;
  color: #526070;
  background: #f1f5f9;
  border: 1px solid #e1e7ee;
  border-radius: 8px;
  font-size: 13px;
}

.message-list {
  min-height: 420px;
  background: #fff;
  border: 1px solid #e1e5eb;
  border-radius: 12px;
  overflow: hidden;
}

.empty-state {
  min-height: 420px;
  display: grid;
  place-items: center;
  align-content: center;
  padding: 28px;
  text-align: center;
}

.empty-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin-bottom: 14px;
  color: #1769e0;
  background: #edf4ff;
  border-radius: 50%;
  font-size: 23px;
}

.empty-state h2 { margin: 0; font-size: 19px; }
.empty-state p { max-width: 500px; margin: 8px 0 0; color: #707b89; line-height: 1.55; }
.error-state .empty-icon { color: #a84444; background: #fff0f0; }

.message-row {
  display: grid;
  grid-template-columns: 36px minmax(180px, 250px) minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 12px 16px 12px 10px;
  border-bottom: 1px solid #edf0f3;
  background: #fff;
  cursor: pointer;
  outline: none;
}

.message-row:last-child { border-bottom: 0; }
.message-row:hover,
.message-row:focus-visible { background: #fafbfd; }
.message-row:focus-visible { box-shadow: inset 0 0 0 2px #8ab8f8; }
.message-row.unread { background: #f7faff; }
.message-row.unread .message-subject,
.message-row.unread .sender-copy strong { font-weight: 800; }

.row-star-button {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #8793a2;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
}

.row-star-button:hover { background: #eef2f6; }
.row-star-button.starred { color: #d59b00; }
.row-star-button:disabled { cursor: default; opacity: 1; }
.row-star-button:disabled:hover { background: transparent; }
.row-direction-icon { color: #6f7b89; font-size: 16px; }

.message-sender {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 11px;
}

.sender-avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  color: #1769e0;
  background: #eaf2ff;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 800;
}

.sender-copy,
.message-summary {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.sender-copy strong,
.message-subject {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 650;
}

.sender-copy span,
.message-preview {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #7a8491;
  font-size: 12px;
}

.message-time {
  align-self: start;
  padding-top: 4px;
  color: #6c7886;
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
}

/* Full message view */
.message-view { min-width: 0; }

.message-view-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.message-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
}

.toolbar-button {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #dfe4eb;
  border-radius: 8px;
  color: #4f5c6b;
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.toolbar-button:hover { background: #f6f8fa; }
.toolbar-button:disabled { cursor: default; opacity: .55; }
.danger-button { color: #b23535; }
.danger-button:hover { background: #fff5f5; }

.message-view-card {
  min-height: 420px;
  padding: 26px 30px 34px;
  background: #fff;
  border: 1px solid #e1e5eb;
  border-radius: 12px;
}

.message-view-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}

.message-view-heading h2 {
  min-width: 0;
  margin: 0;
  color: #202a36;
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.24;
  overflow-wrap: anywhere;
}

.detail-date {
  flex: 0 0 auto;
  padding-top: 5px;
  color: #7a8491;
  font-size: 12px;
  white-space: nowrap;
}

.message-view-sender {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding-bottom: 22px;
  border-bottom: 1px solid #edf0f3;
}

.detail-avatar { width: 42px; height: 42px; font-size: 15px; }
.detail-sender-copy { min-width: 0; color: #273341; font-size: 13px; line-height: 1.5; }
.detail-sender-copy strong { font-size: 14px; }
.detail-sender-copy #detail-from-address { color: #6f7b89; }
.detail-recipient,
.detail-extra-headers { color: #7a8491; font-size: 12px; overflow-wrap: anywhere; }
.detail-extra-headers:empty { display: none; }

.message-body {
  max-width: 920px;
  padding: 30px 4px 10px;
  color: #27313e;
  font-size: 15px;
  line-height: 1.68;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.message-body a { color: #1769e0; text-decoration: underline; }
.message-body-placeholder { color: #778291; font-style: italic; }

/* Compose */
.compose-dialog {
  width: min(96vw, 720px);
  padding: 0;
  border: 1px solid #dce1e8;
  border-radius: 12px;
  box-shadow: 0 24px 70px rgba(20, 30, 45, .22);
}

.compose-dialog::backdrop { background: rgba(22, 30, 43, .32); }
.compose-card { display: grid; min-height: 540px; background: #fff; }
.compose-header,
.compose-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: #f6f8fa;
}
.compose-header { border-bottom: 1px solid #e3e7ed; }
.compose-header > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.compose-save-state { color: #7a8491; font-size: 11px; font-weight: 600; }
.compose-footer { border-top: 1px solid #e3e7ed; min-height: 58px; }
.close-button { font-size: 24px; color: #616c79; }
.close-button:disabled { opacity: .45; cursor: default; }

.compose-line {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  padding: 0 14px;
  border-bottom: 1px solid #edf0f3;
  color: #586575;
  font-size: 13px;
  font-weight: 650;
}
.compose-line input,
.compose-line select {
  width: 100%;
  height: 44px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #1f2937;
}

.compose-line select {
  appearance: auto;
  cursor: pointer;
  font-size: 13px;
}

.compose-from-line select:focus {
  color: var(--scarlet-red, #bf2f2f);
}
.compose-card textarea {
  width: 100%;
  min-height: 300px;
  padding: 18px;
  border: 0;
  outline: 0;
  resize: vertical;
  color: #27313e;
  line-height: 1.55;
}
.compose-line input:disabled,
.compose-card textarea:disabled { opacity: .72; }
.compose-status { color: #697685; font-size: 12px; line-height: 1.35; }
.compose-footer-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.compose-footer button {
  min-height: 36px;
  border-radius: 7px;
  padding: 0 16px;
  font-weight: 750;
  cursor: pointer;
}
.secondary-compose-button {
  border: 1px solid #d8dee7;
  color: #526070;
  background: #fff;
}
.secondary-compose-button:hover { background: #f5f7fa; }
.danger-compose-button { color: #b23535; }
.danger-compose-button:hover { background: #fff5f5; }
.send-button {
  border: 0;
  color: #fff;
  background: #1769e0;
}
.send-button:hover { background: #145fca; }
.compose-footer button:disabled { cursor: default; opacity: .55; }

@keyframes mail-spin { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
  .message-row { grid-template-columns: 34px minmax(150px, 210px) minmax(0, 1fr) auto; }
  .message-view-card { padding: 22px; }
}

@media (max-width: 760px) {
  .mail-app {
    grid-template-columns: 1fr;
    grid-template-rows: 64px auto 1fr;
    grid-template-areas: "topbar" "sidebar" "content";
  }

  .topbar { padding: 0 14px; }
  .account-copy { display: none; }
  .sidebar { border-right: 0; border-bottom: 1px solid #e3e7ed; padding: 12px; }
  .sidebar nav { display: flex; gap: 4px; overflow-x: auto; }
  .compose-button { width: auto; padding: 0 22px; }
  .folder { width: auto; min-width: max-content; gap: 10px; white-space: nowrap; }
  .mail-content { padding: 18px 12px; }

  .message-row {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 8px 10px;
    padding: 12px 10px;
  }

  .row-star-button { grid-column: 1; grid-row: 1; }
  .message-sender { grid-column: 2; grid-row: 1; }
  .message-summary { grid-column: 2 / -1; grid-row: 2; }
  .message-time { grid-column: 3; grid-row: 1; }
  .sender-copy span { display: none; }

  .message-view-toolbar { align-items: flex-start; }
  .message-actions { gap: 5px; }
  .toolbar-button { padding: 0 9px; }
  .message-view-card { padding: 18px 16px 28px; }
  .message-view-heading { display: grid; gap: 8px; }
  .detail-date { padding: 0; }
  .message-body { padding-top: 24px; }
}

/* ========================================================================
   SCARLET COMPACT THEME — UI V4
   Keeps the existing message, compose, draft, send, and folder behavior.
   ======================================================================== */
:root {
  --scarlet-red: #c92d2d;
  --scarlet-red-dark: #ad2323;
  --scarlet-red-soft: #fff0f0;
  --scarlet-red-softer: #fff7f7;
  --scarlet-border: #eadede;
  --scarlet-text: #241f20;
  --scarlet-muted: #7a6f71;
}

body { background: #faf9f9; color: var(--scarlet-text); }

.mail-app {
  grid-template-columns: 196px minmax(0, 1fr);
  grid-template-rows: 56px 1fr;
}

.topbar {
  padding: 0 16px;
  gap: 12px;
  border-bottom-color: var(--scarlet-border);
  background: rgba(255, 255, 255, .98);
}

.topbar-account {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.scarlet-back-button {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--scarlet-border);
  border-radius: 50%;
  background: #fff;
  color: var(--scarlet-red);
  font-size: 19px;
  font-weight: 800;
  line-height: 1;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.scarlet-back-button:hover {
  background: var(--scarlet-red-soft);
  border-color: #e5c5c5;
  transform: translateX(-1px);
}

.account-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
  text-align: left;
}

.account-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--scarlet-text);
  font-size: 12.5px;
  line-height: 1.15;
}

.account-copy span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--scarlet-muted);
  font-size: 10.5px;
  line-height: 1.15;
}

.account-profile-link {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  overflow: hidden;
  border: 1px solid #e8d8d8;
  border-radius: 50%;
  background: var(--scarlet-red-soft);
  box-shadow: 0 0 0 2px #fff;
}

.account-profile-link:hover { box-shadow: 0 0 0 2px #fff, 0 0 0 3px #e8c1c1; }

.account-profile-picture {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.account-profile-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--scarlet-red);
  background: var(--scarlet-red-soft);
  font-size: 12px;
  font-weight: 850;
}

.sidebar {
  padding: 12px 10px;
  background: #fff;
  border-right-color: var(--scarlet-border);
}

.compose-button {
  height: 38px;
  margin-bottom: 11px;
  border-radius: 7px;
  background: var(--scarlet-red);
  font-size: 13px;
  font-weight: 800;
}
.compose-button:hover { background: var(--scarlet-red-dark); }

.sidebar nav { gap: 1px; }
.folder {
  min-height: 34px;
  padding: 0 10px;
  border-radius: 6px;
  color: #665c5e;
  font-size: 12.5px;
}
.folder:hover { background: #faf2f2; }
.folder.active { color: var(--scarlet-red); background: var(--scarlet-red-soft); }
.folder-count { font-size: 11px; }

.mail-content { padding: 18px 20px; }
.mail-toolbar { margin-bottom: 12px; }
h1 { font-size: 22px; letter-spacing: -.02em; }

.icon-button {
  width: 33px;
  height: 33px;
  color: #675b5e;
  border-color: var(--scarlet-border);
  border-radius: 7px;
  font-size: 18px;
}
.icon-button:hover { background: var(--scarlet-red-softer); color: var(--scarlet-red); }

.mail-status {
  margin: -3px 0 10px;
  padding: 8px 10px;
  color: #685c5f;
  background: #fff7f7;
  border-color: #eedddd;
  border-radius: 6px;
  font-size: 12px;
}

.message-list {
  min-height: 380px;
  border-color: var(--scarlet-border);
  border-radius: 8px;
}
.empty-state { min-height: 380px; }
.empty-icon { color: var(--scarlet-red); background: var(--scarlet-red-soft); }

.message-row {
  grid-template-columns: 30px minmax(160px, 225px) minmax(0, 1fr) auto;
  gap: 9px;
  min-height: 60px;
  padding: 8px 12px 8px 8px;
  border-bottom-color: #f0e8e8;
}
.message-row:hover,
.message-row:focus-visible { background: #fffafa; }
.message-row:focus-visible { box-shadow: inset 0 0 0 2px #e9a6a6; }
.message-row.unread { background: #fff7f7; }

.row-star-button { width: 30px; height: 30px; font-size: 19px; }
.row-star-button:hover { background: #f8eded; }
.row-star-button.starred { color: #c78f00; }

.message-sender { gap: 9px; }
.sender-avatar {
  width: 31px;
  height: 31px;
  color: var(--scarlet-red);
  background: var(--scarlet-red-soft);
  font-size: 11.5px;
}
.sender-copy strong,
.message-subject { font-size: 13px; }
.sender-copy span,
.message-preview,
.message-time { font-size: 11px; }
.message-time { padding-top: 3px; }

.message-view-toolbar { margin-bottom: 10px; }
.message-actions { gap: 5px; }
.toolbar-button {
  min-height: 32px;
  padding: 0 10px;
  border-color: var(--scarlet-border);
  border-radius: 6px;
  font-size: 12px;
}
.toolbar-button:hover { background: #fff7f7; }

.message-view-card {
  min-height: 380px;
  padding: 20px 22px 26px;
  border-color: var(--scarlet-border);
  border-radius: 8px;
}
.message-view-heading { margin-bottom: 18px; }
.message-view-heading h2 { font-size: clamp(20px, 2.6vw, 26px); }
.message-view-sender { padding-bottom: 16px; border-bottom-color: #f0e8e8; }
.detail-avatar { width: 36px; height: 36px; font-size: 13px; }
.message-body { padding: 22px 2px 8px; font-size: 14px; line-height: 1.62; }
.message-body a { color: var(--scarlet-red); }

.compose-dialog {
  width: min(94vw, 650px);
  border-color: #e3d2d2;
  border-radius: 9px;
  box-shadow: 0 18px 56px rgba(48, 23, 23, .20);
}
.compose-dialog::backdrop { background: rgba(42, 26, 27, .30); }
.compose-card { min-height: 480px; }
.compose-header,
.compose-footer { padding: 9px 12px; background: #fff8f8; }
.compose-header { border-bottom-color: #ecdddd; }
.compose-footer { border-top-color: #ecdddd; min-height: 50px; }
.compose-line { grid-template-columns: 62px minmax(0, 1fr); padding: 0 12px; border-bottom-color: #f0e7e7; font-size: 12px; }
.compose-line input, .compose-line select { height: 39px; }
.compose-card textarea { min-height: 270px; padding: 14px; font-size: 13.5px; }
.compose-footer button { min-height: 32px; border-radius: 6px; padding: 0 13px; font-size: 12px; }
.send-button { background: var(--scarlet-red); }
.send-button:hover { background: var(--scarlet-red-dark); }
.secondary-compose-button { border-color: #e2d5d5; }
.secondary-compose-button:hover { background: #fff7f7; }

@media (max-width: 900px) {
  .message-row { grid-template-columns: 30px minmax(145px, 190px) minmax(0, 1fr) auto; }
}

@media (max-width: 760px) {
  .mail-app {
    grid-template-rows: 56px auto 1fr;
  }

  .topbar { padding: 0 10px; }
  .account-copy { display: grid; max-width: min(64vw, 320px); }
  .scarlet-back-button { width: 30px; height: 30px; }
  .account-profile-link { width: 32px; height: 32px; }
  .sidebar { padding: 8px; border-bottom-color: var(--scarlet-border); }
  .sidebar nav { gap: 2px; }
  .compose-button { height: 34px; padding: 0 16px; margin-bottom: 7px; }
  .folder { min-height: 32px; }
  .mail-content { padding: 13px 10px; }
  .message-row { padding: 8px; }
}

/* ========================================================================
   SCARLET RESPONSIVE FIX — UI V4.1
   Prevents the desktop grid from surviving into narrow/mobile viewports.
   ======================================================================== */

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.mail-app {
  width: 100%;
  max-width: 100vw;
}

.topbar,
.sidebar,
.mail-content,
.message-list,
.message-view {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 760px) {
  .mail-app {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 56px auto minmax(0, 1fr);
    grid-template-areas:
      "topbar"
      "sidebar"
      "content";
  }

  .topbar {
    width: 100%;
    min-width: 0;
  }

  .topbar-account {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
  }

  .account-copy {
    min-width: 0;
    max-width: calc(100vw - 108px);
  }

  .sidebar {
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .sidebar nav {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .sidebar nav::-webkit-scrollbar { display: none; }

  .folder {
    flex: 0 0 auto;
  }

  .mail-content {
    width: 100%;
    min-width: 0;
  }

  .mail-toolbar,
  .message-list,
  .message-view,
  .message-view-card {
    width: 100%;
    min-width: 0;
  }

  .message-row {
    width: 100%;
    min-width: 0;
    grid-template-columns: 30px minmax(0, 1fr) auto;
  }

  .message-sender,
  .sender-copy,
  .message-summary {
    min-width: 0;
  }

  .message-view-toolbar {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .message-actions {
    width: 100%;
    min-width: 0;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .message-actions::-webkit-scrollbar { display: none; }
  .message-actions .toolbar-button { flex: 0 0 auto; }

  .message-view-heading {
    min-width: 0;
  }

  .message-view-heading h2 {
    min-width: 0;
    max-width: 100%;
  }

  .detail-date {
    white-space: normal;
  }

  .message-body {
    width: 100%;
    max-width: 100%;
  }

  .compose-dialog {
    width: calc(100vw - 16px);
    max-width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    margin: auto;
  }

  .compose-card {
    min-height: 0;
    max-height: calc(100dvh - 16px);
    grid-template-rows: auto auto auto auto auto auto minmax(120px, 1fr) auto;
  }

  .compose-card textarea {
    min-height: 120px;
    height: 100%;
  }

  .compose-footer {
    align-items: flex-end;
    flex-wrap: wrap;
  }

  .compose-status {
    min-width: 0;
    flex: 1 1 180px;
  }

  .compose-footer-actions {
    margin-left: auto;
  }
}

@media (max-width: 520px) {
  .topbar {
    padding: 0 8px;
  }

  .topbar-account {
    gap: 8px;
  }

  .account-copy {
    max-width: calc(100vw - 94px);
  }

  .account-copy strong { font-size: 12px; }
  .account-copy span { font-size: 10px; }

  .scarlet-back-button {
    width: 29px;
    height: 29px;
  }

  .account-profile-link {
    width: 31px;
    height: 31px;
  }

  .sidebar {
    padding: 7px 8px 8px;
  }

  .compose-button {
    width: 100%;
    margin-bottom: 6px;
  }

  .folder {
    min-height: 30px;
    padding: 0 9px;
    font-size: 12px;
  }

  .mail-content {
    padding: 11px 8px 14px;
  }

  h1 { font-size: 20px; }

  .message-list {
    border-radius: 7px;
  }

  .message-row {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 6px 8px;
    min-height: 58px;
    padding: 8px 7px;
  }

  .row-star-button {
    width: 28px;
    height: 28px;
  }

  .sender-avatar {
    width: 29px;
    height: 29px;
  }

  .sender-copy strong,
  .message-subject {
    font-size: 12.5px;
  }

  .message-time,
  .message-preview {
    font-size: 10.5px;
  }

  .message-view-card {
    min-height: 0;
    padding: 16px 13px 22px;
  }

  .message-view-sender {
    gap: 9px;
  }

  .detail-avatar {
    width: 32px;
    height: 32px;
  }

  .message-body {
    padding-top: 18px;
    font-size: 13.5px;
  }

  .compose-line {
    grid-template-columns: 52px minmax(0, 1fr);
    padding: 0 10px;
  }

  .compose-footer {
    padding: 8px 10px;
  }

  .compose-footer-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .compose-footer button {
    width: 100%;
    padding: 0 8px;
  }
}


/* ===== Bromero Mail v5: account avatars, B2 attachments, context actions ===== */
.sender-avatar { overflow: hidden; flex: 0 0 auto; }
.sender-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }

.detail-attachments { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--border, #eceff3); }
.detail-attachments h3 { margin: 0 0 10px; font-size: 13px; }
.detail-attachment-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.detail-attachment-card { min-width: 0; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid #e5e7eb; border-radius: 9px; background: #fff; transition: background .15s ease, border-color .15s ease; }
.detail-attachment-card:hover { background: #fafafa; border-color: #d1d5db; }
.detail-attachment-card > span:last-child { min-width: 0; display: grid; }
.detail-attachment-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; }
.detail-attachment-card small { color: #7b818a; font-size: 10.5px; margin-top: 2px; }
.detail-attachment-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 7px; background: #f5f6f8; font-size: 17px; }
.attachment-image-preview { width: 46px; height: 40px; object-fit: cover; border-radius: 7px; background: #f3f4f6; }

.compose-attachments-wrap { display: flex; align-items: flex-start; gap: 8px; padding: 8px 12px; border-top: 1px solid #edf0f3; background: #fff; }
.attach-button { flex: 0 0 auto; min-height: 32px; }
.compose-attachment-list { min-width: 0; flex: 1; display: flex; flex-wrap: wrap; gap: 6px; }
.compose-attachment-chip { min-width: 0; max-width: 240px; display: flex; align-items: center; gap: 7px; padding: 5px 6px 5px 8px; border: 1px solid #e1e5ea; border-radius: 8px; background: #f8f9fb; }
.attachment-chip-copy { min-width: 0; display: grid; }
.attachment-chip-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; }
.attachment-chip-copy small { color: #7b818a; font-size: 9.5px; }
.compose-attachment-chip button { width: 24px; height: 24px; padding: 0; border: 0; background: transparent; color: #6b7280; cursor: pointer; font-size: 17px; line-height: 1; }

.mail-context-menu { position: fixed; z-index: 10000; width: 190px; padding: 6px; background: rgba(255,255,255,.98); border: 1px solid #e1e4e8; border-radius: 10px; box-shadow: 0 12px 35px rgba(0,0,0,.16); backdrop-filter: blur(14px); }
.mail-context-menu[hidden] { display: none; }
.mail-context-menu button { display: block; width: 100%; min-height: 34px; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; color: #25272b; text-align: left; font-size: 12.5px; cursor: pointer; }
.mail-context-menu button:hover { background: #f3f4f6; }
.mail-context-menu button[hidden] { display: none; }
.mail-context-menu .context-danger { color: #c91920; }
.context-separator { height: 1px; margin: 5px 4px; background: #eceef1; }

@media (max-width: 760px) {
  .compose-attachments-wrap { flex-direction: column; align-items: stretch; }
  .compose-attachment-chip { max-width: 100%; }
  .detail-attachment-grid { grid-template-columns: 1fr; }
  .mail-context-menu { width: min(220px, calc(100vw - 16px)); }
}

/* ========================================================================
   BROMERO MAIL V6 — RICH COMPOSE + EMAIL SETTINGS + SIGNATURES
   ======================================================================== */

.topbar-actions { position: relative; display: flex; align-items: center; gap: 7px; }
.mail-account-menu-button {
  width: 30px; height: 34px; display: grid; place-items: center; padding: 0;
  border: 0; border-radius: 7px; background: transparent; color: #6b5d60;
  font-size: 21px; line-height: 1; cursor: pointer;
}
.mail-account-menu-button:hover,
.mail-account-menu-button[aria-expanded="true"] { background: #fff2f2; color: var(--scarlet-red, #bf2f2f); }
.mail-account-menu {
  position: absolute; z-index: 80; top: calc(100% + 8px); right: 0; min-width: 168px;
  padding: 6px; border: 1px solid #eadcdc; border-radius: 8px; background: #fff;
  box-shadow: 0 12px 36px rgba(52, 27, 27, .18);
}
.mail-account-menu button,
.compose-popover button,
.send-options-menu button {
  width: 100%; min-height: 34px; padding: 0 10px; border: 0; border-radius: 6px;
  background: transparent; text-align: left; cursor: pointer; font-size: 12.5px;
}
.mail-account-menu button:hover,
.compose-popover button:hover,
.send-options-menu button:hover { background: #fff3f3; color: var(--scarlet-red, #bf2f2f); }

.compose-dialog { width: min(96vw, 760px); overflow: visible; }
.compose-card {
  min-height: 560px;
  grid-template-rows: auto auto auto auto auto auto auto minmax(220px, 1fr) auto auto auto;
}
.compose-body-editor {
  width: 100%; min-height: 270px; max-height: 48vh; overflow-y: auto;
  padding: 16px 14px; border: 0; outline: 0; color: #27313e;
  font-size: 13.5px; line-height: 1.58; white-space: pre-wrap; overflow-wrap: anywhere;
}
.compose-body-editor:empty::before,
.signature-rich-editor:empty::before { content: attr(data-placeholder); color: #9b9597; pointer-events: none; }
.compose-body-editor[contenteditable="false"] { opacity: .72; }
.compose-body-editor a,
.signature-rich-editor a { color: #b52d2d; text-decoration: underline; }
.bromero-mail-signature { color: inherit; }

.compose-format-toolbar {
  display: flex; align-items: center; gap: 4px; min-width: 0; overflow-x: auto;
  padding: 6px 10px; border-bottom: 1px solid #eee3e3; background: #fffafa;
  scrollbar-width: none;
}
.compose-format-toolbar::-webkit-scrollbar { display: none; }
.compose-format-toolbar button,
.compose-format-toolbar select,
.signature-format-toolbar button {
  flex: 0 0 auto; min-width: 30px; height: 30px; padding: 0 7px;
  border: 1px solid transparent; border-radius: 5px; background: transparent;
  color: #5f5658; font-size: 12px; cursor: pointer;
}
.compose-format-toolbar button:hover,
.compose-format-toolbar select:hover,
.signature-format-toolbar button:hover { background: #fff0f0; border-color: #f0dddd; }
.compose-format-toolbar select { min-width: 78px; background: #fff; border-color: #eadfdf; }
.format-color { display: inline-flex; align-items: center; gap: 3px; height: 30px; padding: 0 4px; border-radius: 5px; cursor: pointer; }
.format-color:hover { background: #fff0f0; }
.format-color span { font-weight: 800; }
.format-color input { width: 20px; height: 20px; padding: 0; border: 0; background: transparent; }

.compose-attachments-wrap { min-height: 0; padding: 5px 12px 2px; border-top: 0; }
.compose-attachment-list:empty { display: none; }
.compose-tool-row {
  position: relative; display: flex; align-items: center; justify-content: space-between;
  min-height: 42px; padding: 4px 10px; border-top: 1px solid #f0e7e7; background: #fff;
}
.compose-tools { display: flex; align-items: center; gap: 2px; }
.compose-icon-button {
  width: 34px; height: 32px; display: grid; place-items: center; padding: 0;
  border: 0; border-radius: 6px; background: transparent; color: #62585a;
  font-size: 17px; cursor: pointer;
}
.compose-icon-button:first-child { font-family: Georgia, serif; font-weight: 800; font-size: 16px; }
.compose-icon-button:hover,
.compose-icon-button.active { background: #fff0f0; color: var(--scarlet-red, #bf2f2f); }
.compose-icon-button:disabled { opacity: .45; cursor: default; }
.compose-popover-wrap { position: absolute; left: 10px; bottom: 42px; z-index: 90; }
/* Respect the HTML hidden attribute even when a popover has its own display rule (e.g. emoji grid). */
.compose-popover[hidden],
.send-options-menu[hidden],
.mail-account-menu[hidden] {
  display: none !important;
}
.compose-popover,
.send-options-menu {
  position: absolute; bottom: 0; left: 0; min-width: 180px; max-width: min(320px, 80vw);
  padding: 6px; border: 1px solid #eadcdc; border-radius: 8px; background: #fff;
  box-shadow: 0 12px 34px rgba(53, 28, 28, .20);
}
.emoji-popover { width: 250px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 2px; }
.emoji-popover button { min-width: 0; padding: 0; text-align: center; font-size: 19px; }
.signature-popover { width: 220px; }
.compose-more-menu { width: 190px; }

.send-split-button { position: relative; display: flex; align-items: stretch; }
.send-split-button .send-button { border-radius: 7px 0 0 7px; }
.send-options-button {
  min-width: 34px !important; padding: 0 8px !important; border: 0; border-left: 1px solid rgba(255,255,255,.35);
  border-radius: 0 7px 7px 0 !important; color: #fff; background: var(--scarlet-red, #bf2f2f); cursor: pointer;
}
.send-options-button:hover { background: var(--scarlet-red-dark, #9f2424); }
.send-options-menu { left: auto; right: 0; bottom: calc(100% + 7px); min-width: 150px; }

.email-settings-dialog,
.signature-editor-dialog,
.small-dialog {
  padding: 0; border: 1px solid #e4d7d7; border-radius: 10px; background: #fff;
  box-shadow: 0 24px 72px rgba(47, 24, 24, .22);
}
.email-settings-dialog { width: min(92vw, 760px); }
.signature-editor-dialog { width: min(92vw, 620px); }
.small-dialog { width: min(92vw, 420px); }
.email-settings-dialog::backdrop,
.signature-editor-dialog::backdrop,
.small-dialog::backdrop { background: rgba(45, 29, 30, .32); }
.email-settings-card,
.signature-editor-card,
.small-dialog-card { background: #fff; }
.settings-dialog-header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 16px 18px; border-bottom: 1px solid #eee2e2; background: #fff8f8;
}
.settings-dialog-header h2 { margin: 0; color: #30282a; font-size: 20px; }
.settings-dialog-header p { margin: 3px 0 0; color: #83787a; font-size: 12px; }
.settings-section { padding: 20px 18px 24px; }
.settings-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.settings-section-heading h3 { margin: 0; font-size: 16px; }
.settings-section-heading p { margin: 4px 0 0; color: #83787a; font-size: 12px; line-height: 1.45; }
.settings-status { min-height: 18px; margin-bottom: 8px; color: #786b6d; font-size: 12px; }
.signature-list { display: grid; gap: 8px; }
.signature-empty { display: grid; gap: 4px; padding: 20px; border: 1px dashed #decfcf; border-radius: 8px; color: #776b6d; background: #fffafa; }
.signature-empty strong { color: #443b3d; }
.signature-settings-row {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center;
  padding: 12px; border: 1px solid #e9dddd; border-radius: 8px; background: #fff;
}
.signature-settings-copy { min-width: 0; }
.signature-settings-copy > strong { display: block; margin-bottom: 5px; font-size: 13px; }
.signature-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 6px; }
.signature-badges span { padding: 2px 6px; border-radius: 999px; color: #a72d2d; background: #fff0f0; font-size: 10px; font-weight: 700; }
.signature-preview { max-height: 72px; overflow: hidden; color: #74696b; font-size: 11.5px; line-height: 1.35; }
.signature-row-actions { display: flex; gap: 6px; }
.signature-row-actions button { min-height: 30px; padding: 0 9px; border: 1px solid #e1d6d6; border-radius: 6px; background: #fff; cursor: pointer; }
.signature-row-actions button:hover { background: #fff5f5; }
.danger-text-button { color: #b72f2f; }
.settings-field { display: grid; gap: 6px; padding: 14px 18px 0; color: #5f5557; font-size: 12px; font-weight: 650; }
.settings-field input { width: 100%; height: 38px; padding: 0 10px; border: 1px solid #dfd2d2; border-radius: 7px; outline: 0; }
.settings-field input:focus { border-color: #c76060; box-shadow: 0 0 0 2px #f6dede; }
.signature-format-toolbar { display: flex; flex-wrap: wrap; gap: 4px; padding: 12px 18px 6px; }
.signature-rich-editor { min-height: 170px; margin: 0 18px; padding: 12px; border: 1px solid #dfd2d2; border-radius: 8px; outline: 0; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.signature-rich-editor:focus { border-color: #c76060; box-shadow: 0 0 0 2px #f6dede; }
.settings-check { display: flex; align-items: center; gap: 8px; padding: 10px 18px 0; color: #5f5557; font-size: 12px; }
.settings-check input { accent-color: var(--scarlet-red, #bf2f2f); }
.small-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 16px 18px; }
.small-dialog-actions button { min-height: 34px; padding: 0 14px; border-radius: 7px; cursor: pointer; }

@media (max-width: 760px) {
  .topbar-actions { gap: 3px; }
  .mail-account-menu-button { width: 28px; }
  .compose-card { grid-template-rows: auto auto auto auto auto auto auto minmax(120px,1fr) auto auto auto; }
  .compose-body-editor { min-height: 120px; max-height: 35vh; }
  .compose-tools { max-width: calc(100vw - 70px); overflow-x: auto; scrollbar-width: none; }
  .compose-tools::-webkit-scrollbar { display: none; }
  .compose-popover-wrap { left: 6px; }
  .settings-section-heading { align-items: stretch; flex-direction: column; }
  .signature-settings-row { grid-template-columns: minmax(0,1fr); }
  .signature-row-actions { justify-content: flex-end; }
}

/* ========================================================================
   PEPEROMIA MAIL V8 — BOTANICAL UI + LIGHT/DARK MODE
   ======================================================================== */
:root {
  --scarlet-red: #1f5a47;
  --scarlet-red-dark: #173f34;
  --scarlet-red-soft: #e7f1ec;
  --scarlet-red-softer: #f2f7f4;
  --scarlet-border: #dbe6e0;
  --scarlet-text: #17211d;
  --scarlet-muted: #74827c;

  --pep-950: #0d2a21;
  --pep-900: #143c30;
  --pep-800: #1b4f3e;
  --pep-700: #24624d;
  --pep-600: #337a61;
  --pep-500: #4b9277;
  --pep-300: #9ac8b5;
  --pep-200: #c7dfd4;
  --pep-100: #e4efe9;
  --pep-50: #f3f8f5;
  --pep-bg: #f3f6f4;
  --pep-surface: #ffffff;
  --pep-surface-2: #f8faf9;
  --pep-surface-3: #eef4f0;
  --pep-border: #dce6e1;
  --pep-border-strong: #ccd9d2;
  --pep-text: #17211d;
  --pep-muted: #74817b;
  --pep-faint: #9aa7a1;
  --pep-shadow: 0 18px 50px rgba(25, 55, 44, .10);
  --pep-shadow-soft: 0 8px 28px rgba(25, 55, 44, .08);
  --pep-danger: #b24c4c;
  --pep-danger-soft: #fff1f1;
  color-scheme: light;
}

html[data-theme="dark"] {
  --scarlet-red: #78b99f;
  --scarlet-red-dark: #5a9e84;
  --scarlet-red-soft: #19352b;
  --scarlet-red-softer: #142921;
  --scarlet-border: #2c4038;
  --scarlet-text: #edf5f1;
  --scarlet-muted: #98aaa2;

  --pep-bg: #0c1311;
  --pep-surface: #111a17;
  --pep-surface-2: #151f1c;
  --pep-surface-3: #1a2823;
  --pep-border: #26362f;
  --pep-border-strong: #33473e;
  --pep-text: #edf5f1;
  --pep-muted: #9aaba4;
  --pep-faint: #73847d;
  --pep-shadow: 0 18px 55px rgba(0, 0, 0, .35);
  --pep-shadow-soft: 0 8px 30px rgba(0, 0, 0, .24);
  --pep-danger: #e98a8a;
  --pep-danger-soft: #321d1d;
  color-scheme: dark;
}

html { background: var(--pep-bg); }
body {
  background:
    radial-gradient(circle at 82% -15%, color-mix(in srgb, var(--pep-500) 9%, transparent), transparent 35%),
    var(--pep-bg);
  color: var(--pep-text);
  transition: background-color .25s ease, color .25s ease;
}

.mail-app {
  grid-template-columns: 210px minmax(0, 1fr);
  grid-template-rows: 64px 1fr;
  background: transparent;
}

.topbar {
  height: 64px;
  padding: 0 18px;
  border-bottom: 1px solid var(--pep-border);
  background: color-mix(in srgb, var(--pep-surface) 92%, transparent);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  transition: background .25s ease, border-color .25s ease;
}

.peperomia-brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 11px;
}

.peperomia-mark {
  position: relative;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 11px 11px 11px 4px;
  background: linear-gradient(145deg, var(--pep-800), var(--pep-600));
  box-shadow: 0 7px 18px rgba(26, 81, 62, .2), inset 0 1px 0 rgba(255,255,255,.2);
  transform: rotate(-3deg);
}

.peperomia-mark::before,
.peperomia-mark::after,
.peperomia-mark span {
  content: "";
  position: absolute;
  background: rgba(255,255,255,.86);
  transform-origin: bottom center;
}
.peperomia-mark::before { width: 2px; height: 18px; border-radius: 99px; transform: rotate(20deg); }
.peperomia-mark::after { width: 10px; height: 14px; border-radius: 10px 10px 2px 10px; transform: translate(-5px,-4px) rotate(-28deg); opacity:.92; }
.peperomia-mark span { width: 9px; height: 12px; border-radius: 10px 10px 10px 2px; transform: translate(5px,-1px) rotate(35deg); opacity:.72; }

.peperomia-brand-copy { display: grid; gap: 0; line-height: 1.05; }
.peperomia-brand-copy strong { font-size: 17px; letter-spacing: -.025em; color: var(--pep-text); }
.peperomia-brand-copy span { margin-top: 4px; color: var(--pep-muted); font-size: 10px; letter-spacing: .035em; text-transform: uppercase; }

.topbar-actions { gap: 8px; }
.topbar-account-copy { margin-right: 4px; text-align: right; }
.topbar-account-copy strong { color: var(--pep-text); }
.topbar-account-copy span { color: var(--pep-muted); }

.theme-toggle,
.mail-account-menu-button {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--pep-muted);
  cursor: pointer;
  transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}
.theme-toggle { font-size: 16px; }
.theme-toggle:hover,
.mail-account-menu-button:hover,
.mail-account-menu-button[aria-expanded="true"] {
  background: var(--pep-surface-3);
  border-color: var(--pep-border);
  color: var(--scarlet-red);
  transform: translateY(-1px);
}

.account-profile-link {
  width: 36px;
  height: 36px;
  border-color: var(--pep-border);
  background: var(--pep-surface-3);
  box-shadow: 0 0 0 2px var(--pep-surface);
}
.account-profile-fallback { color: var(--scarlet-red); background: var(--pep-surface-3); }
.account-profile-link:hover { box-shadow: 0 0 0 2px var(--pep-surface), 0 0 0 4px color-mix(in srgb, var(--scarlet-red) 30%, transparent); }

.sidebar {
  padding: 18px 12px;
  background: color-mix(in srgb, var(--pep-surface) 70%, var(--pep-bg));
  border-right: 1px solid var(--pep-border);
  transition: background .25s ease, border-color .25s ease;
}
.compose-button {
  height: 42px;
  margin-bottom: 16px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--pep-900), var(--pep-700));
  box-shadow: 0 8px 18px rgba(20, 70, 53, .18);
  letter-spacing: .01em;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.compose-button:hover {
  background: linear-gradient(135deg, var(--pep-800), var(--pep-600));
  transform: translateY(-1px);
  box-shadow: 0 11px 24px rgba(20, 70, 53, .24);
}
.compose-button:active { transform: translateY(0) scale(.99); }

.sidebar nav { gap: 4px; }
.folder {
  min-height: 38px;
  padding: 0 11px;
  border-radius: 10px;
  color: var(--pep-muted);
  font-weight: 650;
  transition: background .16s ease, color .16s ease, transform .16s ease;
}
.folder:hover { background: var(--pep-surface-3); color: var(--pep-text); transform: translateX(2px); }
.folder.active { color: var(--pep-900); background: var(--pep-100); }
html[data-theme="dark"] .folder.active { color: #c9eadc; background: #1c382e; }
.folder-count { color: inherit; opacity: .78; }

.mail-content { padding: 26px 28px 40px; }
.mail-toolbar { margin-bottom: 16px; }
.folder-heading { min-width: 0; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.folder-heading h1 { color: var(--pep-text); font-size: 27px; letter-spacing: -.035em; }
.mailbox-context { display: inline-flex; align-items: center; gap: 6px; color: var(--pep-muted); font-size: 13px; font-weight: 550; }
.mailbox-context > span { color: var(--pep-faint); }
.mailbox-context select {
  max-width: min(420px, 56vw);
  padding: 4px 24px 4px 6px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--pep-muted);
  font: inherit;
  font-weight: 650;
  cursor: pointer;
  border-radius: 7px;
  transition: background .16s ease, color .16s ease;
}
.mailbox-context select:hover,
.mailbox-context select:focus { background: var(--pep-surface-3); color: var(--scarlet-red); }

.icon-button {
  width: 36px;
  height: 36px;
  border-color: var(--pep-border);
  background: var(--pep-surface);
  color: var(--pep-muted);
  border-radius: 11px;
  box-shadow: var(--pep-shadow-soft);
  transition: transform .16s ease, background .16s ease, color .16s ease;
}
.icon-button:hover { background: var(--pep-surface-3); color: var(--scarlet-red); transform: translateY(-1px); }

.mail-status {
  color: var(--pep-muted);
  background: var(--pep-surface-3);
  border-color: var(--pep-border);
  border-radius: 10px;
  animation: peperomia-fade-up .2s ease both;
}

.message-list {
  min-height: 420px;
  border: 1px solid var(--pep-border);
  border-radius: 16px;
  background: var(--pep-surface);
  box-shadow: var(--pep-shadow-soft);
  overflow: hidden;
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.message-row {
  position: relative;
  min-height: 70px;
  padding: 11px 15px 11px 10px;
  border-bottom-color: var(--pep-border);
  background: var(--pep-surface);
  transition: background .14s ease, transform .14s ease, box-shadow .14s ease;
  animation: peperomia-row-in .23s ease both;
}
.message-row:hover,
.message-row:focus-visible {
  background: var(--pep-surface-2);
  transform: translateX(2px);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--scarlet-red) 54%, transparent);
}
.message-row.unread { background: color-mix(in srgb, var(--pep-100) 58%, var(--pep-surface)); }
html[data-theme="dark"] .message-row.unread { background: #14251f; }
.message-row.unread::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 3px;
  border-radius: 0 99px 99px 0;
  background: var(--pep-600);
}
.sender-avatar { color: var(--scarlet-red); background: var(--pep-surface-3); }
.sender-copy strong, .message-subject { color: var(--pep-text); }
.sender-copy span, .message-preview, .message-time { color: var(--pep-muted); }
.row-star-button { color: var(--pep-faint); }
.row-star-button:hover { background: var(--pep-surface-3); }
.row-star-button.starred { color: #c59b37; }

.message-view { animation: peperomia-fade-up .2s ease both; }
.message-view-toolbar { margin-bottom: 14px; }
.toolbar-button {
  min-height: 34px;
  border-color: var(--pep-border);
  background: var(--pep-surface);
  color: var(--pep-muted);
  border-radius: 9px;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.toolbar-button:hover { background: var(--pep-surface-3); color: var(--pep-text); transform: translateY(-1px); }
.danger-button { color: var(--pep-danger); }
.danger-button:hover { background: var(--pep-danger-soft); color: var(--pep-danger); }

.message-view-card {
  min-height: 420px;
  padding: 28px 32px 38px;
  border-color: var(--pep-border);
  border-radius: 16px;
  background: var(--pep-surface);
  box-shadow: var(--pep-shadow-soft);
}
.message-view-heading h2 { color: var(--pep-text); letter-spacing: -.025em; }
.detail-date, .detail-recipient, .detail-extra-headers, .detail-sender-copy #detail-from-address { color: var(--pep-muted); }
.detail-sender-copy { color: var(--pep-text); }
.message-view-sender { border-bottom-color: var(--pep-border); }
.message-body {
  max-width: 980px;
  padding: 30px 6px 12px;
  color: var(--pep-text);
  font-size: 15px;
  line-height: 1.72;
}
.message-body a { color: var(--pep-600); text-decoration-color: color-mix(in srgb, var(--pep-600) 55%, transparent); text-underline-offset: 2px; }
.message-body.rich-email { white-space: normal; }
.message-body.rich-email p { margin: 0 0 1em; }
.message-body.rich-email h1,
.message-body.rich-email h2,
.message-body.rich-email h3,
.message-body.rich-email h4 { margin: 1.2em 0 .55em; color: var(--pep-text); line-height: 1.25; }
.message-body.rich-email ul,
.message-body.rich-email ol { padding-left: 1.6em; }
.message-body.rich-email blockquote { margin: 1em 0; padding: .25em 0 .25em 1em; border-left: 3px solid var(--pep-300); color: var(--pep-muted); }
.message-body.rich-email table { max-width: 100%; border-collapse: collapse; }
.message-body.rich-email td,
.message-body.rich-email th { padding: 6px 8px; }
.message-body.rich-email * { max-width: 100%; }

/* Compose and modal surfaces */
.compose-dialog,
.email-settings-dialog,
.signature-editor-dialog,
.small-dialog {
  border-color: var(--pep-border);
  background: var(--pep-surface);
  box-shadow: var(--pep-shadow);
  color: var(--pep-text);
}
.compose-dialog { border-radius: 16px; }
.compose-dialog::backdrop,
.email-settings-dialog::backdrop,
.signature-editor-dialog::backdrop,
.small-dialog::backdrop { background: rgba(5, 17, 13, .42); backdrop-filter: blur(4px); }
.compose-card,
.email-settings-card,
.signature-editor-card,
.small-dialog-card { background: var(--pep-surface); color: var(--pep-text); }
.compose-header,
.compose-footer,
.settings-dialog-header { background: var(--pep-surface-2); border-color: var(--pep-border); }
.compose-header strong,
.settings-dialog-header h2,
.settings-section-heading h3 { color: var(--pep-text); }
.compose-save-state,
.settings-dialog-header p,
.settings-section-heading p,
.settings-status { color: var(--pep-muted); }
.compose-line { color: var(--pep-muted); border-bottom-color: var(--pep-border); }
.compose-line input,
.compose-line select { color: var(--pep-text); }
.compose-line select:focus { color: var(--scarlet-red); }
.compose-body-editor { color: var(--pep-text); background: var(--pep-surface); }
.compose-format-toolbar { border-bottom-color: var(--pep-border); background: var(--pep-surface-2); }
.compose-format-toolbar button,
.compose-format-toolbar select,
.signature-format-toolbar button { color: var(--pep-muted); }
.compose-format-toolbar button:hover,
.compose-format-toolbar select:hover,
.signature-format-toolbar button:hover,
.compose-icon-button:hover,
.compose-icon-button.active { background: var(--pep-surface-3); border-color: var(--pep-border); color: var(--scarlet-red); }
.compose-format-toolbar select { background: var(--pep-surface); border-color: var(--pep-border); }
.compose-tool-row { border-top-color: var(--pep-border); background: var(--pep-surface); }
.compose-icon-button { color: var(--pep-muted); }
.compose-attachments-wrap { background: var(--pep-surface); }
.compose-attachment-chip { border-color: var(--pep-border); background: var(--pep-surface-2); }
.attachment-chip-copy strong { color: var(--pep-text); }
.attachment-chip-copy small { color: var(--pep-muted); }
.secondary-compose-button { border-color: var(--pep-border); color: var(--pep-muted); background: var(--pep-surface); }
.secondary-compose-button:hover { background: var(--pep-surface-3); }
.send-button,
.send-options-button { background: linear-gradient(135deg, var(--pep-900), var(--pep-700)); }
.send-button:hover,
.send-options-button:hover { background: linear-gradient(135deg, var(--pep-800), var(--pep-600)); }

.mail-account-menu,
.compose-popover,
.send-options-menu,
.mail-context-menu {
  border-color: var(--pep-border);
  background: color-mix(in srgb, var(--pep-surface) 96%, transparent);
  box-shadow: var(--pep-shadow);
  color: var(--pep-text);
}
.mail-account-menu button,
.compose-popover button,
.send-options-menu button,
.mail-context-menu button { color: var(--pep-text); }
.mail-account-menu button:hover,
.compose-popover button:hover,
.send-options-menu button:hover,
.mail-context-menu button:hover { background: var(--pep-surface-3); color: var(--scarlet-red); }
.context-separator { background: var(--pep-border); }

.signature-empty,
.signature-settings-row { border-color: var(--pep-border); background: var(--pep-surface-2); color: var(--pep-muted); }
.signature-empty strong,
.signature-settings-copy > strong { color: var(--pep-text); }
.signature-badges span { color: var(--pep-700); background: var(--pep-100); }
html[data-theme="dark"] .signature-badges span { color: #bce2d2; background: #1b382e; }
.signature-preview { color: var(--pep-muted); }
.signature-row-actions button { border-color: var(--pep-border); background: var(--pep-surface); color: var(--pep-text); }
.signature-row-actions button:hover { background: var(--pep-surface-3); }
.settings-field { color: var(--pep-muted); }
.settings-field input,
.signature-rich-editor { border-color: var(--pep-border); background: var(--pep-surface); color: var(--pep-text); }
.settings-field input:focus,
.signature-rich-editor:focus { border-color: var(--pep-500); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pep-500) 18%, transparent); }
.settings-check { color: var(--pep-muted); }
.settings-check input { accent-color: var(--pep-700); }

.detail-attachment-card { border-color: var(--pep-border); background: var(--pep-surface-2); color: var(--pep-text); }
.detail-attachment-card:hover { background: var(--pep-surface-3); border-color: var(--pep-border-strong); }
.detail-attachment-icon { background: var(--pep-surface-3); }
.detail-attachment-card small { color: var(--pep-muted); }
.detail-attachments { border-top-color: var(--pep-border); }

/* Loading: quiet botanical shimmer rather than a blocking spinner. */
.mail-skeleton { padding: 4px 0; background: var(--pep-surface); }
.skeleton-row {
  min-height: 69px;
  display: grid;
  grid-template-columns: 34px minmax(150px, 220px) minmax(0, 1fr) 64px;
  align-items: center;
  gap: 12px;
  padding: 10px 15px 10px 10px;
  border-bottom: 1px solid var(--pep-border);
  animation: peperomia-skeleton-in .25s ease both;
  animation-delay: var(--delay, 0ms);
}
.skeleton-row:last-child { border-bottom: 0; }
.skeleton-row i,
.skeleton-row span,
.skeleton-row b,
.skeleton-row em {
  display: block;
  overflow: hidden;
  position: relative;
  background: var(--pep-surface-3);
  border-radius: 999px;
}
.skeleton-row i { width: 31px; height: 31px; border-radius: 50%; }
.skeleton-row span { width: min(80%, 170px); height: 11px; }
.skeleton-row b { width: 72%; height: 11px; }
.skeleton-row em { width: 52px; height: 9px; justify-self: end; }
.skeleton-row i::after,
.skeleton-row span::after,
.skeleton-row b::after,
.skeleton-row em::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-110%);
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--pep-300) 25%, transparent), transparent);
  animation: peperomia-shimmer 1.25s ease-in-out infinite;
}

@keyframes peperomia-shimmer { 100% { transform: translateX(110%); } }
@keyframes peperomia-row-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
@keyframes peperomia-fade-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes peperomia-skeleton-in { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

@media (max-width: 760px) {
  .mail-app { grid-template-rows: 60px auto minmax(0,1fr); }
  .topbar { height: 60px; padding: 0 10px; }
  .peperomia-mark { width: 31px; height: 31px; }
  .peperomia-brand-copy strong { font-size: 15px; }
  .peperomia-brand-copy span { display: none; }
  .topbar-account-copy { display: none; }
  .theme-toggle { width: 31px; height: 31px; }
  .account-profile-link { width: 32px; height: 32px; }
  .sidebar { padding: 9px; }
  .mail-content { padding: 16px 10px 26px; }
  .folder-heading { gap: 5px 8px; }
  .folder-heading h1 { font-size: 22px; }
  .mailbox-context { width: 100%; }
  .mailbox-context select { max-width: calc(100vw - 70px); }
  .message-list { border-radius: 12px; }
  .message-view-card { padding: 20px 16px 28px; border-radius: 12px; }
  .skeleton-row { grid-template-columns: 30px minmax(0,1fr) 48px; gap: 9px; min-height: 60px; }
  .skeleton-row b { display: none; }
}

/* In dark mode, keep rich email structure/typography but neutralize sender colors
   that would otherwise become black-on-dark or bright white blocks. */
html[data-theme="dark"] .message-body.rich-email,
html[data-theme="dark"] .message-body.rich-email * {
  color: inherit !important;
  background-color: transparent !important;
  border-color: var(--pep-border) !important;
}
html[data-theme="dark"] .message-body.rich-email a { color: #8fcbb2 !important; }
