.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-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-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%; } } .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; } .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); } .toast-progress { grid-template-columns: 20px minmax(0, 1fr) auto 24px; } .toast-progress-content { min-width: 0; display: grid; gap: 6px; } .toast-progress-track { display: block; width: 100%; height: 4px; overflow: hidden; border-radius: 999px; background: var(--panel-3); } .toast-progress-bar { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--accent); transition: width .12s linear; } .toast-progress-value { min-width: 34px; color: var(--muted); font: 10px var(--font-mono); text-align: right; } @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; } } .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 } } .response-template-heading { margin-top: 18px; } .response-template-list { display: grid; gap: 6px; } .response-template-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--panel-2); } .response-template-meta { min-width: 0; display: grid; gap: 2px; } .response-template-meta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .response-template-meta span { font-size: 10px; } .diagnostic-imap-actions { justify-content: flex-end; margin-top: 10px; }