:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f0f2f5;--border: #e3e6eb;--text: #1d1f23;--muted: #6b7280;--accent: #2f6fed;--accent-text: #ffffff;--accent-soft: #e6eefe;--selected: #dfe8fd;--danger: #c93a3a;--success: #1f8a4c;--star: #e8a317;--unread: #e8730c;--unread-bg: #fff3e6;--unread-border: #f6b26b;--shadow: 0 10px 30px rgba(15, 23, 42, .18);--radius: 10px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #141518;--surface: #1c1d21;--surface-2: #25272c;--border: #2f3137;--text: #e7e8ea;--muted: #9a9ea6;--accent: #6b9bff;--accent-text: #0d1424;--accent-soft: #233150;--selected: #263555;--danger: #f07171;--success: #5cc98a;--star: #f2b84b;--unread: #ff9b45;--unread-bg: #2f2115;--unread-border: #8f5520;--shadow: 0 10px 30px rgba(0, 0, 0, .5);color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--accent)}.muted{color:var(--muted)}.error{color:var(--danger)}.success{color:var(--success)}.small{font-size:12.5px}.grow{flex:1;min-width:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}code{font:12.5px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);padding:1px 5px;border-radius:4px}kbd{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;padding:1px 5px;border:1px solid var(--border);border-radius:4px;background:var(--surface)}.primary{background:var(--accent);color:var(--accent-text);border:0;border-radius:8px;padding:9px 16px;font-weight:600}.primary:hover:not(:disabled){filter:brightness(1.08)}.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-weight:500}.secondary:hover:not(:disabled){border-color:var(--muted)}.link-button{background:none;border:0;padding:0;color:var(--accent)}.link-button.danger{color:var(--danger)}.link-button.left{align-self:flex-start;font-size:13px}.link-button:hover{text-decoration:underline}.icon-button{display:inline-grid;place-items:center;width:34px;height:34px;flex:none;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer}.icon-button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon{flex:none}.progress{height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:progress 1s linear infinite}@keyframes progress{0%{background-position:-40% 0}to{background-position:140% 0}}.boot{padding-top:40vh;width:200px;margin:0 auto}.login{min-height:100%;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom))}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:14px}.login-brand{display:flex;align-items:center;gap:10px;color:var(--accent)}.login-brand h1{margin:0;font-size:22px;color:var(--text)}.login-sub{margin:-6px 0 4px;color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:5px;font-weight:500}.login-card input:not([type=checkbox]),.settings-form input:not([type=checkbox]),.settings-form select{padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--bg);font-weight:400}.login-card input:focus,.settings-form input:focus,.settings-form select:focus{outline:2px solid var(--accent);outline-offset:-1px}.login-note{margin:-6px 0 0;font-size:12.5px;color:var(--muted);background:var(--accent-soft);padding:8px 10px;border-radius:8px}.login-fine{margin:0;font-size:12px;color:var(--muted);text-align:center}.login-fine.left{text-align:left;margin-top:-6px}.invite-address{font-weight:600;font-size:16px;padding:10px 12px;background:var(--accent-soft);border-radius:8px;overflow-wrap:anywhere}.optional{color:var(--muted);font-weight:400}.login-card .link-button{align-self:flex-start;font-size:13px}.server-settings{display:flex;flex-direction:column;gap:10px}.server-settings fieldset{display:grid;grid-template-columns:1fr 80px auto;gap:8px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:8px 10px 10px;margin:0}.server-settings legend{font-size:12px;color:var(--muted);padding:0 4px}.login-card .checkbox,.settings-form .checkbox{flex-direction:row;align-items:center;gap:6px;font-weight:400}.app{--page-pad: 24px;--card-gap: 16px;--bar-space: 84px;height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}.app.reading{overflow:hidden}.app:before{content:"";position:fixed;top:0;left:0;right:0;z-index:11;height:env(safe-area-inset-top);background:var(--bg)}.topbar{position:sticky;top:12px;z-index:10;margin:12px var(--page-pad) 0;max-width:1600px}@media(min-width:1648px){.topbar{margin-inline:auto}}.topbar-inner{display:grid;align-items:center;gap:8px 12px;padding:8px 8px 8px 16px;grid-template-columns:auto minmax(0,1fr) auto minmax(140px,220px) auto;grid-template-areas:"mailbox tabs filters search actions";background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 28px #0f172a1a}.mailbox-address,.mailbox-switcher{grid-area:mailbox;min-width:0;max-width:260px}.mailbox-address{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mailbox-switcher select{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:600}.folder-tabs{grid-area:tabs;display:flex;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none}.folder-tabs::-webkit-scrollbar{display:none}.folder-tab{display:inline-flex;align-items:center;gap:6px;flex:none;padding:6px 9px;border:0;border-radius:999px;background:none;color:var(--muted);font-weight:500;white-space:nowrap}.folder-tab:hover{background:var(--surface-2);color:var(--text)}.folder-tab.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.badge.quiet{background:var(--surface-2);color:var(--muted)}.folder-tab.active .badge.quiet{background:var(--surface);color:var(--accent)}.badge{font-size:11px;font-weight:700;min-width:18px;padding:0 5px;line-height:18px;text-align:center;border-radius:999px;background:var(--accent);color:var(--accent-text)}.filters{grid-area:filters;display:flex;gap:2px;padding:3px;background:var(--surface-2);border-radius:10px}.filter{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap}.filter:hover{color:var(--text)}.filter.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0f172a1f}.filter.unread.active{color:var(--unread)}.filter-dot{width:7px;height:7px;border-radius:50%;background:var(--unread)}.filter .icon{color:var(--star)}.search{grid-area:search;display:flex;align-items:center;gap:8px;padding:0 10px;min-width:0;background:var(--surface-2);border-radius:10px;color:var(--muted)}.search:focus-within{outline:2px solid var(--accent)}.search input{flex:1;min-width:0;border:0;background:none;padding:7px 0;outline:none;color:var(--text)}.topbar-actions{grid-area:actions;display:flex;align-items:center;gap:2px}.compose-button{display:flex;align-items:center;gap:6px;margin-left:6px;padding:8px 14px;border-radius:10px}.spinning .icon{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pull-indicator{display:grid;place-items:end center;overflow:hidden;padding-bottom:4px}.pull-spinner{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--surface);color:var(--muted);box-shadow:0 2px 8px #0f172a26}.pull-spinner.ready{color:var(--accent)}.pull-indicator.refreshing .pull-spinner .icon{animation:spin .8s linear infinite}.cards-page{max-width:calc(1600px + 2 * var(--page-pad));margin:0 auto;padding:var(--card-gap) var(--page-pad) calc(32px + env(safe-area-inset-bottom))}.cards-heading{display:flex;align-items:baseline;gap:10px;padding:0 4px 12px}.cards-heading h2{margin:0;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-message{padding:48px 16px;text-align:center;margin:0}.cards{--cols: 4;list-style:none;margin:0;padding:0;display:grid;gap:var(--card-gap);grid-template-columns:repeat(var(--cols),minmax(0,1fr));grid-auto-rows:max(200px,calc((100dvh - var(--bar-space) - 3 * var(--card-gap) - 32px) / 3))}.card{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden;cursor:pointer;padding:14px 16px 6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;transition:box-shadow .15s,transform .15s,border-color .15s}.card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a17}.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.card-head{display:flex;align-items:center;gap:10px;min-width:0}.card .avatar{width:32px;height:32px;font-size:12px}.card-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.card-from{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.card-date{font-size:12px;color:var(--muted)}.unread-dot{width:10px;height:10px;border-radius:50%;background:var(--unread);flex:none}.card-subject{margin:0;font-size:15px;line-height:1.3;font-weight:550;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.card.unread{background:var(--unread-bg);border-color:var(--unread-border);box-shadow:inset 4px 0 0 var(--unread)}.card.unread:hover{box-shadow:inset 4px 0 0 var(--unread),0 10px 24px #e8730c24}.card.unread .avatar{background:var(--unread);color:#fff}.card.unread .card-preview{color:var(--text);opacity:.75}.card.unread .card-from{font-weight:650}.card.unread .card-subject{font-weight:700}.card.checked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.card.unread.checked{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--unread),0 0 0 2px var(--accent)}.check-badge{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--accent);color:var(--accent-text)}.selection-bar{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:12;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 16px;max-width:calc(100% - 32px);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.selection-count{font-weight:600;margin-right:6px;white-space:nowrap}.selection-bar .secondary{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;white-space:nowrap}.secondary.danger{color:var(--danger)}.secondary.danger:hover:not(:disabled){border-color:var(--danger)}.card-preview{flex:1;min-height:0;margin:0;overflow:hidden;overflow-wrap:anywhere;white-space:pre-line;color:var(--muted);font-size:13px;line-height:1.5;-webkit-mask-image:linear-gradient(to bottom,#000 65%,transparent);mask-image:linear-gradient(to bottom,#000 65%,transparent)}.card-preview p{margin:0 0 6px}.card-foot{display:flex;align-items:center;gap:2px;margin:0 -8px}.card-reply{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;margin-right:6px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:12.5px;font-weight:500}.card-reply:hover{background:var(--surface-2);color:var(--accent)}.card.unread .card-reply:hover{background:color-mix(in srgb,var(--unread) 14%,transparent);color:var(--unread)}.card-foot .icon-button{width:30px;height:30px}.card.draft{border-style:dashed}.card.draft.checked{border-style:solid}.card.draft .avatar{background:var(--surface-2);color:var(--muted)}.draft-label{font-size:12px;font-weight:600;color:var(--danger);padding-left:8px}.card-attachment{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.card-actions{display:flex;opacity:0;transition:opacity .15s}.card:hover .card-actions,.card:focus-within .card-actions{opacity:1}@media(hover:none){.card-actions{opacity:1}.card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}.app:has(.selection-bar) .fab{display:none}.icon-button.star{color:var(--muted)}.icon-button.star.on{color:var(--star)}.cards-more{min-height:40px;padding-top:16px}.fab{display:none;position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:5;width:56px;height:56px;border-radius:16px;place-items:center;box-shadow:var(--shadow);padding:0}.reader{position:fixed;inset:0;z-index:15;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));background:#0a0c1059;animation:fade-in .15s}.reader .message-view{width:min(920px,100%);height:100%;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);animation:rise .18s ease-out}.compose-backdrop{animation:fade-in .15s}.compose{animation:rise .18s ease-out}.compose-backdrop.closing{animation:fade-out .18s ease-in forwards;pointer-events:none}.compose-backdrop.closing .compose{animation:sink .18s ease-in forwards}.reader.closing{animation:fade-out .18s ease-in forwards;pointer-events:none}.reader.closing .message-view{animation:sink .18s ease-in forwards}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes sink{to{opacity:0;transform:translateY(8px) scale(.99)}}@keyframes rise{0%{opacity:0;transform:translateY(12px) scale(.99)}}@media(prefers-reduced-motion:reduce){.reader,.reader .message-view,.compose-backdrop,.compose,.card{animation:none;transition:none}.reader.closing,.reader.closing .message-view,.compose-backdrop.closing,.compose-backdrop.closing .compose{animation:fade-out .1s forwards}.compose.inline{animation:none}.compose.inline.closing{animation:fade-out .1s forwards}.card:hover{transform:none}}.message-view{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--surface)}.view-toolbar{display:flex;align-items:center;gap:2px;padding:8px 12px;border-bottom:1px solid var(--border)}.toolbar-gap{flex:1}.view-scroll{flex:1;overflow-y:auto;padding:20px 28px calc(40px + env(safe-area-inset-bottom))}.view-subject{font-size:21px;margin:0 0 16px;font-weight:650;overflow-wrap:anywhere}.view-meta{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.avatar{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:650;font-size:14px}.meta-text{flex:1;min-width:0}.meta-from{overflow-wrap:anywhere}.meta-line{font-size:13px;overflow-wrap:anywhere}.meta-date{font-size:12.5px;white-space:nowrap}.remote-banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px;background:var(--surface-2);border-radius:8px;padding:8px 12px;margin-bottom:12px;color:var(--muted)}.html-body{width:100%;border:0;border-radius:8px;background:#fff;display:block}.text-body{white-space:pre-wrap;overflow-wrap:anywhere}.attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.attachment{background:none;font:inherit;text-align:left;display:flex;align-items:center;gap:8px;max-width:280px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--text);font-size:13px}.attachment:hover{background:var(--surface-2)}.attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.compose-backdrop{position:fixed;inset:0;background:#0a0c1059;z-index:20;display:flex;align-items:flex-end;justify-content:flex-end;padding:24px}.compose{width:560px;max-width:100%;height:min(640px,100%);display:flex;flex-direction:column;background:var(--surface);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.compose-header{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 16px;background:var(--surface-2)}.compose-header h2{font-size:14px;margin:0}.compose-field{display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--border)}.compose-field label,.compose-label{color:var(--muted);width:52px;flex:none}.compose-from{padding:10px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-field input{flex:1;min-width:0;border:0;background:none;padding:10px 0;outline:none}.compose-field .link-button{font-size:13px}.compose-body{flex:1;border:0;resize:none;padding:14px 16px;outline:none;background:none;line-height:1.55}.compose-files{list-style:none;margin:0;padding:6px 12px;display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--border)}.compose-files li{display:flex;align-items:center;gap:8px;font-size:13px}.compose-files .icon-button{width:26px;height:26px}.compose-error{margin:0;padding:6px 16px;font-size:13px}.compose-footer{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.compose-hint{font-size:12px;margin-left:auto}.compose-status{flex:1;margin-left:4px;font-size:12px}.compose-quoted{display:flex;gap:8px;align-items:baseline;margin:0;padding:6px 16px;font-size:12.5px}.compose.inline{flex:none;width:auto;max-width:none;height:min(340px,55%);border-radius:0;border-top:1px solid var(--border);box-shadow:0 -10px 24px #0f172a14;animation:reply-in .18s ease-out}.compose.inline .compose-body{min-height:80px}.compose.inline.closing{animation:reply-out .18s ease-in forwards;pointer-events:none}@keyframes reply-in{0%{opacity:0;transform:translateY(24px)}}@keyframes reply-out{to{opacity:0;transform:translateY(24px)}}.settings{height:100%;overflow-y:auto;background:var(--bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.settings-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;max-width:720px;margin:0 auto;padding:12px 16px;background:var(--bg)}.settings-header h1{margin:0;font-size:20px}.settings-body{max-width:720px;margin:0 auto;padding:0 16px 40px;display:flex;flex-direction:column;gap:16px}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:12px}.settings-card h2{margin:0;font-size:16px}.settings-card h3{margin:8px 0 0;font-size:14px}.settings-card>p{margin:0}.settings-form{display:flex;flex-direction:column;gap:12px;max-width:440px}.settings-form label{display:flex;flex-direction:column;gap:5px;font-weight:500}.settings-form input[readonly]{color:var(--muted)}.settings-form p{margin:0}.settings-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:10px}.settings-list li{display:flex;align-items:center;gap:12px;padding:10px 14px}.settings-list li+li{border-top:1px solid var(--border)}.settings-list .icon{color:var(--muted)}.pill{font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);vertical-align:1px}.pill.muted{background:var(--surface-2);color:var(--muted)}.button-row{display:flex;gap:8px}.address-input{display:flex;align-items:center;gap:6px;font-weight:400}.address-input input{flex:1;min-width:0}.address-input .domain{color:var(--muted)}.copy-field{display:flex;gap:8px}.copy-field input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);font:12.5px ui-monospace,SFMono-Regular,Menlo,monospace}.invite-created{background:var(--accent-soft);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.invite-created p{margin:0}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:30;background:var(--text);color:var(--bg);padding:10px 18px;border-radius:10px;box-shadow:var(--shadow);max-width:calc(100% - 32px)}@media(max-width:1180px){.app{--bar-space: 128px}.cards{--cols: 3}.topbar-inner{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"mailbox search actions" "tabs tabs filters"}.search{max-width:360px;justify-self:end;width:100%}}@media(max-width:860px){.cards{--cols: 2}}@media(max-width:600px){.app{--page-pad: 12px;--card-gap: 12px}.topbar{top:8px;margin-top:8px}.topbar-inner{padding:8px 6px 6px 12px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mailbox actions" "search filters" "tabs tabs"}.search{max-width:none}.compose-button{display:none}.fab{display:grid}.cards{--cols: 1;grid-auto-rows:190px}.reader{padding:0}.reader .message-view{border-radius:0;padding-top:env(safe-area-inset-top)}.view-scroll{padding:16px}.compose-backdrop{padding:0}.compose{height:100%;border-radius:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.compose-hint{display:none}.compose.inline{height:min(320px,55%);padding:0 0 env(safe-area-inset-bottom)}input,select,textarea{font-size:16px!important}.icon-button{width:40px;height:40px}.view-meta{flex-wrap:wrap}}
