/* RustBox UI bundle - generated by build.rs */ /* 00-tokens.css */ :root { color-scheme: dark; --bg: #121513; --panel: #181c19; --panel-2: #1e231f; --panel-3: #242a25; --sidebar: #101310; --line: #313832; --line-strong: #485149; --text: #edf0ec; --muted: #9da79f; --subtle: #7c877f; --accent: #8fb9a4; --accent-strong: #a4c9b6; --accent-ink: #102018; --danger: #e18f8a; --warning: #d0ad70; --success: #a7c892; --field: #121713; --selected: #28352e; --hover: #202621; --shadow: rgba(0, 0, 0, .32); --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --font-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; --radius-control: 3px; --radius-panel: 4px; --ui-size: 13px; --row-height: 58px; --control-height: 30px; --appbar-height: 44px; --dialog-header-height: 43px; --ui-scale-factor: 1; --density-factor: 1; --icon-size: 18px; --button-pad-x: 10px; --button-pad-y: 5px; --field-pad-x: 8px; --field-pad-y: 5px; } html[data-theme="light"] { color-scheme: light; --bg: #f2f4f1; --panel: #ffffff; --panel-2: #f7f8f6; --panel-3: #edf1ec; --sidebar: #e9eee9; --line: #cbd2cb; --line-strong: #aeb8af; --text: #202622; --muted: #647068; --subtle: #7a847d; --accent: #507b67; --accent-strong: #416b58; --accent-ink: #ffffff; --danger: #a94c48; --warning: #8a6930; --success: #587a49; --field: #ffffff; --selected: #dce8e0; --hover: #e8ede8; --shadow: rgba(31, 39, 33, .16); } /* User personalization */ :root { --folder-pane-width: 228px; --message-pane-width: 420px; } html[data-color-preset="blue"] { --accent: #6f96c9; --accent-strong: #86a9d5; --selected: color-mix(in srgb, var(--accent) 20%, var(--panel)); } html[data-color-preset="slate"] { --accent: #8e9aa8; --accent-strong: #aab4bf; --selected: color-mix(in srgb, var(--accent) 20%, var(--panel)); } html[data-color-preset="amber"] { --accent: #c69a55; --accent-strong: #d7ad6b; --selected: color-mix(in srgb, var(--accent) 20%, var(--panel)); } html[data-color-preset="violet"] { --accent: #9b88c9; --accent-strong: #ad9bd5; --selected: color-mix(in srgb, var(--accent) 20%, var(--panel)); } html[data-color-preset="rose"] { --accent: #c98591; --accent-strong: #d79aa5; --selected: color-mix(in srgb, var(--accent) 20%, var(--panel)); } html[data-color-preset="custom"] { --bg: var(--user-bg, #121513); --panel: var(--user-panel, #181c19); --panel-2: color-mix(in srgb, var(--panel) 88%, var(--text)); --panel-3: color-mix(in srgb, var(--panel) 80%, var(--text)); --sidebar: color-mix(in srgb, var(--bg) 88%, black); --text: var(--user-text, #edf0ec); --muted: color-mix(in srgb, var(--text) 66%, var(--panel)); --subtle: color-mix(in srgb, var(--text) 52%, var(--panel)); --field: color-mix(in srgb, var(--bg) 82%, var(--panel)); --line: color-mix(in srgb, var(--text) 18%, var(--panel)); --line-strong: color-mix(in srgb, var(--text) 30%, var(--panel)); --hover: color-mix(in srgb, var(--text) 8%, var(--panel)); --accent: var(--user-accent, #6f9c86); --accent-strong: color-mix(in srgb, var(--accent) 82%, white); --selected: color-mix(in srgb, var(--accent) 22%, var(--panel)); } html[data-font-family="inter"] { --font-sans: Inter, ui-sans-serif, system-ui, sans-serif; } html[data-font-family="humanist"] { --font-sans: "Segoe UI", Candara, Calibri, ui-sans-serif, system-ui, sans-serif; } html[data-font-family="mono"] { --font-sans: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; } html[data-contrast="soft"] { --line: color-mix(in srgb, var(--line) 70%, transparent); --line-strong: color-mix(in srgb, var(--line-strong) 78%, transparent); } html[data-contrast="high"] { --line: color-mix(in srgb, var(--text) 28%, var(--panel)); --line-strong: color-mix(in srgb, var(--text) 48%, var(--panel)); --muted: color-mix(in srgb, var(--text) 74%, var(--panel)); } html[data-hide-avatars="true"] .avatar { display: none !important; } html[data-hide-attachments="true"] .message-attachment, html[data-hide-attachments="true"] .attachment-indicator { display: none !important; } html[data-hide-flags="true"] .message-flag, html[data-hide-flags="true"] .flag-indicator { display: none !important; } html[data-reduce-motion="true"] * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } html[data-color-preset="teal"] { --accent:#4f9d93; --accent-strong:#68b0a5; --selected:color-mix(in srgb,var(--accent) 20%,var(--panel)); } html[data-color-preset="cyan"] { --accent:#4c9fba; --accent-strong:#68b4cb; --selected:color-mix(in srgb,var(--accent) 20%,var(--panel)); } html[data-color-preset="indigo"] { --accent:#7184c5; --accent-strong:#8b9bd2; --selected:color-mix(in srgb,var(--accent) 20%,var(--panel)); } html[data-color-preset="graphite"] { --accent:#9aa19c; --accent-strong:#b0b6b2; --selected:color-mix(in srgb,var(--accent) 18%,var(--panel)); } html[data-color-preset="orange"] { --accent:#c9824e; --accent-strong:#d69a6d; --selected:color-mix(in srgb,var(--accent) 20%,var(--panel)); } html[data-color-preset="red"] { --accent:#bd6662; --accent-strong:#cf7e7a; --selected:color-mix(in srgb,var(--accent) 20%,var(--panel)); } /* Advanced per-user interface controls. */ :root { --toolbar-density-factor: 1; --sidebar-item-height: 29px; --reader-max-width: none; --composer-width: 900px; --unread-font-weight: 730; --folder-bg: var(--sidebar); --message-bg: var(--panel); --reader-bg: var(--panel); } html[data-monochrome="true"] { --accent:#929a95; --accent-strong:#aeb4b0; --danger:#9f7775; --warning:#9b8e75; --success:#879482; } html[data-scrollbar-density="normal"] * { scrollbar-width:auto; } html[data-scrollbar-density="thin"] * { scrollbar-width:thin; } html[data-scrollbar-density="hidden"] * { scrollbar-width:none; } html[data-scrollbar-density="hidden"] *::-webkit-scrollbar { width:0; height:0; } html[data-show-borders="false"] .folder-pane, html[data-show-borders="false"] .message-pane, html[data-show-borders="false"] .pane-toolbar, html[data-show-borders="false"] .reader-toolbar, html[data-show-borders="false"] .message-header, html[data-show-borders="false"] .thread-section, html[data-show-borders="false"] .attachment-list, html[data-show-borders="false"] .message-row { border-color:transparent !important; } /* 10-base.css */ * { box-sizing: border-box; scrollbar-color: var(--line-strong) var(--panel); scrollbar-width: thin; } html, body { height: 100%; } body { margin: 0; overflow: hidden; background: var(--bg); color: var(--text); font: var(--ui-size)/1.45 var(--font-sans); } button, input, select, textarea { font: inherit; color: inherit; } button { cursor: pointer; } button:disabled { cursor: default; opacity: .55; } input, select, textarea { width: 100%; min-width: 0; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--field); min-height: var(--control-height); padding: var(--field-pad-y) var(--field-pad-x); outline: none; } input:focus, select:focus, textarea:focus, [contenteditable="true"]:focus { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); outline: 0; } button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } svg { width: var(--icon-size); height: var(--icon-size); fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; } .hidden, [hidden] { display: none !important; } .muted { color: var(--muted); } .wide { width: 100%; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } .button { min-height: var(--control-height); display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--line-strong); border-radius: var(--radius-control); padding: var(--button-pad-y) var(--button-pad-x); background: var(--panel-2); color: var(--text); font-weight: 600; } .button:hover { border-color: var(--accent); } .button.primary { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); } .button.primary:hover { background: var(--accent-strong); } .button.quiet { background: transparent; } .button.danger, .icon-button.danger { color: var(--danger); } .icon-button { width: var(--control-height); height: var(--control-height); display: inline-grid; place-items: center; padding: 0; border: 1px solid transparent; border-radius: var(--radius-control); background: transparent; color: var(--muted); } .icon-button:hover { color: var(--text); background: var(--hover); border-color: var(--line); } .icon-button.small { width: 26px; height: 26px; } .icon-button.small svg { width: 15px; height: 15px; } .form-error { margin-top: 8px; padding: 8px 9px; border: 1px solid color-mix(in srgb, var(--danger) 55%, var(--line)); color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, var(--panel)); border-radius: var(--radius-control); } label > span, .field-label { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 650; } .checkbox-row { display: flex; align-items: center; gap: 8px; } .checkbox-row input { width: 15px; height: 15px; min-height: 0; margin: 0; } .checkbox-row span { margin: 0; } kbd { font: 10px var(--font-mono); color: var(--subtle); border: 1px solid var(--line); border-bottom-color: var(--line-strong); border-radius: 3px; padding: 1px 5px; } /* 20-shell.css */ .boot-screen { height: 100%; display: grid; place-content: center; justify-items: center; gap: 12px; background: var(--bg); } .boot-screen strong { font-size: 14px; letter-spacing: .2px; } .boot-icon { width: 32px; height: 32px; color: var(--accent); } .login-view { height: 100%; display: grid; place-items: center; padding: 24px; background: var(--bg); } .login-panel { width: min(100%, 360px); border: 1px solid var(--line); background: var(--panel); border-radius: var(--radius-panel); box-shadow: 0 18px 46px var(--shadow); } .login-brand { display: flex; align-items: center; gap: 11px; padding: 18px 20px; border-bottom: 1px solid var(--line); } .brand-icon { width: 24px; height: 24px; color: var(--accent); } .login-brand div { display: grid; gap: 1px; } .login-brand strong { font-size: 16px; } .login-brand span { font-size: 11px; color: var(--muted); } .login-form { display: grid; gap: 13px; padding: 20px; } .login-panel footer { padding: 10px 20px 14px; color: var(--subtle); font-size: 10px; text-align: center; } .app-view { height: 100%; display: grid; grid-template-rows: var(--appbar-height, 44px) minmax(0, 1fr); background: var(--bg); } .appbar { display: grid; grid-template-columns: 220px minmax(260px, 620px) 1fr; align-items: center; gap: 16px; padding: 0 10px; border-bottom: 1px solid var(--line); background: var(--panel); } .app-brand { display: flex; align-items: center; gap: 8px; padding-left: 3px; } .app-brand strong { font-size: 14px; letter-spacing: -.2px; } .search-field { height: 30px; display: grid; grid-template-columns: 22px 1fr auto auto; align-items: center; gap: 4px; padding: 0 7px; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--field); } .search-field:focus-within { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); } .search-field svg { width: 15px; height: 15px; color: var(--muted); } .search-field input { min-height: 0; height: 28px; border: 0; padding: 0 3px; background: transparent; box-shadow: none; } .search-field input:focus { box-shadow: none; } .appbar-actions { justify-self: end; display: flex; align-items: center; gap: 4px; } .account-summary { display: grid; min-width: 120px; margin-left: 6px; padding-left: 10px; border-left: 1px solid var(--line); line-height: 1.25; } .account-summary span:first-child { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 650; } .account-summary span:last-child { color: var(--success); font-size: 9px; } .mail-shell { min-height: 0; display: grid; grid-template-columns: var(--folder-pane-width) minmax(300px, var(--message-pane-width)) minmax(420px, 1fr); overflow:hidden; } .folder-pane, .message-pane, .reader-pane { min-width: 0; min-height: 0; } .message-pane { overflow:hidden; } .reader-pane { container-name: reader-pane; container-type: inline-size; } .folder-pane { display: flex; flex-direction: column; padding: 10px; border-right: 1px solid var(--line); background: var(--sidebar); } .compose-button { justify-content: flex-start; margin-bottom: 12px; } .section-heading { min-height: 27px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; } .folder-pane-footer { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; color: var(--subtle); font: 9px var(--font-mono); } .mobile-only { display: none; } .search-filter-button { width:24px; height:24px; display:grid; place-items:center; padding:0; border:0; border-radius:var(--radius-control); background:transparent; color:var(--muted); } .search-filter-button:hover, .search-filter-button:focus-visible { background:var(--hover); color:var(--text); outline:none; } .search-filter-button svg { width:14px; height:14px; } .folder-pane, .message-pane { position: relative; } .pane-resizer { position: absolute; z-index: 8; top: 0; right: -3px; bottom: 0; width: 7px; cursor: col-resize; touch-action: none; background: transparent; } .pane-resizer::after { content: ""; position: absolute; top: 0; bottom: 0; left: 3px; width: 1px; background: transparent; } .pane-resizer:hover::after, .resizing-pane .pane-resizer::after { background: var(--accent); } .resizing-pane { cursor: col-resize !important; user-select: none !important; } .resizing-pane iframe { pointer-events: none; } @media (max-width: 820px) { .pane-resizer { display: none; } } .offline-banner { position: fixed; z-index: 80; top: calc(var(--appbar-height, 44px) + 6px); left: 50%; max-width: min(620px, calc(100vw - 24px)); transform: translateX(-50%); padding: 7px 10px; border: 1px solid var(--warning); border-radius: var(--radius-control); background: var(--panel-3); color: var(--text); box-shadow: 0 8px 24px var(--shadow); font-size: 10px; text-align: center; } .network-offline .account-summary span:last-child { color: var(--warning); } /* 30-mail.css */ .folder-list { display: grid; gap: 1px; overflow: auto; } .folder-button { min-height: 29px; width: 100%; display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 5px; padding: 3px 6px 3px calc(6px + (var(--folder-depth, 0) * 12px)); border: 1px solid transparent; border-radius: var(--radius-control); background: transparent; color: var(--muted); text-align: left; } .folder-button svg { width: 15px; height: 15px; } .folder-button .folder-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .folder-button:hover { color: var(--text); background: var(--hover); } .folder-button.active { color: var(--text); background: var(--selected); border-color: var(--line); } .folder-count { min-width: 20px; text-align: right; color: var(--subtle); font: 10px var(--font-mono); } .folder-count.unread { color: var(--accent); font-weight: 700; } .message-pane { display: grid; grid-template-rows: auto minmax(0,1fr) auto; border-right: 1px solid var(--line); background: var(--panel); } .pane-toolbar { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 9px; border-bottom: 1px solid var(--line); } .pane-title { display: flex; align-items: center; gap: 6px; min-width: 0; } .pane-title > div { display: grid; min-width: 0; } .pane-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; } .pane-title span { color: var(--subtle); font-size: 10px; } .toolbar-actions, .reader-toolbar { display: flex; align-items: center; gap: 3px; } .message-list { min-height: 0; overflow-y: auto; overflow-x: hidden; } .message-row { width: 100%; min-height: var(--row-height); display: grid; grid-template-columns: 19px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 8px; row-gap: 2px; align-content: center; padding: 7px 9px; border: 0; border-bottom: 1px solid var(--line); background: var(--panel); color: var(--text); text-align: left; } .message-row:hover { background: var(--hover); } .message-row.active { background: var(--selected); } .message-row.unread .message-from, .message-row.unread .message-subject { font-weight: 730; } .message-state { grid-row: 1 / 3; align-self: center; width: 8px; height: 8px; border: 1px solid var(--line-strong); border-radius: 50%; } .message-row.unread .message-state { background: var(--accent); border-color: var(--accent); } .message-main { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 8px; } .message-from, .message-subject, .message-snippet { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .message-from { font-size: 11px; } .message-date { color: var(--subtle); font: 9px var(--font-mono); white-space: nowrap; } .message-subject-line { min-width: 0; display: flex; align-items: center; gap: 6px; } .message-subject { font-size: 11px; } .message-snippet { color: var(--muted); font-size: 10px; } .message-icons { display: inline-flex; gap: 3px; color: var(--subtle); } .message-icons svg { width: 12px; height: 12px; } .load-more { margin: 7px; } .reader-pane { position: relative; overflow: hidden; background: var(--panel-2); } .reader-empty { height: 100%; display: grid; place-content: center; justify-items: center; gap: 7px; color: var(--muted); } .reader-empty svg { width: 34px; height: 34px; color: var(--line-strong); } .reader-empty strong { color: var(--text); font-size: 13px; } .reader-empty span { font-size: 11px; } .reader-content { height: 100%; overflow: auto; background: var(--panel); } .reader-toolbar { position: sticky; top: 0; z-index: 4; min-height: 42px; padding: 5px 10px; border-bottom: 1px solid var(--line); background: var(--panel); } .reader-toolbar .button { min-height: 29px; } .reader-toolbar .button svg { width: 15px; height: 15px; } .toolbar-spacer { flex: 1; } .move-control select { width: 118px; height: 29px; min-height: 29px; padding-top: 3px; padding-bottom: 3px; } .message-header { padding: 20px 22px 14px; border-bottom: 1px solid var(--line); } .message-header h1 { margin: 0 0 15px; font-size: 20px; line-height: 1.25; font-weight: 620; letter-spacing: -.25px; overflow-wrap: anywhere; } .message-meta { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 9px; } .avatar { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--panel-2); color: var(--muted); font-weight: 700; } .sender { display: grid; min-width: 0; } .sender strong, .sender span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sender strong { font-size: 12px; } .sender span, .message-meta time { color: var(--muted); font-size: 10px; } .thread-section { padding: 9px 22px; border-bottom: 1px solid var(--line); } .thread-list { display: grid; gap: 1px; } .thread-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding: 6px 7px; border: 0; border-radius: var(--radius-control); background: transparent; color: var(--muted); text-align: left; } .thread-item:hover { background: var(--hover); color: var(--text); } .thread-item.current { background: var(--selected); color: var(--text); } .thread-item span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .thread-item time { font: 9px var(--font-mono); color: var(--subtle); } .attachment-list { display: flex; flex-wrap: wrap; gap: 5px; padding: 10px 22px; border-bottom: 1px solid var(--line); } .attachment-button { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--panel-2); color: var(--text); padding: 5px 8px; font-size: 10px; } .attachment-button svg { width: 13px; height: 13px; } .attachment-download-all { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line-strong); border-radius:var(--radius-control); background:transparent; color:var(--muted); padding:5px 8px; font-size:10px; } .attachment-download-all:hover { color:var(--text); background:var(--hover); border-color:var(--accent); } .attachment-download-all svg { width:13px; height:13px; } .message-body { min-height: 260px; background: var(--panel); } .message-body iframe { display: block; width: 100%; min-height: 68vh; border: 0; background: #fff; } .message-body pre { margin: 0; padding: 22px; white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.58 var(--font-sans); color: var(--text); } .empty-list { padding: 30px 18px; color: var(--muted); text-align: center; font-size: 11px; } .bulk-toolbar { position:fixed; z-index:72; top:calc(var(--appbar-height, 44px) + 58px); left:50%; transform:translateX(-50%); width:max-content; max-width:min(900px, calc(100vw - 24px)); min-height:40px; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:5px; padding:6px; border:1px solid var(--line-strong); border-radius:calc(var(--radius-panel) + 4px); background:color-mix(in srgb, var(--panel-3) 94%, transparent); box-shadow:0 12px 34px var(--shadow); backdrop-filter:blur(10px); } .bulk-toolbar.hidden { display:none; } .bulk-toolbar .toolbar-spacer { display:none; } .bulk-toolbar .button { min-height:28px; padding:4px 8px; } .bulk-toolbar .move-control select { width:126px; } .bulk-select { display:flex; align-items:center; gap:7px; color:var(--muted); white-space:nowrap; } .message-row { grid-template-columns: 19px minmax(0, 1fr) auto; cursor:default; } .message-select { display:none; grid-row:1 / 3; align-self:center; margin:0; width:14px; height:14px; accent-color:var(--accent); } .message-state { grid-column:1; } .message-main { grid-column:2; } .message-subject-line { grid-column:2; } .message-icons { grid-column:3; } .message-list.selection-mode .message-row { grid-template-columns:18px 19px minmax(0, 1fr) auto; cursor:pointer; } .message-list.selection-mode .message-select { display:block; grid-column:1; } .message-list.selection-mode .message-state { grid-column:2; } .message-list.selection-mode .message-main { grid-column:3; } .message-list.selection-mode .message-subject-line { grid-column:3; } .message-list.selection-mode .message-icons { grid-column:4; } .message-row.selected { background:color-mix(in srgb, var(--accent) 14%, var(--panel)); } #select-mode-btn.active { color:var(--accent); background:var(--selected); border-color:var(--line); } .label-heading { margin-top:10px; } .tag-list { max-height:150px; overflow:auto; } .tag-item { width:100%; min-height:29px; display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:7px; padding:4px 7px; border:0; border-radius:var(--radius-control); background:transparent; color:var(--muted); text-align:left; } .tag-item:hover, .tag-item.active { background:var(--hover); color:var(--text); } .tag-dot { width:8px; height:8px; border-radius:50%; background:var(--tag-color); } .tag-count { font-size:10px; color:var(--muted); } .message-tags { display:inline-flex; flex-wrap:wrap; gap:3px; margin-left:5px; vertical-align:middle; } .message-tag { display:inline-flex; align-items:center; min-height:15px; max-width:120px; padding:0 5px; border:1px solid color-mix(in srgb,var(--tag-color) 48%,var(--line)); border-radius:999px; background:color-mix(in srgb,var(--tag-color) 10%,transparent); color:var(--text); font-size:9px; line-height:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .folder-button.drop-target { outline: 1px solid var(--accent); outline-offset: -1px; background: var(--selected); } .message-row.dragging { opacity: .5; } .remote-image-bar { display: flex; align-items: center; gap: 10px; margin: 0 18px 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--panel-2); color: var(--muted); font-size: 12px; } .remote-image-bar .button { margin-left: auto; } .source-card { width: min(1040px, calc(100vw - 28px)); height: min(82vh, 860px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; } .message-source-content { margin: 0; padding: 14px; overflow: auto; white-space: pre; tab-size: 4; font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: var(--panel-2); color: var(--text); border-block: 1px solid var(--line); } .attachment-item { display: inline-flex; align-items: center; gap: 4px; } .attachment-item .attachment-button { min-width: 0; } /* Reader toolbars must remain usable at every UI scale. */ .reader-toolbar { max-width:100%; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; flex-wrap:nowrap; } .reader-toolbar > *, .bulk-toolbar > * { flex:0 0 auto; } #spam-btn.active { color: var(--warning); background: color-mix(in srgb, var(--warning) 10%, transparent); border-color: color-mix(in srgb, var(--warning) 35%, var(--line)); } .message-icons { align-items:center; min-width:40px; justify-content:flex-end; } .message-static-icon { display:inline-grid; place-items:center; color:var(--subtle); } .message-quick-actions { display:inline-flex; align-items:center; gap:1px; opacity:0; pointer-events:none; } .message-row:hover .message-quick-actions, .message-row:focus-within .message-quick-actions, .message-row.selected .message-quick-actions { opacity:1; pointer-events:auto; } .message-quick-action { width:22px; height:22px; display:grid; place-items:center; padding:0; border:0; border-radius:var(--radius-control); background:transparent; color:var(--muted); } .message-quick-action:hover { background:var(--hover); color:var(--text); } .message-quick-action.active { color:var(--warning); } .message-quick-action svg { width:12px; height:12px; } @media (hover:none) { .message-quick-actions { opacity:1; pointer-events:auto; } } /* Hierarchical folder tree. The disclosure control is separate from the folder action. */ .folder-row { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; padding-left:calc(var(--folder-depth, 0) * 12px); min-width:0; } .folder-expander { width:18px; height:28px; display:grid; place-items:center; padding:0; border:0; border-radius:var(--radius-control); background:transparent; color:var(--subtle); } .folder-expander:hover, .folder-expander:focus-visible { color:var(--text); background:var(--hover); } .folder-expander svg { width:13px; height:13px; transition:transform .12s ease; } .folder-expander.expanded svg { transform:rotate(90deg); } .folder-expander.placeholder { visibility:hidden; pointer-events:none; } .folder-row .folder-button { padding-left:4px; } html[data-reduce-motion="true"] .folder-expander svg { transition:none; } #reader-from[role="button"] { cursor:pointer; border-radius:var(--radius-control); outline-offset:3px; } #reader-from[role="button"]:hover { text-decoration:underline; text-underline-offset:2px; } #reader-from[role="button"]:focus-visible { outline:1px solid var(--accent); } .list-sort-control select { width:auto; max-width:132px; min-height:28px; height:28px; padding:2px 24px 2px 7px; font-size:10px; } #thread-toggle svg { transition:transform .12s ease; } #thread-toggle.expanded svg { transform:rotate(90deg); } html[data-reduce-motion="true"] #thread-toggle svg { transition:none; } .attachment-preview-dialog { width:min(1040px, calc(100vw - 28px)); max-width:none; } .attachment-preview-card { height:min(84vh, 880px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; } .attachment-preview-body { min-height:0; overflow:auto; display:grid; place-items:center; background:var(--field); } .attachment-preview-body img { display:block; max-width:100%; max-height:100%; object-fit:contain; } .attachment-preview-body iframe { width:100%; height:100%; min-height:420px; border:0; background:#fff; } .attachment-preview-body pre { align-self:stretch; justify-self:stretch; margin:0; padding:16px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.5 var(--font-mono); color:var(--text); } /* A flagged message stays visually quiet while remaining easy to scan. */ .message-row.flagged { box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--danger) 58%, transparent); } .search-highlight { background: var(--selected); color: inherit; border-radius: 2px; padding: 0 1px; } /* Advanced appearance preferences. */ .folder-pane { background: var(--folder-bg); } .folder-button, .tag-item { min-height: var(--sidebar-item-height); } .message-pane, .message-row { background: var(--message-bg); } .reader-content, .message-body { background: var(--reader-bg); } .message-row.unread .message-from, .message-row.unread .message-subject { font-weight: var(--unread-font-weight); } .message-header, .thread-section, .attachment-list, .remote-image-bar, .message-body { width:100%; max-width:var(--reader-max-width); margin-inline:auto; } html[data-unread-badge="outline"] .message-row.unread .message-state { background:transparent; border:2px solid var(--accent); } html[data-unread-badge="solid"] .message-row.unread .message-state { width:12px; height:6px; border-radius:999px; background:var(--accent); border-color:var(--accent); } html[data-compact-headers="true"] .message-header { padding-block:10px 8px; } html[data-compact-headers="true"] .message-header h1 { margin-bottom:8px; font-size:17px; } html[data-compact-headers="true"] .message-meta { grid-template-columns:26px minmax(0,1fr) auto; } html[data-compact-headers="true"] .message-meta .avatar { width:26px; height:26px; } html[data-toolbar-density="compact"] .pane-toolbar, html[data-toolbar-density="compact"] .reader-toolbar { min-height:calc(36px * var(--ui-scale-factor)); padding-block:3px; } html[data-toolbar-density="spacious"] .pane-toolbar, html[data-toolbar-density="spacious"] .reader-toolbar { min-height:calc(52px * var(--ui-scale-factor)); padding-block:8px; } /* Pane-aware anti-collision rules. These react to the pane width, not only viewport width. */ @container reader-pane (max-width: 640px) { .reader-toolbar { gap:1px; padding-inline:6px; } .reader-toolbar .button span { display:none; } .reader-toolbar .button { padding-inline:6px; } } @container reader-pane (max-width: 460px) { .reader-toolbar { scrollbar-width:none; } .reader-toolbar::-webkit-scrollbar { display:none; } } @media (max-width: 560px) { .bulk-toolbar { top:auto; bottom:10px; width:calc(100vw - 20px); max-width:none; } .bulk-toolbar .move-control { display:block; } .bulk-toolbar .move-control select { width:116px; } } /* 40-compose.css */ .dialog { padding: 0; border: 1px solid var(--line-strong); border-radius: var(--radius-panel); background: transparent; color: var(--text); box-shadow: 0 20px 60px var(--shadow); } .dialog::backdrop { background: rgba(0,0,0,.58); } .dialog-card { min-width: 420px; background: var(--panel); } .dialog-header { min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 10px 6px 13px; border-bottom: 1px solid var(--line); } .dialog-header strong { font-size: 13px; } .compose-header-actions { display:flex; align-items:center; gap:6px; } .compose-header-actions .button.small { min-height:28px; padding:4px 8px; font-size:10px; } .compose-dialog { width: min(900px, calc(100vw - 40px)); max-width: none; } .compose-card { height:min(760px, calc(100dvh - 48px)); display:grid; grid-template-rows:auto auto auto minmax(240px,1fr) auto auto auto auto; overflow:hidden; container-name:compose-card; container-type:inline-size; } .compose-addresses { display:grid; gap:6px; max-height:min(46dvh, 380px); padding:10px 12px; border-bottom:1px solid var(--line); background:var(--panel); overflow:auto; } .compose-addresses > label { display:grid; grid-template-columns:72px minmax(0,1fr); align-items:center; gap:10px; min-height:34px; border:0; } .compose-addresses > label > span { margin:0; padding:0; font-size:10px; text-align:right; } .compose-addresses > label input, .compose-addresses > label select { min-height:34px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--field); box-shadow:none; } .compose-addresses > label input:focus, .compose-addresses > label select:focus { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); } .compose-options-row { display:grid; grid-template-columns:72px minmax(0,1fr); align-items:start; gap:10px; min-height:34px; } .compose-options-row > span { padding-top:8px; font-size:10px; color:var(--muted); text-align:right; } .compose-options { display:flex; align-items:center; flex-wrap:wrap; gap:7px; padding:0; } .compose-options label { display:inline-flex; grid-template-columns:none; align-items:center; gap:6px; min-height:34px; margin:0; padding:3px 7px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--panel-2); font-size:10px; color:var(--muted); } .compose-options label > span { margin:0; padding:0; font-size:10px; } .compose-options select { min-width:92px; min-height:26px; border:0; background:transparent; padding-block:2px; } .compose-options .compose-mdn-option input { min-height:auto; width:14px; height:14px; } .editor-toolbar { min-height:36px; display:flex; align-items:center; flex-wrap:wrap; gap:2px; row-gap:3px; padding:4px 8px; border-bottom:1px solid var(--line); background:var(--panel-2); } .editor-toolbar button { width: 28px; height: 27px; display: grid; place-items: center; border: 1px solid transparent; border-radius: var(--radius-control); background: transparent; color: var(--muted); } .editor-toolbar button:hover { border-color: var(--line); background: var(--hover); color: var(--text); } .editor-toolbar svg { width: 15px; height: 15px; } .toolbar-separator { width: 1px; height: 18px; margin: 0 4px; background: var(--line); } .editor-mode { margin-left: auto; color: var(--subtle); font: 9px var(--font-mono); } .compose-editor { min-height: 0; overflow: auto; padding: 18px 20px; background: var(--field); border: 0; outline: none; font: 14px/1.6 var(--font-sans); } .compose-editor:empty::before { content: "Write a message"; color: var(--subtle); } .compose-editor a { color: var(--accent); } .dialog-actions { display: flex; align-items: center; gap: 7px; padding: 8px 10px; border-top: 1px solid var(--line); } .dialog-actions > :first-child { margin-right: auto; } .compose-upload-progress { display:grid; grid-template-columns:minmax(80px,1fr) auto; align-items:center; gap:8px; padding:7px 10px; border-top:1px solid var(--line); background:var(--panel-2); color:var(--muted); font-size:10px; } .compose-upload-progress.hidden { display:none; } .compose-upload-track { height:4px; overflow:hidden; border-radius:999px; background:var(--line); } .compose-upload-track > span { display:block; width:0; height:100%; background:var(--accent); transition:width .12s linear; } .compose-attachments { display:flex; flex-wrap:wrap; gap:6px; padding:8px 10px; border-top:1px solid var(--line); background:var(--panel-2); } .compose-attachment { display:inline-flex; align-items:center; gap:6px; padding:5px 7px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--field); } .compose-attachment button { width:20px; height:20px; display:grid; place-items:center; padding:0; border:0; background:transparent; color:var(--muted); } .compose-mode-control { margin-left:auto; } .compose-mode-control select { min-width:108px; } .compose-editor.plain-mode { font-family:var(--font-mono); white-space:pre-wrap; } .editor-toolbar button:disabled { opacity:.4; cursor:not-allowed; } .editor-select select { height: 28px; max-width: 104px; border: 1px solid var(--line); background: var(--panel); color: var(--text); font: inherit; } .editor-color { display: inline-flex; align-items: center; } .editor-color input { width: 30px; height: 28px; padding: 2px; border: 1px solid var(--line); background: var(--panel); } .recipient-field { position: relative; } .recipient-suggestions { position: absolute; z-index: 120; top: calc(100% + 2px); left: 0; right: 0; max-height: 220px; overflow: auto; padding: 3px; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: var(--panel-3); box-shadow: 0 10px 26px var(--shadow); } .recipient-suggestion { width: 100%; min-height: 34px; display: grid; gap: 1px; padding: 5px 7px; border: 0; border-radius: var(--radius-control); background: transparent; color: var(--text); text-align: left; } .recipient-suggestion:hover, .recipient-suggestion.active { background: var(--selected); } .recipient-suggestion strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; } .recipient-suggestion span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 10px; } /* Inline image editing */ .compose-editor img[data-rustbox-cid] { max-width: 100%; height: auto; cursor: pointer; border-radius: min(3px, var(--radius-control)); } .compose-editor img[data-rustbox-cid].compose-inline-image-selected { outline: 2px solid var(--accent); outline-offset: 2px; } .image-edit-dialog { width:min(840px, calc(100vw - 28px)); max-width:none; } .image-edit-card { width:100%; height:min(720px, calc(100dvh - 28px)); display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; } .image-edit-layout { min-height:0; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr); overflow:hidden; } .image-edit-preview { min-width:0; min-height:0; display:grid; place-items:center; overflow:auto; padding:16px; background:var(--field); } .image-edit-preview canvas { display:block; max-width:100%; max-height:100%; width:auto; height:auto; border:1px solid var(--line); background:var(--panel); } .image-edit-controls { min-height:0; overflow:auto; padding:16px; border-left:1px solid var(--line); } .image-edit-controls > label, .image-crop-controls label { display:grid; gap:6px; margin-bottom:14px; } .image-edit-controls label > span, .image-crop-controls label > span { color:var(--muted); font-size:10px; } .image-edit-range-line { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; } .image-edit-range-line output { min-width:46px; text-align:right; color:var(--muted); font:10px var(--font-mono); } .image-crop-controls { margin:8px 0 0; padding:12px; border:1px solid var(--line); border-radius:var(--radius-control); } .image-crop-controls legend { padding:0 5px; color:var(--muted); font-size:10px; font-weight:700; } .image-crop-disabled { opacity:.5; pointer-events:none; } .image-edit-help { margin:8px 0 0; color:var(--subtle); font-size:10px; line-height:1.45; } @media (max-width: 720px) { .image-edit-layout { grid-template-columns:1fr; grid-template-rows:minmax(220px,1fr) auto; } .image-edit-controls { border-left:0; border-top:1px solid var(--line); max-height:42dvh; } } .compose-dialog { width:min(var(--composer-width), calc(100vw - 40px)); } .markdown-preview-dialog { width:min(860px, calc(100vw - 32px)); } .markdown-preview-card { max-height:min(82dvh, 820px); display:grid; grid-template-rows:auto minmax(0,1fr); } .markdown-preview-content { overflow:auto; padding:22px; background:var(--panel); color:var(--text); line-height:1.55; } .markdown-preview-content > :first-child { margin-top:0; } .markdown-preview-content > :last-child { margin-bottom:0; } .markdown-preview-content pre { overflow:auto; padding:10px; background:var(--panel-2); border:1px solid var(--line); border-radius:var(--radius-control); } .markdown-preview-content code { font-family:var(--font-mono); } .markdown-preview-content blockquote { margin-left:0; padding-left:12px; border-left:3px solid var(--line-strong); color:var(--muted); } #compose-editor { font-family: var(--compose-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); } .compose-reply-entry { min-height: 1.35em; } /* OpenPGP composer / reader */ .pgp-reader-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-block:1px solid var(--border);background:color-mix(in srgb,var(--accent) 8%,var(--panel));} .pgp-reader-bar>div:first-child{display:grid;gap:2px;min-width:0}.pgp-reader-status{display:block} .compose-pgp-panel{margin-left:82px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-control);background:color-mix(in srgb,var(--accent) 5%,var(--panel));} .compose-pgp-panel>summary{min-height:32px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:5px 9px;cursor:pointer;list-style:none;user-select:none;} .compose-pgp-panel>summary::-webkit-details-marker{display:none}.compose-pgp-summary-title{font-size:10px;font-weight:700;color:var(--text)} .compose-pgp-summary-status{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.compose-pgp-summary-action{color:var(--accent);font-size:10px} .compose-pgp-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 14px;align-items:center;padding:8px 9px;border-top:1px solid var(--line);} .compose-pgp-details>label:not(.checkbox-row){display:grid;gap:4px;min-width:0}.compose-pgp-details .inline-actions{justify-content:flex-end;margin-top:0}.compose-pgp-wide{grid-column:1 / -1} .compose-pgp-passphrase{grid-column:1 / -1}.compose-pgp-passphrase input{width:100%} .compose-fullscreen-toggle{font-size:17px;line-height:1;font-family:var(--font-sans);} /* Signature/footer editor */ .signature-editor-shell { overflow:hidden; border:1px solid var(--line-strong); border-radius:var(--radius-control); background:var(--field); } .signature-editor-toolbar { min-height:34px; display:flex; align-items:center; gap:2px; padding:3px 5px; border-bottom:1px solid var(--line); background:var(--panel-2); } .signature-editor-toolbar button { width:28px; height:27px; display:grid; place-items:center; padding:0; border:1px solid transparent; border-radius:var(--radius-control); background:transparent; color:var(--muted); } .signature-editor-toolbar button:hover { border-color:var(--line); background:var(--hover); color:var(--text); } .signature-editor-toolbar svg { width:15px; height:15px; } .signature-editor-shell .signature-editor { min-height:150px; max-height:320px; overflow:auto; padding:10px; border:0; border-radius:0; background:var(--field); outline:none; } .signature-editor-shell .signature-editor:focus { box-shadow:inset 0 0 0 1px var(--accent); } .signature-editor img { max-width:min(100%, 420px); height:auto; } .signature-help { display:block; margin-top:5px; line-height:1.45; } .compose-signature img { max-width:100%; height:auto; } @container compose-card (max-width: 620px) { .compose-addresses { padding:8px; } .compose-addresses > label, .compose-options-row { grid-template-columns:54px minmax(0,1fr); gap:7px; } .compose-pgp-panel { margin-left:61px; } } @media (max-width: 560px) { .compose-addresses > label, .compose-options-row { grid-template-columns:1fr; gap:3px; } .compose-addresses > label > span, .compose-options-row > span { text-align:left; padding-top:0; } .compose-pgp-panel { margin-left:0; } .editor-toolbar { max-height:112px; overflow:auto; } } /* 50-settings.css */ .settings-dialog { width: min(900px, calc(100vw - 40px)); max-width: none; } .settings-card { min-height: 560px; } .settings-layout { display: grid; grid-template-columns: 160px minmax(0,1fr); min-height: 510px; } .settings-nav { min-height:0; display: flex; flex-direction: column; gap: 1px; padding: 9px; border-right: 1px solid var(--line); background: var(--sidebar); overflow:auto; overscroll-behavior:contain; } .settings-tab { min-height: 30px; border: 1px solid transparent; border-radius: var(--radius-control); background: transparent; color: var(--muted); text-align: left; padding: 4px 8px; } .settings-tab:hover { background: var(--hover); color: var(--text); } .settings-tab.active { background: var(--selected); border-color: var(--line); color: var(--text); } .settings-content { min-width: 0; min-height:0; padding: 18px 20px; overflow: auto; overscroll-behavior:contain; } .settings-panel h2 { margin: 0 0 18px; font-size: 16px; font-weight: 620; } .settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 14px 18px; } .settings-section { padding: 14px; border-bottom: 1px solid var(--line); } .inline-field { display: grid; grid-template-columns: 1fr auto; gap: 7px; } .inline-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; } .folder-card { width: min(470px, calc(100vw - 30px)); } .sieve-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; } .sieve-header h2 { margin-bottom: 2px; } .sieve-header p { margin: 0; } .sieve-layout { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 12px; min-height: 390px; } .sieve-scripts { min-height: 260px; max-height: 390px; overflow: auto; border: 1px solid var(--line); background: var(--panel-2); } .sieve-script { width: 100%; min-height: 30px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--muted); text-align: left; padding: 5px 7px; } .sieve-script:hover, .sieve-script.active { background: var(--selected); color: var(--text); } .sieve-script span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sieve-script span:last-child { color: var(--success); font: 8px var(--font-mono); } .sieve-editor-wrap { display:grid; align-content:start; gap:10px; min-width:0; } .code-editor { min-height: 310px; resize: vertical; font: 11px/1.55 var(--font-mono); tab-size: 4; } .about-list { display: grid; grid-template-columns: 120px minmax(0,1fr); margin: 0; border-top: 1px solid var(--line); } .about-list dt, .about-list dd { margin: 0; padding: 8px 0; border-bottom: 1px solid var(--line); } .about-list dt { color: var(--muted); } .about-list code { font: 10px var(--font-mono); overflow-wrap: anywhere; } .toast-stack { position: fixed; right: 14px; bottom: 14px; z-index: 1000; display: grid; gap: 6px; width: min(340px, calc(100vw - 28px)); } .toast { border: 1px solid var(--line-strong); border-left: 3px solid var(--accent); border-radius: var(--radius-control); background: var(--panel-3); color: var(--text); box-shadow: 0 10px 28px var(--shadow); padding: 9px 10px; font-size: 11px; } .toast.error { border-left-color: var(--danger); } .settings-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; } .settings-panel-heading h2 { margin-bottom:3px; } .appearance-grid { grid-template-columns: repeat(2,minmax(220px,1fr)); max-width:760px; } .appearance-grid input[type="range"] { padding:0; border:0; background:transparent; min-height:24px; } .color-input { display:grid; grid-template-columns:44px 1fr; align-items:center; gap:8px; } .color-input input[type="color"] { width:44px; height:30px; padding:2px; } .color-input output { font:11px var(--font-mono); color:var(--muted); } .appearance-toggles { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:10px 18px; margin-top:18px; padding-top:14px; border-top:1px solid var(--line); max-width:760px; } .appearance-presets { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; max-width:760px; margin-bottom:18px; } .appearance-preset { min-width:0; display:grid; gap:4px; padding:10px; border:1px solid var(--line); border-radius:var(--radius-panel); background:var(--panel-2); color:var(--text); text-align:left; } .appearance-preset:hover, .appearance-preset:focus-visible { border-color:var(--accent); background:var(--hover); } .appearance-preset strong { font-size:11px; } .appearance-preset span { color:var(--muted); font-size:9px; line-height:1.35; } .app-prompt-card { width:min(460px,calc(100vw - 24px)); display:grid; grid-template-rows:auto minmax(0,1fr) auto; } .app-prompt-body { display:grid; gap:10px; padding:16px; overflow:auto; } .app-prompt-message { margin:0; color:var(--muted); line-height:1.5; } .app-prompt-control { width:100%; } .app-prompt-actions > :first-child { margin-right:auto; } .print-frame { position:fixed; right:0; bottom:0; width:1px; height:1px; border:0; opacity:0; pointer-events:none; } .headers-card { width:min(820px,calc(100vw - 32px)); max-height:min(720px,calc(100dvh - 32px)); } .headers-content { margin:0; padding:14px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; background:var(--field); border-top:1px solid var(--line); border-bottom:1px solid var(--line); font:11px/1.55 var(--font-mono); } .context-menu { position:fixed; z-index:1000; min-width:210px; max-width:300px; padding:4px; border:1px solid var(--line-strong); border-radius:var(--radius-control); background:var(--panel-2); box-shadow:0 12px 28px var(--shadow); } .context-menu button { width:100%; min-height:30px; display:flex; align-items:center; gap:8px; padding:5px 8px; border:0; border-radius:var(--radius-control); background:transparent; color:var(--text); text-align:left; } .context-menu button:hover { background:var(--hover); } .context-menu button.danger { color:var(--danger); } .context-menu .separator { height:1px; margin:4px; background:var(--line); } .identity-overview{display:grid;gap:10px;min-width:0}.identity-overview-hint{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--panel-2)} .identity-list{min-width:0;max-height:430px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--field)} .identity-item{width:100%;min-width:0;display:block;padding:10px 11px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left} .identity-item:last-child{border-bottom:0}.identity-item:hover,.identity-item.active{background:var(--hover)}.identity-item strong,.identity-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-item small{margin-top:2px;color:var(--muted)} .identity-signature-field{min-width:0}.signature-editor{min-height:150px;padding:9px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--field);overflow:auto} .dialog.identity-dialog{width:min(980px,calc(100vw - 28px));max-width:none;overflow:hidden}.identity-card{width:100%;height:min(820px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden} .identity-form-body{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;display:grid;align-content:start;gap:12px;padding:14px}.identity-modal-section{min-width:0;display:grid;gap:11px;padding:13px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--panel-2)} .identity-modal-heading{display:grid;gap:2px}.identity-modal-heading>span{line-height:1.4}.identity-fields-grid,.identity-options-grid,.identity-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.identity-field-wide{grid-column:1 / -1} .identity-signature-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(360px,1.2fr);gap:14px;min-width:0}.identity-signature-grid>label{min-width:0}.identity-signature-grid textarea{min-height:210px;resize:vertical}.identity-signature-grid .signature-editor-shell .signature-editor{min-height:210px;max-height:360px} .identity-options-grid{margin-top:2px}.identity-toggle-grid .checkbox-row{min-width:0}.identity-dialog-actions{padding:9px 12px}.identity-dialog-actions #identity-delete{margin-right:auto} .notification-settings { display:grid; gap:14px; max-width:620px; } .notification-folder-list { display:grid; grid-template-columns:repeat(2,minmax(180px,1fr)); gap:7px 14px; max-height:220px; overflow:auto; padding:9px; border:1px solid var(--line); background:var(--field); } .contacts-card, .calendar-card { width:min(900px,calc(100vw - 32px)); min-height:560px; max-height:calc(100dvh - 32px); } .contacts-layout { display:grid; grid-template-columns:280px minmax(0,1fr); min-height:500px; } .contacts-sidebar { border-right:1px solid var(--line); padding:10px; background:var(--panel-2); } .contact-list { margin-top:10px; max-height:430px; overflow:auto; border:1px solid var(--line); background:var(--field); } .contact-item { width:100%; display:block; padding:8px 9px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--text); text-align:left; } .contact-item:hover, .contact-item.active { background:var(--hover); } .contact-item small { display:block; color:var(--muted); margin-top:2px; } .contact-form { display:grid; align-content:start; gap:12px; padding:16px; } .calendar-toolbar { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid var(--line); } .calendar-toolbar strong { text-align:center; } .calendar-events { max-height:360px; overflow:auto; padding:10px 12px; } .calendar-event { width:100%; display:grid; grid-template-columns:150px 1fr auto; gap:10px; align-items:center; padding:8px 9px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--text); text-align:left; } .calendar-event:hover { background:var(--hover); } .calendar-event time, .calendar-event small { color:var(--muted); } .calendar-form { display:grid; gap:12px; padding:14px 16px; border-top:1px solid var(--line); background:var(--panel-2); } @media (max-width:720px) { .contacts-layout { grid-template-columns:1fr; } .contacts-sidebar { border-right:0; border-bottom:1px solid var(--line); } .calendar-event { grid-template-columns:1fr; } } .advanced-search-card { width:min(760px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); } .advanced-search-form { display:grid; gap:16px; padding:16px; overflow:auto; } .advanced-search-grid { grid-template-columns:repeat(2,minmax(220px,1fr)); max-width:none; } .advanced-search-grid .wide-field { grid-column:1 / -1; } .saved-search-section { border-top:1px solid var(--line); padding-top:12px; } .saved-search-list { display:grid; gap:4px; max-height:160px; overflow:auto; } .saved-search-item { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:6px; min-height:32px; padding:4px 6px; border:1px solid var(--line); background:var(--field); } .saved-search-item button { min-height:26px; } .saved-search-item strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .advanced-search-actions { padding:0; border-top:0; } @media (max-width:720px) { .advanced-search-grid { grid-template-columns:1fr; } .advanced-search-grid .wide-field { grid-column:auto; } } .tag-card { width:min(390px,calc(100vw - 32px)); } .tag-form { display:grid; gap:12px; padding:16px; } .quota-summary { display:grid; gap:6px; max-width:520px; margin-top:16px; padding:10px 12px; border:1px solid var(--line); background:var(--field); } .quota-summary > span { color:var(--muted); font-size:11px; } .quota-track { height:6px; overflow:hidden; border-radius:999px; background:var(--panel-3); } .quota-track span { display:block; width:0; height:100%; background:var(--accent); transition:width .16s ease; } .contact-group-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:5px; margin-bottom:8px; } .contact-group-toolbar .button { padding-inline:7px; } .contact-group-membership { display:grid; grid-template-columns:repeat(2,minmax(140px,1fr)); gap:5px 10px; margin-top:5px; padding:8px; border:1px solid var(--line); background:var(--field); max-height:130px; overflow:auto; } .field-label { display:block; margin-bottom:4px; color:var(--muted); font-size:11px; } @media (max-width:720px) { .contact-group-toolbar { grid-template-columns:1fr auto; } .contact-group-toolbar #contact-group-rename, .contact-group-toolbar #contact-group-delete { grid-row:2; } } .sieve-rules-overview { display:grid; gap:8px; padding:11px; border:1px solid var(--line); border-radius:var(--radius-panel); background:var(--panel-2); } .sieve-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; } .sieve-section-heading > div { display:grid; gap:2px; } .sieve-section-heading small { display:block; line-height:1.35; } .sieve-count-badge, .sieve-status-pill { display:inline-flex; align-items:center; min-height:22px; padding:2px 8px; border:1px solid var(--line); border-radius:999px; background:var(--field); color:var(--muted); font-size:10px; white-space:nowrap; } .sieve-status-pill.ok { border-color:color-mix(in srgb,var(--success) 45%,var(--line)); color:var(--success); } .sieve-status-pill.error { border-color:color-mix(in srgb,var(--danger) 45%,var(--line)); color:var(--danger); } .sieve-builder { overflow:hidden; border:1px solid var(--line); border-radius:var(--radius-panel); background:var(--panel-2); } .sieve-builder > summary { cursor:pointer; padding:9px 11px; font-weight:650; user-select:none; } .sieve-builder[open] > summary { border-bottom:1px solid var(--line); } .sieve-builder-body { display:grid; gap:0; } .sieve-builder-section { display:grid; gap:8px; padding:11px; border-bottom:1px solid var(--line); } .sieve-builder-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:0; } .sieve-builder-grid-rule { grid-template-columns:minmax(220px,1.5fr) minmax(150px,1fr) minmax(170px,1fr); } .sieve-builder label { min-width:0; } .sieve-builder input, .sieve-builder select { width:100%; } .sieve-builder .checkbox-row { align-self:end; min-height:var(--control-height); } .sieve-builder-wide { grid-column:1 / -1; } .sieve-builder-dynamic-list { display:grid; gap:7px; } .sieve-dynamic-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; align-items:end; padding:8px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--field); } .sieve-dynamic-row .sieve-dynamic-remove { justify-self:start; } .sieve-rule-preview { display:grid; gap:9px; margin:11px; padding:11px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--field); } .sieve-rule-preview-text { display:grid; gap:5px; line-height:1.45; } .sieve-rule-preview-text strong { color:var(--text); } .sieve-rule-preview-code { max-height:180px; margin:0; padding:9px; overflow:auto; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--panel); color:var(--muted); font:10px/1.45 var(--font-mono); white-space:pre-wrap; } .sieve-builder-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 11px 11px; } .sieve-builder-footer .inline-actions { padding:0; } .sieve-raw-source { border:1px solid var(--line); border-radius:var(--radius-control); background:var(--panel-2); } .sieve-raw-source > summary { cursor:pointer; padding:8px 10px; font-weight:600; } .sieve-raw-source[open] > summary { border-bottom:1px solid var(--line); } .sieve-raw-source p { margin:8px 10px 0; } .sieve-raw-source .code-editor { width:calc(100% - 20px); min-height:260px; margin:8px 10px 10px; resize:vertical; } .sieve-result { min-height:18px; } @media (max-width:900px) { .sieve-builder-grid, .sieve-builder-grid-rule, .sieve-dynamic-row { grid-template-columns:1fr 1fr; } } @media (max-width:620px) { .sieve-builder-grid, .sieve-builder-grid-rule, .sieve-dynamic-row { grid-template-columns:1fr; } .sieve-builder-footer, .sieve-section-heading { align-items:stretch; flex-direction:column; } } .sieve-rule-launch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 11px;border:1px dashed var(--line-strong);border-radius:var(--radius-control);background:var(--panel-2)}.sieve-rule-launch .muted{flex:1 1 260px;line-height:1.4} .dialog.sieve-rule-dialog{width:min(1040px,calc(100vw - 28px));max-width:none;overflow:hidden}.sieve-rule-card{width:100%;height:min(900px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.sieve-rule-card>.dialog-header>div:first-child{display:grid;gap:2px;min-width:0}.sieve-rule-dialog-subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.sieve-rule-dialog-body{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px;background:var(--panel)} .sieve-builder-modal{overflow:visible}.sieve-builder-modal .sieve-builder-body{overflow:visible}.sieve-builder-modal .sieve-builder-section{padding:14px}.sieve-builder-modal .sieve-rule-preview{margin:14px}.sieve-builder-modal .sieve-builder-footer{position:sticky;bottom:-12px;z-index:3;padding:10px 14px;border-top:1px solid var(--line);background:var(--panel-2);box-shadow:0 -8px 18px color-mix(in srgb,var(--shadow) 45%,transparent)} .contact-transfer { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0; } /* Diagnostics and mailbox behavior */ .diagnostics-grid { display: grid; gap: 12px; } .diagnostic-card { border: 1px solid var(--line); border-radius: var(--radius-panel); background: var(--panel-2); padding: 12px; } .diagnostic-card .section-heading { margin: 0 0 10px; } .capability-grid { display: flex; flex-wrap: wrap; gap: 6px; } .capability-badge { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 3px 7px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--panel-3); font-size: 12px; } .capability-badge strong { font-size: 11px; font-weight: 650; } .capability-badge.supported strong { color: var(--success); } .capability-badge.unsupported { color: var(--muted); } .capability-list { margin-top: 10px; color: var(--muted); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; } .account-settings-list { display: grid; gap: 8px; } .account-settings-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--panel-2); } .account-settings-row .account-email { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .account-settings-row.active .account-email { font-weight: 650; } .add-account-card { width: min(440px, calc(100vw - 28px)); } .contact-photo-editor { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 10px; align-items: center; padding-bottom: 8px; border-bottom: 1px solid var(--line); } .contact-photo-preview, .contact-photo-placeholder { width: 72px; height: 72px; border: 1px solid var(--line); border-radius: var(--radius-panel); background: var(--panel-2); } .contact-photo-preview { object-fit: cover; } .contact-photo-placeholder { display: grid; place-items: center; color: var(--muted); font-size: 12px; } .contact-photo-editor .inline-actions { align-self: center; } .folder-properties-card { width: min(520px, calc(100vw - 28px)); } .folder-properties-list { display: grid; padding: 10px 14px 14px; } .folder-property-row { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); } .folder-property-row:last-child { border-bottom: 0; } .folder-property-row strong { overflow-wrap: anywhere; font-weight: 550; } .account-session-heading { margin-top: 22px; } .account-session-details { min-width: 0; display: grid; gap: 3px; } .account-session-details .muted { font-size: 0.82rem; } .duplicates-card { width: min(720px, calc(100vw - 32px)); } .duplicate-contact-list { display: grid; gap: 12px; max-height: 60vh; overflow: auto; } .duplicate-contact-group { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); } .duplicate-contact-options { display: grid; gap: 6px; } .duplicate-contact-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 6px; border-top: 1px solid var(--border); } .duplicate-contact-summary { display: grid; min-width: 0; } /* Calendar views */ .calendar-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; } .calendar-toolbar #calendar-range { flex:1 1 220px; text-align:center; } .calendar-toolbar #calendar-view { min-width:100px; } .calendar-events { max-height:440px; } .calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); } .calendar-weekday { padding:6px 8px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--muted); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; } .calendar-day-cell { min-height:110px; padding:5px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--panel); overflow:hidden; } .calendar-week-grid .calendar-day-cell { min-height:260px; } .calendar-day-cell.outside-month { opacity:.52; } .calendar-day-cell.today { box-shadow:inset 0 0 0 1px var(--accent); } .calendar-day-number { width:28px; height:24px; border:0; background:transparent; color:var(--muted); text-align:center; border-radius:var(--radius); cursor:pointer; } .calendar-day-number:hover { background:var(--hover); color:var(--text); } .calendar-event-chip { width:100%; display:grid; grid-template-columns:auto minmax(0,1fr); gap:5px; align-items:center; margin-top:4px; padding:4px 5px; border:0; border-left:3px solid var(--event-color); background:var(--panel-2); color:var(--text); text-align:left; cursor:pointer; } .calendar-event-chip:hover { background:var(--hover); } .calendar-event-chip span { color:var(--muted); font-size:10px; white-space:nowrap; } .calendar-event-chip strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; } .calendar-more { display:block; margin-top:4px; color:var(--muted); font-size:10px; } .calendar-agenda-day { display:grid; gap:4px; margin-bottom:12px; } .calendar-agenda-day h4 { margin:0; padding:7px 4px; border-bottom:1px solid var(--line); font-size:12px; } .calendar-event { border-left:3px solid var(--event-color, var(--accent)); } @media (max-width:720px) { .calendar-grid { grid-template-columns:1fr; border-left:0; } .calendar-weekday { display:none; } .calendar-day-cell { min-height:auto; border-left:1px solid var(--line); } .calendar-day-cell.outside-month { display:none; } .calendar-toolbar #calendar-range { order:-1; flex-basis:100%; } } /* 0.0.1 UI reliability pass: viewport-safe dialogs, toasts and calendar layout */ .dialog { max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); overflow: auto; overscroll-behavior: contain; scrollbar-gutter: auto; } .dialog-card { max-width: 100%; max-height: calc(100dvh - 18px); min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: auto; } /* Grid dialogs own their internal scroll regions; simple/legacy dialogs fall back to scrolling the complete card so actions can never be trapped below the viewport. */ .compose-card, .settings-card, .identity-card, .sieve-rule-card, .contacts-card, .calendar-card, .headers-card, .source-card, .shortcuts-card, .attachment-preview-card, .app-prompt-card, .quick-filter-card { overflow: hidden; } .settings-card { min-height: 0; height: min(720px, calc(100dvh - 18px)); display: grid; grid-template-rows: auto minmax(0, 1fr); } .settings-layout { min-height: 0; height: 100%; overflow:hidden; } .dialog-header { min-height: var(--dialog-header-height, 43px); flex: 0 0 auto; background: var(--panel); } .dialog-actions { flex: 0 0 auto; margin: 0; background: var(--panel); position: relative; z-index: 2; } .contacts-card, .calendar-card { width: min(980px, calc(100vw - 32px)); height: min(780px, calc(100dvh - 32px)); min-height: 0; max-height: calc(100dvh - 32px); display: grid; overflow: hidden; } .contacts-card { grid-template-rows: auto minmax(0, 1fr); } .contacts-layout { min-height: 0; height: 100%; overflow: hidden; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); } .contacts-sidebar { min-height: 0; display: flex; flex-direction: column; overflow: hidden; } .contact-list { min-height: 120px; max-height: none; flex: 1 1 auto; overflow: auto; } .contact-form { min-height: 0; overflow: auto; overscroll-behavior: contain; padding-bottom: 0; } .contact-form > .inline-actions:last-child { position: sticky; bottom: 0; z-index: 3; margin: 0 -16px; padding: 10px 16px; border-top: 1px solid var(--line); background: var(--panel); } .calendar-card { grid-template-rows: auto auto minmax(0, 1fr) auto; } .calendar-toolbar { display: grid; grid-template-columns: auto minmax(180px, 1fr) auto auto auto auto auto; align-items: center; gap: 6px; padding: 8px 10px; overflow-x: auto; scrollbar-width: thin; } .calendar-toolbar #calendar-range { min-width: 0; text-align: center; } .calendar-toolbar #calendar-view { min-width: 96px; } .calendar-events { min-height: 0; max-height: none; overflow: auto; padding: 0; overscroll-behavior: contain; } .calendar-grid { width: 100%; min-width: 680px; display: grid !important; grid-template-columns: repeat(7, minmax(86px, 1fr)) !important; grid-auto-flow: row; align-items: stretch; } .calendar-weekday { min-width: 0; } .calendar-day-cell { min-width: 0; } .calendar-form { min-height: 0; max-height: min(48dvh, 430px); overflow: auto; overscroll-behavior: contain; } .headers-card, .source-card { width: min(1040px, calc(100vw - 28px)); height: min(82dvh, 860px); max-height: calc(100dvh - 28px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; } .headers-content, .message-source-content { min-height: 0; max-height: none; overflow: auto; overscroll-behavior: contain; } .toast-stack { z-index: 2147483000; pointer-events: none; } .toast { min-height: 42px; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto auto; align-items: center; gap: 8px; padding: 8px 8px 8px 10px; pointer-events: auto; opacity: 0; transform: translateY(6px); transition: opacity .15s ease, transform .15s ease; } .toast.visible { opacity: 1; transform: translateY(0); } .toast-icon { display: grid; place-items: center; color: var(--accent); } .toast-icon svg { width: 17px; height: 17px; } .toast-message { min-width: 0; overflow-wrap: anywhere; } .toast-countdown { min-width: 24px; color:var(--subtle); font:10px var(--font-mono); text-align:right; } .toast-controls { display:flex; align-items:center; justify-content:flex-end; gap:2px; white-space:nowrap; } .toast-action { border:0; border-radius:var(--radius-control); background:transparent; color:var(--accent); padding:4px 6px; font-weight:700; font-size:10px; cursor:pointer; } .toast-action:hover, .toast-action:focus-visible { background:var(--hover); color:var(--text); outline:none; } .toast-close { width: 24px; height: 24px; display: grid; place-items: center; border: 0; border-radius: var(--radius-control); background: transparent; color: var(--muted); } .toast-close:hover { background: var(--hover); color: var(--text); } .toast-close svg { width: 14px; height: 14px; } .toast-success { border-left-color: var(--success); } .toast-success .toast-icon { color: var(--success); } .toast-error { border-left-color: var(--danger); } .toast-error .toast-icon { color: var(--danger); } .toast-warning { border-left-color: var(--warning); } .toast-warning .toast-icon { color: var(--warning); } .toast-info { border-left-color: var(--accent); } @media (max-width: 720px) { .contacts-card, .calendar-card { width: calc(100vw - 12px); height: calc(100dvh - 12px); max-height: calc(100dvh - 12px); } .contacts-layout { grid-template-columns: 1fr; grid-template-rows: minmax(180px, 34%) minmax(0, 1fr); overflow: hidden; } .contacts-sidebar { border-right: 0; border-bottom: 1px solid var(--line); } .contact-form { padding: 12px; } .contact-form > .inline-actions:last-child { margin: 0 -12px; padding: 9px 12px; } .calendar-toolbar { grid-template-columns: auto minmax(150px, 1fr) auto auto; } .calendar-toolbar #calendar-import, .calendar-toolbar #calendar-export, .calendar-toolbar #calendar-new { grid-row: 2; } .calendar-grid { min-width: 0; grid-template-columns: 1fr !important; border-left: 0; } .calendar-weekday { display: none; } .calendar-day-cell { border-left: 1px solid var(--line); } .calendar-day-cell.outside-month { display: none; } } .dialog-header .inline-actions { margin-top: 0; } .headers-card { grid-template-rows: auto auto minmax(0, 1fr) auto; } .headers-summary { max-height: min(30dvh, 240px); overflow: auto; padding: 8px 14px; border-bottom: 1px solid var(--line); background: var(--panel); } .header-summary-row { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 12px; padding: 5px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); } .header-summary-row:last-child { border-bottom: 0; } .header-summary-row code { min-width: 0; overflow-wrap: anywhere; white-space: pre-wrap; font: 10px/1.45 var(--font-mono); } @media (max-width: 560px) { .header-summary-row { grid-template-columns: 1fr; gap: 2px; } } /* Dialog/layout hardening */ .contacts-card, .calendar-card, .headers-card, .source-card { box-sizing: border-box; contain: layout paint; } .contacts-card { grid-template-rows: auto minmax(0, 1fr); } .contact-form { scrollbar-gutter: auto; padding-bottom: 12px; } .contact-form > .inline-actions:last-child { box-shadow: 0 -1px 0 var(--line); } .calendar-card { grid-template-rows: auto auto minmax(0, 1fr) auto; } .calendar-events { width: 100%; min-width: 0; overflow: auto; scrollbar-gutter: auto; } .calendar-grid { min-width: 700px; grid-template-columns: repeat(7, minmax(96px, 1fr)) !important; } .calendar-week-grid { min-width: 700px; } .calendar-form:not(.hidden) { border-top: 1px solid var(--line); scrollbar-gutter: auto; } .headers-content, .message-source-content { scrollbar-gutter: auto; } .source-card .dialog-header .button { margin-left: auto; } .reader-toolbar { min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; } .duplicate-contact-group { border-color: var(--line); border-radius: var(--radius-panel); } .duplicate-contact-row { border-color: var(--line); } @media (max-width: 720px) { .calendar-grid, .calendar-week-grid { min-width: 0; grid-template-columns: 1fr !important; } } .shortcuts-card { width:min(680px, calc(100vw - 32px)); max-height:calc(100dvh - 32px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; } .shortcuts-grid { overflow:auto; padding:18px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; } .shortcuts-grid h3 { margin:0 0 10px; font-size:12px; } .shortcuts-grid dl { margin:0; display:grid; grid-template-columns:minmax(92px,max-content) minmax(0,1fr); gap:7px 14px; align-items:center; } .shortcuts-grid dt, .shortcuts-grid dd { margin:0; } kbd { display:inline-block; min-width:24px; padding:2px 6px; border:1px solid var(--line); border-bottom-width:2px; border-radius:var(--radius-control); background:var(--field); color:var(--text); font:10px var(--font-mono); text-align:center; } @media (max-width:620px) { .shortcuts-grid { grid-template-columns:1fr; } } .quota-summary.quota-warning { border-color:color-mix(in srgb, var(--warning) 55%, var(--line)); } .quota-summary.quota-warning .quota-track span { background:var(--warning); } .quota-summary.quota-danger { border-color:color-mix(in srgb, var(--danger) 62%, var(--line)); } .quota-summary.quota-danger .quota-track span { background:var(--danger); } @media (max-width: 900px) { .appearance-presets { grid-template-columns:repeat(2,minmax(0,1fr)); } } @media (max-width: 520px) { .appearance-presets { grid-template-columns:1fr; } } .sieve-managed-rules { display:grid; gap:7px; } .sieve-managed-rule { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; padding:9px 10px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--panel); } .sieve-managed-rule.selected { border-color:var(--accent); box-shadow:inset 3px 0 0 var(--accent); } .sieve-managed-rule.disabled { opacity:.68; } .sieve-managed-rule.unsupported { border-style:dashed; } .sieve-managed-rule-main { display:grid; gap:5px; min-width:0; } .sieve-managed-rule-title { display:flex; align-items:center; gap:7px; min-width:0; } .sieve-managed-rule-title strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .sieve-rule-state { flex:0 0 auto; padding:1px 6px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.04em; } .sieve-rule-state.enabled { color:var(--success); border-color:color-mix(in srgb,var(--success) 40%,var(--line)); } .sieve-managed-rule-summary { display:grid; gap:2px; color:var(--muted); font-size:11px; line-height:1.35; } .sieve-managed-rule-summary b { color:var(--text); font-weight:600; } .sieve-managed-rule-actions { display:flex; align-items:flex-start; gap:3px; flex-wrap:wrap; justify-content:flex-end; } .sieve-managed-rule-actions button { min-width:27px; min-height:25px; padding:2px 6px; } .sieve-rule-warning { color:var(--warning); font-size:10px; } @media (max-width:720px) { .sieve-managed-rule { grid-template-columns:1fr; } .sieve-managed-rule-actions { justify-content:flex-start; } } .quick-filter-dialog { width:min(700px, calc(100vw - 32px)); } .quick-filter-card { width:100%; max-height:min(720px, calc(100dvh - 32px)); } .quick-filter-body { padding:16px; overflow:auto; } .quick-filter-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; } .quick-filter-grid label { min-width:0; } .quick-filter-grid input, .quick-filter-grid select { width:100%; } .quick-filter-toggles { margin-top:14px; } .quick-filter-hint { min-height:20px; margin-top:10px; } @media (max-width: 620px) { .quick-filter-grid { grid-template-columns:1fr; } } .quick-filter-preview { margin-top:14px; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--panel-2); font-size:12px; line-height:1.45; overflow-wrap:anywhere; } .appearance-advanced { margin-top:12px; border-top:1px solid var(--line); padding-top:10px; } .appearance-advanced > summary { cursor:pointer; color:var(--text); font-weight:600; margin-bottom:10px; } .pane-background-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; } .pane-background-control { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; } .pane-background-control > span { display:flex; align-items:center; gap:6px; } @media (max-width:820px) { .pane-background-grid { grid-template-columns:1fr; } } /* OpenPGP settings */ .pgp-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pgp-settings-grid .settings-section{margin:0} .pgp-key-list{display:grid;gap:8px}.pgp-key-card{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)} .pgp-key-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.pgp-key-head>div{display:grid;gap:3px;min-width:0}.pgp-key-head small{color:var(--muted)} .pgp-fingerprint{display:block;overflow-wrap:anywhere;font-size:.84em;color:var(--muted)} @media(max-width:760px){.pgp-settings-grid{grid-template-columns:1fr}.compose-pgp-details{grid-template-columns:1fr}.compose-pgp-details .inline-actions{justify-content:flex-start}.pgp-reader-bar{align-items:flex-start;flex-direction:column}} /* 60-responsive.css */ /* Dedicated full-screen composer mode. */ .compose-dialog.compose-fullscreen{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;overflow:hidden} .compose-dialog.compose-fullscreen .compose-card{width:100%;height:100dvh;max-width:none;max-height:none;border-radius:0} html[data-preview="off"] .mail-shell { grid-template-columns: var(--folder-pane-width) minmax(360px,1fr); } html[data-preview="off"] .reader-pane { display: none; } html[data-preview="bottom"] .mail-shell { grid-template-columns: var(--folder-pane-width) minmax(0,1fr); grid-template-rows: minmax(260px, 44%) minmax(0,1fr); } html[data-preview="bottom"] .folder-pane { grid-row: 1 / 3; } html[data-preview="bottom"] .message-pane { grid-column: 2; grid-row: 1; border-right: 0; border-bottom: 1px solid var(--line); } html[data-preview="bottom"] .reader-pane { grid-column: 2; grid-row: 2; } @media (max-width: 1080px) { .appbar { grid-template-columns: minmax(150px, min(22vw, var(--folder-pane-width))) minmax(220px,1fr) auto; } .mail-shell { grid-template-columns: minmax(170px, min(24vw, var(--folder-pane-width))) minmax(270px, min(39vw, var(--message-pane-width))) minmax(320px,1fr); } .account-summary { display: none; } } @media (max-width: 820px) { .mobile-only { display: inline-grid; } .appbar { grid-template-columns: auto minmax(0,1fr) auto; } .app-brand strong { display: none; } .mail-shell { display: block; position: relative; } .folder-pane { position: absolute; z-index: 20; top: 0; bottom: 0; left: 0; width: 250px; transform: translateX(-100%); transition: transform .15s ease; box-shadow: 12px 0 28px var(--shadow); } .folder-pane.open { transform: translateX(0); } .message-pane { height: 100%; border-right: 0; } .reader-pane { display: none; position: absolute; z-index: 15; inset: 0; } .reader-pane.mobile-open { display: block; } html[data-preview="off"] .reader-pane.mobile-open { display: block; } .message-header { padding: 16px; } .thread-section, .attachment-list { padding-left: 16px; padding-right: 16px; } .settings-layout { grid-template-columns: 120px minmax(0,1fr); } .sieve-layout { grid-template-columns: 1fr; } } @media (max-width: 560px) { .appbar { gap: 5px; padding: 0 6px; } .search-field kbd { display: none; } .appbar-actions .icon-button:first-child { display: none; } .dialog { width: calc(100vw - 12px); max-width: none; } .compose-dialog { width: calc(100vw - 12px); } .compose-card { height: calc(100dvh - 12px); } .dialog-card { min-width: 0; } .settings-dialog { width: calc(100vw - 12px); } .settings-layout { grid-template-columns: 1fr; } .settings-nav { flex-direction: row; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; border-right: 0; border-bottom: 1px solid var(--line); } .settings-tab { flex:0 0 auto; text-align: center; white-space:nowrap; } .settings-grid { grid-template-columns: 1fr; } .reader-toolbar .button span { display: none; } .reader-toolbar .move-control { display: none; } } @media (max-width:760px){ .identity-dialog,.sieve-rule-dialog{width:calc(100vw - 12px);max-width:none} .identity-card,.sieve-rule-card{height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)} .identity-signature-grid,.identity-fields-grid,.identity-options-grid,.identity-toggle-grid{grid-template-columns:1fr} .identity-field-wide{grid-column:auto} .sieve-rule-dialog-body{padding:7px} } @media (max-width:560px){ .compose-dialog.compose-fullscreen{width:100vw;height:100dvh;max-width:none;max-height:none} .compose-dialog.compose-fullscreen .compose-card{height:100dvh} } @media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }