:root{color-scheme:light dark;--bg:#f5f6f2;--surface:#fff;--text:#202d28;--muted:#596960;--accent:#254f46;--on-accent:#fff;--line:#dbe2da;--soft:#e7eee6;--focus:#1573b8;font:15px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit}button,input{font:inherit}button{cursor:pointer;min-height:44px}button:disabled{cursor:not-allowed;opacity:.6}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.skip{position:absolute;top:-5rem;left:1rem;z-index:5;background:var(--surface);padding:1rem}.skip:focus{top:1rem}.topbar{min-height:88px;padding:1rem clamp(1.25rem,5vw,5rem);display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:25px;font-weight:650;letter-spacing:-1px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;background:var(--accent);color:var(--on-accent);border-radius:12px;font:italic 28px Georgia,serif}.brand-label{font-size:10px;letter-spacing:2px;color:var(--muted);padding-top:7px}output{font-size:12px;color:var(--muted)}main{min-height:calc(100dvh - 151px)}.welcome{max-width:1180px;margin:0 auto;min-height:calc(100dvh - 151px);display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,7vw,7rem);align-items:center;padding:4rem 2rem 5rem}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2px;color:var(--muted);margin:0 0 20px}.introduction h1{font:clamp(40px,4.8vw,65px)/1.12 Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-2px;margin:0 0 26px}.lead{font-size:17px;line-height:1.8;color:var(--muted)}.principles{display:flex;flex-wrap:wrap;gap:18px;margin-top:36px;font-size:12px}.principles span:before{content:'✓';color:var(--accent);margin-right:8px}.preview-note{margin-top:64px;color:var(--muted);font-size:11px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:38px;box-shadow:0 20px 70px #183a2410}.card-symbol{display:grid;place-items:center;border-radius:14px;background:var(--soft);color:var(--accent);width:48px;height:48px;font-size:26px}.login-card h2{font-size:24px;letter-spacing:-.7px;margin:20px 0 4px}.muted{color:var(--muted)}.login-card>.muted{font-size:13px;margin:0 0 28px}label{display:block;font-size:12px;font-weight:650}input{display:block;width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:12px 14px;color:var(--text);margin:8px 0 17px;min-height:48px}input::placeholder{color:var(--muted)}.label-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.text-button{background:transparent;border:0;color:var(--accent);padding:8px 0;font-size:12px}.label-row .text-button{min-height:28px;padding:0}.notice{font-size:12px;min-height:40px;color:var(--muted);margin:20px 0 16px;overflow-wrap:anywhere}.primary{width:100%;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:9px;display:flex;justify-content:space-between;align-items:center;padding:12px 18px;font-weight:600}.primary:hover:not(:disabled){filter:brightness(1.15)}.security-note{border-top:1px solid var(--line);padding-top:20px;margin-top:25px;margin-bottom:0;font-size:11px;color:var(--muted);line-height:1.8}footer{min-height:63px;padding:18px clamp(1.25rem,5vw,5rem);display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);font-size:11px;color:var(--muted);padding-bottom:max(18px,env(safe-area-inset-bottom))}.mailspace{display:grid;grid-template-columns:260px 1fr;min-height:calc(100dvh - 151px)}.sidebar{border-right:1px solid var(--line);padding:30px 20px;background:var(--surface)}.account{display:flex;gap:12px;align-items:center;margin-bottom:36px;min-width:0}.account>div{min-width:0}.account strong{font-size:13px}.account p{font-size:11px;margin:0;overflow-wrap:anywhere;color:var(--muted)}.avatar{flex-shrink:0;display:grid;place-items:center;width:36px;height:36px;background:var(--soft);border-radius:50%}nav{display:grid;gap:4px;max-height:50vh;overflow:auto}nav button{background:transparent;border:1px solid transparent;border-radius:8px;text-align:left;padding:10px 12px;color:var(--text);overflow-wrap:anywhere}nav button[aria-current]{background:var(--soft);border-color:var(--line);font-weight:650}.secondary{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:24px 0 8px;width:100%}.sidebar>.text-button{width:100%;text-align:left}.mail-content{padding:38px;min-width:0}.content-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.content-heading h1{font-size:28px;margin:0;overflow-wrap:anywhere}.content-heading .eyebrow{margin:0 0 4px}.preview-badge{font-size:11px;border:1px solid var(--line);border-radius:30px;padding:5px 12px;color:var(--muted)}.empty-state{max-width:580px;margin:80px auto;padding:38px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:18px}.empty-state h2{font-size:21px}.empty-state p{font-size:13px;overflow-wrap:anywhere}.empty-symbol{font-size:36px;color:var(--accent)}
@media(max-width:700px){.topbar{min-height:72px;flex-wrap:wrap}.brand{font-size:22px}.welcome{display:block;padding:35px 20px}.introduction h1{font-size:43px}.lead{font-size:15px}.principles{margin-top:18px}.preview-note{margin:22px 0}.login-card{padding:26px}.mailspace{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:20px}.account{margin-bottom:15px}nav{display:flex;max-height:150px;flex-wrap:wrap}.sidebar>.eyebrow{margin-bottom:8px}.secondary{width:auto;margin-right:20px}.sidebar>.text-button{width:auto}.mail-content{padding:25px 20px}.empty-state{margin:25px auto;padding:24px}footer{flex-wrap:wrap}main{min-height:calc(100dvh - 135px)}}
@media(prefers-color-scheme:dark){:root{--bg:#131c18;--surface:#1b2721;--text:#e9efe9;--muted:#aabbae;--accent:#add9bd;--on-accent:#183126;--line:#36473b;--soft:#293e30;--focus:#79beff}.login-card{box-shadow:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
#compose-dialog{width:min(700px,calc(100% - 28px));max-height:90dvh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:28px}#compose-dialog::backdrop{background:#071a1580}.compose-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.compose-heading h2{margin:0;font-size:25px}.compose-notice,#compose-status{font-size:12px;padding:12px;background:var(--soft);border-radius:8px;overflow-wrap:anywhere}#compose-dialog textarea{width:100%;resize:vertical;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:14px;font:inherit;line-height:1.7;min-height:180px}.compose-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.compose-actions .primary,.compose-actions .secondary{width:auto;margin:0;font-size:12px}.sidebar>#compose-mail{margin-bottom:24px}
.mailspace{grid-template-columns:220px minmax(270px,340px) minmax(300px,1fr);background:var(--surface)}.mail-content{padding:26px 20px;border-right:1px solid var(--line)}.mail-content .content-heading h1{font-size:24px}.mail-content #folder-state,.mail-content #folder-detail{font-size:12px}.message-list{display:grid;margin:18px -20px 0}.message-row{display:grid;gap:6px;text-align:left;border:0;border-bottom:1px solid var(--line);padding:20px;background:var(--surface);color:var(--text);overflow-wrap:anywhere;min-width:0}.message-row .row-sender{font-size:12px}.message-row strong{font-size:14px;font-weight:500}.message-row small{color:var(--muted);font-size:10px}.message-row.unread strong{font-weight:750}.message-row[aria-current]{background:var(--soft);box-shadow:inset 3px 0 var(--accent)}.message-row:hover{background:var(--soft)}.mail-reader{padding:26px clamp(24px,4vw,60px);min-width:0}.mail-reader .eyebrow{margin-top:30px}.mail-reader h2{font-size:28px;line-height:1.3;overflow-wrap:anywhere}.mail-reader #message-sender{font-size:13px;overflow-wrap:anywhere}.reading-note{font-size:11px;color:var(--muted);border-block:1px solid var(--line);padding:14px 0}.message-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;padding:28px 0;unicode-bidi:plaintext;font-size:14px}body[data-theme=dark]{color-scheme:dark;--bg:#131c18;--surface:#1b2721;--text:#e9efe9;--muted:#aabbae;--accent:#add9bd;--on-accent:#183126;--line:#36473b;--soft:#293e30;--focus:#79beff}body[data-theme=light]{color-scheme:light;--bg:#f5f6f2;--surface:#fff;--text:#202d28;--muted:#596960;--accent:#254f46;--on-accent:#fff;--line:#dbe2da;--soft:#e7eee6;--focus:#1573b8}
@media(max-width:1000px){.mailspace{grid-template-columns:190px minmax(240px,1fr)}.mail-reader{grid-column:2}.mailspace[data-reading] .mail-content{display:none}.mailspace[data-reading] .sidebar{grid-row:1/3}}
@media(max-width:700px){.mailspace{display:block}.mail-content{padding:24px 20px}.mail-reader{padding:22px}.mailspace[data-reading] .sidebar{display:none}.message-body{padding:16px 0}.mail-reader h2{font-size:25px}}
@media(forced-colors:active){button,input,.login-card,.empty-state{border:1px solid CanvasText}nav button[aria-current]{outline:2px solid Highlight}button:disabled{color:GrayText}}
.reader-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 12px; }
.reader-actions .primary, .reader-actions .secondary { width: auto; margin: 0; min-width: 104px; }
#compose-context:empty { display: none; }
.compose-heading { flex-wrap: wrap; }
.compose-heading h2 { flex: 1 1 auto; }
.compose-heading #save-draft { width: auto; margin: 0; flex: 0 0 auto; }
@media(max-width:480px){#compose-dialog .compose-heading h2{flex-basis:100%;font-size:22px}#compose-dialog .compose-heading{gap:8px}}
:root .draft-tools { margin: 1rem 0; padding: 1rem; border: 1px solid var(--line, #8a9d963d); border-radius: 14px; }
.draft-tools select { width: 100%; min-height: 44px; padding: .7rem; font: inherit; color: var(--text); background: var(--bg); border: 1px solid var(--line); border-radius: 8px; }
#draft-status { font-weight: 600; }
#settings-dialog { width: min(640px,calc(100% - 28px)); max-height: 90dvh; overflow: auto; padding: 28px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); color: var(--text); }
#settings-dialog::backdrop { background: #071a1580; }
#move-dialog { width: min(520px,calc(100% - 28px)); max-height: 90dvh; overflow: auto; padding: 28px; background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 16px; }
#move-dialog::backdrop { background: #071a1580; }
#move-dialog p { font-size: 13px; overflow-wrap: anywhere; }
#move-target { width: 100%; min-height: 44px; margin: 10px 0 24px; padding: 10px; background: var(--bg); color: var(--text); font: inherit; border: 1px solid var(--line); border-radius: 8px; }
#settings-dialog .eyebrow { margin-bottom: 8px; }
.settings-section { padding: 18px 0; border-bottom: 1px solid var(--line); }
.settings-section:last-child { border: 0; }
.settings-section h3 { font-size: 16px; margin: 0 0 10px; }
.settings-section p { font-size: 13px; overflow-wrap: anywhere; }
.settings-section select { width: 100%; min-height: 44px; padding: 10px; margin: 8px 0 16px; background: var(--bg); color: var(--text); border: 1px solid var(--line); border-radius: 8px; font: inherit; }
body[data-density=compact] .message-row { padding: 10px 20px; gap: 3px; }
body[data-reading-size=large] .message-body { font-size: 18px; }
#saved-draft-text { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 180px; overflow: auto; font: inherit; padding: .8rem; background: #8a9d961a; border-radius: 8px; }
.message-paging{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:space-between;margin:.5rem 0}.message-paging button{min-height:44px}
#copy-recipients { margin: 0 0 20px; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
#copy-recipients summary { cursor: pointer; min-height: 44px; padding: 10px 0; color: var(--text); font-size: 13px; }
#copy-recipients summary:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
#attachments { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 16px; }
#attachments h3 { font-size: 15px; margin: 0 0 12px; }
#attachment-list { list-style: none; padding: 0; margin: 0; }
.attachment-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.attachment-row div { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.attachment-row strong, .attachment-row small { display: block; font-size: 13px; }
.attachment-row small { margin-top: 6px; font-size: 12px; }
.attachment-row button { min-height: 44px; flex-shrink: 0; width: auto; margin: 0; }
#attachment-confirm-dialog, #action-confirm-dialog { width: min(480px,calc(100% - 28px)); max-height: 90dvh; overflow: auto; padding: 28px; background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 16px; }
#attachment-confirm-dialog::backdrop, #action-confirm-dialog::backdrop { background: #071a1580; }
#action-confirm-text { overflow-wrap: anywhere; }
#attachment-confirm-name { overflow-wrap: anywhere; font-weight: 650; }
@media(max-width:380px) { .attachment-row { align-items: stretch; flex-direction: column; } }
/* Native popup menus need a concrete scheme and opaque option colors too. */
:root { color-scheme: light; }
@media(prefers-color-scheme:dark) { :root { color-scheme: dark; } }
select option, select optgroup { color: var(--text); background-color: var(--surface); }
.compose-attachments { padding: 14px 16px; margin-top: 16px; border: 1px solid var(--line); border-radius: 10px; }
.compose-attachments h3 { margin: 0 0 6px; font-size: 14px; }
.compose-attachments p { margin: 0; font-size: 12px; color: var(--muted); }
#compose-file-list { list-style: none; padding: 0; }
#compose-file-input::file-selector-button { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 6px; padding: 8px 12px; margin-right: 10px; cursor: pointer; }
#compose-file-status { margin-top: 12px; }
#compose-dialog .compose-heading { position: sticky; top: -28px; z-index: 2; background: var(--surface); padding: 14px 0; border-bottom: 1px solid var(--line); }
#compose-save-state { flex-basis: 100%; font-size: 12px; color: var(--text); }
#compose-save-state[data-unsaved=true] { font-weight: 700; }
#compose-drop-zone[data-dragging=true] { outline: 3px solid var(--focus); outline-offset: 3px; background: var(--soft); }
.compose-attachments .file-drop-hint { margin: 8px 0; }
@media(forced-colors:active) { select, select option, select optgroup { color: CanvasText; background-color: Canvas; border-color: ButtonText; } }
/* Compose formatting: shared theme tokens keep controls visible in both themes. */
.format-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px;background:var(--soft);border:1px solid var(--line);border-radius:10px 10px 0 0}
.format-toolbar button,.format-toolbar select{min-height:40px;width:auto;margin:0;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font:inherit}
.format-toolbar button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
#format-bold{font-weight:750}#format-italic{font-style:italic}#format-underline{text-decoration:underline}#format-strike{text-decoration:line-through}
.compose-editor{min-height:230px;max-height:420px;overflow:auto;padding:16px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;background:var(--surface);color:var(--text);font:14px/1.6 Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}
.compose-editor[aria-disabled="true"]{opacity:.7}
/* Native fontSize emits CSS keywords. Match their display to our bounded wire sizes. */
.compose-editor [style*="font-size: xx-small;"],.compose-editor [style*="font-size: x-small;"]{font-size:12px!important}
.compose-editor [style*="font-size: small;"],.compose-editor [style*="font-size: medium;"]{font-size:14px!important}
.compose-editor [style*="font-size: large;"]{font-size:18px!important}
.compose-editor [style*="font-size: x-large;"],.compose-editor [style*="font-size: xx-large;"],.compose-editor [style*="font-size: xxx-large;"]{font-size:24px!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.session-warning{max-width:28rem;padding:.45rem .7rem;border:1px solid var(--line);border-radius:.5rem;background:var(--soft);color:var(--text);font-size:.75rem;line-height:1.35}
.mail-search-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mail-search-controls .text-button{min-height:44px}#mail-search{margin-bottom:0}
.contact-list{list-style:none;padding:0;margin:12px 0;max-height:220px;overflow:auto}.contact-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line)}.contact-list .contact-detail{flex:1;min-width:160px;overflow-wrap:anywhere}.contact-list button{min-height:40px}.contact-list .contact-detail strong{display:block}
#all-search-results{max-height:320px}#all-search-results li button{width:100%;text-align:left;overflow-wrap:anywhere}
@media(max-width:700px){.format-toolbar{gap:5px;padding:8px}.format-toolbar button,.format-toolbar select{min-height:44px;padding:6px 10px}.compose-editor{min-height:180px}}
/* Keep the first message visible sooner on narrow screens without hiding account controls. */
@media(max-width:700px){
  .topbar{min-height:64px;flex-wrap:nowrap;padding:10px 16px;gap:8px}
  .topbar .brand{font-size:20px;flex-shrink:0}
  .topbar .brand-label{display:none}
  .topbar output{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar #open-settings{flex-shrink:0}
  .topbar #open-all-search{flex-shrink:0;padding-inline:6px;font-size:12px}
  .sidebar{padding:12px 16px}
  .sidebar .account{margin-bottom:8px}
  .sidebar #compose-mail{margin-bottom:8px}
  .sidebar>.eyebrow{margin:0 0 4px}
  .sidebar nav{flex-wrap:nowrap;max-height:none;overflow-x:auto;overflow-y:hidden;gap:2px}
  .sidebar nav button{flex:0 0 auto;white-space:nowrap;padding:8px 10px}
  .sidebar .secondary{min-height:44px;margin:8px 8px 0 0;padding:6px 10px;font-size:12px}
  .sidebar>.text-button{min-height:44px}
  .mail-content{padding:18px 16px}
  .mail-content #folder-state,.mail-content #folder-detail{margin:6px 0}
  .mail-content #mail-search{margin:4px 0 8px}
  .mail-content .mail-search-controls .text-button,.mail-content #refresh-messages{min-height:44px}
  .mail-content .message-paging button:disabled{display:none}
  .mail-content .message-list{margin-top:8px}
}
