/* Optional native list features; original pager is retained as the fallback. */
.mailserver-scroll-status { display:none; }
body.mailserver-infinite-scroll #layout-list { position:relative; }
body.mailserver-infinite-scroll #layout-list>.pagenav { display:none!important; }
body.mailserver-infinite-scroll .mailserver-scroll-status { position:absolute; bottom:12px; right:12px; z-index:45; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px; padding:8px 12px; max-width:calc(100% - 24px); min-width:0; box-sizing:border-box; color:#474d57; background:#fff; border:1px solid #e1e4e9; border-radius:9px; box-shadow:0 4px 16px #2021241a; font-size:12px; font-weight:400; line-height:20px; }
.mailserver-scroll-status[hidden] { display:none!important; }
.mailserver-scroll-status button { color:#474d57; background:#fff; border:1px solid #dfe2e7; border-radius:6px; padding:2px 10px; line-height:24px; }
.mailserver-scroll-status button:hover { background:#f4f5f7; }
.mailserver-scroll-status button:focus-visible { outline:2px solid #b99000; outline-offset:2px; }
.mailserver-scroll-status button[hidden] { display:none; }
.mailserver-sender-avatar { position:absolute; left:6px; top:50%; transform:translateY(-50%); display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; color:#fff; font-size:11px; font-weight:600; line-height:1; pointer-events:none; user-select:none; }
.mailserver-sender-avatar.mailserver-service-avatar { overflow:hidden; background:#fff!important; }
.mailserver-service-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#fff; border-radius:50%; }
.mailserver-row-files { display:flex; align-items:center; gap:5px; margin-top:5px; position:relative; font-size:12px; line-height:16px; font-weight:400; }
.mailserver-inline-files { display:flex; flex:none; align-items:center; gap:5px; min-width:0; }
.mailserver-file-card { display:flex; flex:none; align-items:center; width:var(--mailserver-card-width,144px); min-width:0; min-height:52px; border-radius:8px; background:#f0f1f3; color:#333942; }
.mailserver-file-main { display:flex; flex:1; flex-direction:column; gap:4px; min-width:0; padding:6px 8px; color:inherit; text-decoration:none; }
.mailserver-file-main:hover { color:inherit; background:#e7e9ec; border-radius:8px; }
.mailserver-file-name { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:normal; word-break:break-word; font-size:12px; line-height:16px; }
.mailserver-file-detail { display:flex; align-items:center; gap:5px; min-width:0; font-size:11px; line-height:14px; }
.mailserver-file-kind { color:#fff; background:#88919d; border-radius:3px; padding:1px 3px; font-size:10px; line-height:12px; font-weight:700; }
.mailserver-file-kind.kind-pdf { background:#c96b69; }
.mailserver-file-kind.kind-word { background:#6290bd; }
.mailserver-file-kind.kind-sheet { background:#5d9b71; }
.mailserver-file-kind.kind-image { background:#a28abc; }
.mailserver-file-size { color:#626975; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
/* Override Elastic's generic span line-height without overriding file colors. */
body.task-mail.action-none #messagelist .mailserver-file-name { font-size:12px; line-height:16px; }
body.task-mail.action-none #messagelist .mailserver-file-detail { font-size:11px; line-height:14px; }
body.task-mail.action-none #messagelist .mailserver-file-kind { font-size:10px; line-height:12px; }
body.task-mail.action-none #messagelist .mailserver-file-size { line-height:14px; }
.mailserver-file-download { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:28px; height:30px; margin-right:3px; color:#555d68; border-radius:6px; }
.mailserver-file-download:hover { background:#e0e3e7; color:#252b35; }
.mailserver-file-download:before { content:''; display:block; width:16px; height:16px; background:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 3v9m-3-3 3 3 3-3M4 13v3h12v-3' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.mailserver-file-count { flex-shrink:0; min-width:26px; height:28px; padding:0 5px; border:0; border-radius:7px; color:#333942; background:#eceef0; line-height:28px; font-size:12px; }
.mailserver-file-count:hover { background:#dfe2e7; }
.mailserver-file-count[hidden] { display:none!important; }
.mailserver-more-files { position:fixed; top:12px; left:12px; z-index:1050; display:flex; flex-direction:column; gap:6px; box-sizing:border-box; width:min(280px, calc(100vw - 24px)); padding:8px; max-height:360px; overflow:auto; overscroll-behavior:contain; background:#fff; color:#333942; border:1px solid #e1e4e9; border-radius:10px; box-shadow:0 6px 24px #2021241f; font-size:12px; line-height:16px; font-weight:400; }
.mailserver-more-files .mailserver-file-card { flex-shrink:0; width:100%; }
.mailserver-more-files[hidden] { display:none; }
.mailserver-files-limit { max-width:176px; padding:4px; color:#626975; font-size:12px; line-height:18px; white-space:normal; }
.mailserver-row-files a:focus-visible,
.mailserver-row-files button:focus-visible { outline:2px solid #b99000; outline-offset:2px; }
.mailserver-more-files a:focus-visible { outline:2px solid #b99000; outline-offset:2px; }
/* Elastic's floating row menu overlaps attachment cards and the permanent
   important control. Keep the native toolbar and per-row flag action instead. */
body.task-mail.action-none #messagelist-content .listing-hover-menu { display:none!important; pointer-events:none!important; }
/* Discovery markers stay in the DOM; paperclips and native NBSP placeholders
   never occupy layout space, including the first paint of appended rows. */
body.task-mail.action-none #messagelist :is(td.flags,td.attachment)>span.attachment:not(:has(span.encrypted,span.report,span.vcard)) { display:none!important; }
body.task-mail.action-none.mailserver-compact-rows #messagelist .mailserver-row-files { display:none!important; }
body.task-mail.action-none #messagelist {
  --mailserver-important-outline:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.8 5.8 6.4.9-4.6 4.5 1.1 6.3L12 17.5l-5.7 3 1.1-6.3L2.8 9.7l6.4-.9Z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mailserver-important-solid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.8 5.8 6.4.9-4.6 4.5 1.1 6.3L12 17.5l-5.7 3 1.1-6.3L2.8 9.7l6.4-.9Z'/%3E%3C/svg%3E");
}
body.task-mail.action-none #messagelist td.flags,
body.task-mail.action-none #messagelist td.flag { width:34px; min-width:34px; padding:0 4px!important; vertical-align:middle; text-align:center; }
body.task-mail.action-none #messagelist td.flags { width:58px; min-width:58px; }
body.task-mail.action-none #messagelist td.flags>span.flag { display:inline-flex!important; align-items:center; justify-content:center; width:24px!important; min-width:24px!important; height:24px; margin:0!important; visibility:visible!important; vertical-align:middle; }
body.task-mail.action-none #messagelist td.flags span.flagged,
body.task-mail.action-none #messagelist td.flags span.unflagged,
body.task-mail.action-none #messagelist td.flag>span.flagged,
body.task-mail.action-none #messagelist td.flag>span.unflagged { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; line-height:24px; visibility:visible!important; color:#b7bdc6; cursor:pointer; border-radius:5px; }
body.task-mail.action-none #messagelist td.flags span.flagged,
body.task-mail.action-none #messagelist td.flag>span.flagged { color:#ffcc00; }
body.task-mail.action-none #messagelist td.flags span.unflagged:hover,
body.task-mail.action-none #messagelist td.flag>span.unflagged:hover { color:#7a818c; }
body.task-mail.action-none #messagelist td.flags span.flagged:before,
body.task-mail.action-none #messagelist td.flags span.unflagged:before,
body.task-mail.action-none #messagelist td.flag>span.flagged:before,
body.task-mail.action-none #messagelist td.flag>span.unflagged:before { content:''!important; display:block!important; flex:none; float:none; width:18px!important; height:18px!important; margin:0!important; background:currentColor; color:inherit!important; mask:var(--mailserver-important-outline) center/contain no-repeat; }
body.task-mail.action-none #messagelist td.flags span.flagged:before,
body.task-mail.action-none #messagelist td.flag>span.flagged:before { mask-image:var(--mailserver-important-solid); }
body.task-mail.action-none #messagelist td.flags span.flagged:focus-visible,
body.task-mail.action-none #messagelist td.flags span.unflagged:focus-visible,
body.task-mail.action-none #messagelist td.flag>span.flagged:focus-visible,
body.task-mail.action-none #messagelist td.flag>span.unflagged:focus-visible { outline:2px solid #b99000; outline-offset:1px; }
/* Position the native action wrapper on a fixed rail, independent of the
   attachment marker and async cards. Special native indicators own a left slot. */
@media(min-width:1025px) {
  body.task-mail.action-none #messagelist td.flags { position:relative; }
  body.task-mail.action-none:not(.mailserver-preview) #messagelist tr:not(.mailserver-reader-open)>td.subject { display:table-cell; }
  body.task-mail.action-none #messagelist tr.message:not(.mailserver-reader-open)>td { line-height:calc(var(--ms-mail-row-height,36px) - 1px); }
  body.task-mail.action-none #messagelist td.flags>span.flag { position:absolute; right:4px; top:50%; transform:translateY(-50%); float:none!important; }
  body.task-mail.action-none #messagelist td.flags>span.attachment:has(span.encrypted,span.report,span.vcard) { position:absolute; left:4px; top:50%; transform:translateY(-50%); display:inline-flex!important; align-items:center; justify-content:center; width:18px; height:24px; margin:0!important; }
  body.task-mail.action-none #messagelist tr.mailserver-reader-open>td.flags>span.flag,
  body.task-mail.action-none #messagelist tr.mailserver-reader-open>td.flags>span.attachment:has(span.encrypted,span.report,span.vcard) { top:7px; transform:none; }
}
@media(min-width:1025px) {
  body.mailserver-list-features:not(.mailserver-preview) .messagelist td.subject>.fromto { left:48px!important; width:148px!important; }
  body.mailserver-list-features .messagelist tr.mailserver-has-attachments { height:72px; }
  body.mailserver-list-features:not(.mailserver-preview) .messagelist tr.mailserver-has-attachments td.subject { height:72px!important; overflow:visible; }
  body.mailserver-list-features:not(.mailserver-preview) .messagelist tr.mailserver-has-attachments td.subject>.subject { line-height:72px!important; padding-right:calc(142px + var(--mailserver-files-width,175px))!important; }
  body.mailserver-list-features:not(.mailserver-preview) .messagelist tr.mailserver-has-attachments .mailserver-row-files { position:absolute; right:126px; top:50%; transform:translateY(-50%); margin:0; }
  body.mailserver-list-features.mailserver-preview .messagelist td.subject { position:relative; padding-left:38px; }
  body.mailserver-list-features.mailserver-preview .messagelist tr.mailserver-has-attachments td.subject { min-height:132px; }
}
@media(max-width:1024px) {
  /* Elastic uses two text lines here. Let the subject cell and attachment
     cards determine row height instead of clipping them to the desktop row. */
  body.task-mail.action-none #messagelist tr.message { height:auto; }
  body.task-mail.action-none #messagelist tr.message>td.subject { min-height:64px; }
  body.task-mail.action-none #messagelist .mailserver-sender-avatar { top:32px; }
  body.mailserver-list-features .messagelist td.subject { position:relative; padding-left:40px; }
  body.task-mail.action-none #messagelist .mailserver-row-files { flex-wrap:wrap; width:100%; max-width:100%; }
  body.task-mail.action-none #messagelist .mailserver-inline-files { flex:1 1 0; flex-wrap:wrap; }
}
@media(max-width:480px) {
  body.mailserver-infinite-scroll .mailserver-scroll-status { font-size:11px; gap:6px; }
}

/* Background index progress stays inside the existing folder row, without a footer. */
#mailboxlist .mailserver-virtual-attachments>a { position:relative; }
#mailboxlist .mailserver-virtual-attachments>a>.mailserver-attachment-index-pending {
  display:inline-flex; position:absolute; right:9px; top:50%; transform:translateY(-50%);
  align-items:center; justify-content:center; box-sizing:border-box; width:17px; height:17px;
  border:1px solid #c7cdd5; border-radius:50%; color:#566270; background:#eef1f5;
  font:700 12px/15px Arial,Helvetica,sans-serif;
}
@media(forced-colors:active) {
  #mailboxlist .mailserver-virtual-attachments>a>.mailserver-attachment-index-pending {
    border-color:ButtonText; color:ButtonText; background:Canvas;
  }
}

/* Compact rows replace hidden preview cards with a confirmed-file indicator.
 * Card DOM is created only from positive metadata and survives a soft refresh.
 * Native MIME markers stay hidden, so resource-only/unknown rows never flash. */
body.task-mail.action-none.mailserver-compact-rows #messagelist tr:has(.mailserver-row-files .mailserver-file-card) td.flags:not(:has(span.encrypted,span.report,span.vcard))::after,
body.task-mail.action-none.mailserver-compact-rows #messagelist tr:has(.mailserver-row-files .mailserver-file-card) td.attachment::after {
  content:''; display:block; width:18px; height:18px; margin:0 auto; color:#838c99;
  background:currentColor; pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m8%2012.5%207-7a3.5%203.5%200%200%201%205%205l-9%209a5%205%200%200%201-7-7l9-9%27%2F%3E%3Cpath%20d%3D%27m8%2012.5%205-5a1.5%201.5%200%200%201%202%202l-7%207a1.5%201.5%200%200%201-2-2%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.7%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m8%2012.5%207-7a3.5%203.5%200%200%201%205%205l-9%209a5%205%200%200%201-7-7l9-9%27%2F%3E%3Cpath%20d%3D%27m8%2012.5%205-5a1.5%201.5%200%200%201%202%202l-7%207a1.5%201.5%200%200%201-2-2%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
}
body.task-mail.action-none.mailserver-compact-rows #messagelist tr:has(.mailserver-row-files .mailserver-file-card) td.flags:not(:has(span.encrypted,span.report,span.vcard))::after {
  position:absolute; left:4px; top:50%; transform:translateY(-50%); margin:0;
}
body.task-mail.action-none.mailserver-compact-rows #messagelist tr.mailserver-reader-open:has(.mailserver-row-files .mailserver-file-card) td.flags::after { top:10px; transform:none; }
@media(forced-colors:active) {
  body.task-mail.action-none.mailserver-compact-rows #messagelist tr:has(.mailserver-row-files .mailserver-file-card) td.flags::after,
  body.task-mail.action-none.mailserver-compact-rows #messagelist tr:has(.mailserver-row-files .mailserver-file-card) td.attachment::after { color:CanvasText; forced-color-adjust:none; }
}

/* Tablet flags are table cells; phone flags retain Elastic's absolute pane.
 * Both compact narrow layouts reserve the same left/right icon slots. */
@media(min-width:481px) and (max-width:1024px) {
  body.task-mail.action-none.mailserver-compact-rows #messagelist td.flags { position:relative; }
}
@media(max-width:1024px) {
  body.task-mail.action-none.mailserver-compact-rows #messagelist td.flags>span.flag { position:absolute; right:4px; top:50%; transform:translateY(-50%); float:none!important; }
  body.task-mail.action-none.mailserver-compact-rows #messagelist td.flags>span.attachment:has(span.encrypted,span.report,span.vcard) { position:absolute; left:4px; top:50%; transform:translateY(-50%); display:inline-flex!important; align-items:center; justify-content:center; width:18px; height:24px; margin:0!important; }
  body.task-mail.action-none.mailserver-compact-rows #messagelist tr.mailserver-reader-open>td.flags>span.flag,
  body.task-mail.action-none.mailserver-compact-rows #messagelist tr.mailserver-reader-open>td.flags>span.attachment:has(span.encrypted,span.report,span.vcard) { top:7px; transform:none; }
}
