:root{--bg:#f5f7fb;--paper:#fff;--ink:#1e2c43;--muted:#7d879a;--line:#e8ecf3;--blue:#3558de;--blue-light:#eef2ff;--danger:#bd4052;--shadow:0 20px 80px #1f325526}*{box-sizing:border-box}body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit;border-radius:9px;transition:background .15s}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}input,textarea,select{width:100%;border:1px solid #dce2ed;border-radius:8px;padding:10px 12px;color:var(--ink);background:#fff;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3558de12}label{display:block;font-size:13px}label>input,label>select{margin-top:6px}a{color:var(--blue);text-decoration:none}.hidden{display:none!important}.muted{color:var(--muted);font-size:12px}.error,.danger{color:var(--danger)}.primary,.compose-button{background:var(--blue);color:#fff;padding:11px 20px;font-weight:600}.primary:hover,.compose-button:hover{background:#2846be}.secondary{background:var(--blue-light);color:var(--blue);padding:10px 17px;font-weight:600}.quiet{padding:8px 10px;color:var(--muted)}.quiet:hover,.icon-button:hover{background:#e9edf5;color:var(--ink)}.quiet.danger{color:var(--danger)}.icon-button{font-size:24px;min-width:38px;height:38px}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--blue);color:white;border-radius:12px;font-size:25px;font-weight:750;box-shadow:0 4px 12px #3558de25}.app{display:flex;height:100dvh;min-height:400px}.sidebar{width:224px;flex-shrink:0;padding:30px 18px 18px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;margin:0 6px 34px;font-size:17px;font-weight:700;color:var(--ink);line-height:1.2}.brand small{display:block;font-size:9px;letter-spacing:3px;color:var(--muted);margin-top:5px}.compose-button{width:100%;text-align:center;margin-bottom:25px;padding:13px}.nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;margin:3px 0;color:#606e84}.nav-item.active{background:#e7edff;color:var(--blue);font-weight:600}.nav-item:hover{background:#ecf0f8}.nav-item span:last-child{font-size:11px}.badge{background:#d5dfff;padding:1px 6px;border-radius:6px}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:stretch}.sidebar-bottom button{text-align:left}.storage-mini{font-size:11px;color:var(--muted);padding:14px 10px;border-top:1px solid var(--line);margin-bottom:8px;line-height:1.8}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:29px 32px 24px;gap:18px}.topbar h1{font-size:24px;letter-spacing:-.6px;margin:0 0 3px}.topbar p{font-size:12px;color:var(--muted);margin:0}.header-actions{display:flex;align-items:center;gap:10px}.search{display:flex;align-items:center;gap:9px;padding:0 12px;background:white;border:1px solid var(--line);border-radius:10px;width:240px}.search span{font-size:22px;color:var(--muted)}.search input{border:0;box-shadow:none;padding:10px 0;margin:0;background:none}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:360px minmax(0,1fr);background:var(--paper);border:1px solid var(--line);border-right:0;border-bottom:0;border-radius:16px 0 0 0;overflow:hidden;margin-left:16px}.list-pane{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.list-tools{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.message-list{overflow-y:auto;flex:1}.message-row{display:block;width:100%;text-align:left;border-radius:0;padding:18px 20px;border-bottom:1px solid #f0f2f7;border-left:3px solid transparent}.message-row:hover{background:#f9faff}.message-row.selected{background:#f1f4ff;border-left-color:var(--blue)}.row-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}.row-from{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#516077}.row-date{font-size:10px;color:#94a0b2;flex-shrink:0}.row-subject{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;margin-bottom:4px}.unread .row-subject,.unread .row-from{font-weight:650;color:var(--ink)}.unread .row-subject:before{content:"";display:inline-block;width:6px;height:6px;background:var(--blue);border-radius:50%;margin-right:7px;vertical-align:middle}.row-snippet{font-size:12px;color:#94a0b2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{padding:10px 12px;display:flex;justify-content:space-between;align-items:center;font-size:11px;border-top:1px solid var(--line)}.pagination button{font-size:11px}.detail-pane{min-width:0;overflow-y:auto;padding:27px 34px;background:white}.empty-detail{height:100%;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center}.empty-icon{font-size:38px;background:#f3f5fa;border-radius:24px;width:90px;height:90px;display:grid;place-items:center;color:#a2afc7;margin-bottom:12px}.empty-detail h2{font-size:18px;font-weight:500;color:#66758e;margin:12px 0 0}.empty-detail p{font-size:12px}.detail-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}.detail-actions button{font-size:12px}.message-subject{font-size:24px;line-height:1.4;margin:8px 0 20px;overflow-wrap:anywhere}.message-meta{display:grid;grid-template-columns:65px minmax(0,1fr);gap:7px;font-size:12px;margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.message-meta dt{color:var(--muted)}.message-meta dd{margin:0;color:#58667d}.text-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:14px}.html-body{width:100%;height:650px;border:0;background:white}.body-tools{display:flex;gap:8px;margin-bottom:12px}.body-tools button{font-size:11px}.attachment-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.attachment-chip{display:inline-flex;gap:9px;align-items:center;max-width:100%;padding:9px 12px;background:#f4f6fb;border:1px solid var(--line);border-radius:9px;font-size:12px;overflow-wrap:anywhere}.attachment-chip small{color:var(--muted)}.attachment-chip button{color:var(--muted)}.message-end{margin-top:28px;border-top:1px solid var(--line);padding-top:21px;display:flex;gap:9px}.empty-list{padding:70px 20px;text-align:center;color:var(--muted)}.warning{background:#fff5dc;color:#8d6524;font-size:12px;padding:10px 25px}.login-view{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at top,#e8eeff,#f5f7fb 65%);padding:24px}.login-card{width:380px;max-width:100%;background:white;padding:38px;border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 60px #2c426410}.login-card h1{font-size:23px;margin:21px 0 5px}.login-card>p{color:var(--muted);margin:0 0 26px}.login-card label{margin:16px 0}.login-card .primary{width:100%;margin-top:12px}.login-card .error{font-size:12px;min-height:18px;margin:12px 0 0}.overlay{position:fixed;inset:0;z-index:20;background:#17263c69;backdrop-filter:blur(4px);padding:24px;display:flex;justify-content:center;align-items:center}.compose-card,.settings-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:calc(100dvh - 48px);width:820px;max-width:100%;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line)}.modal-header h2{margin:0;font-size:18px}.modal-header .muted{font-size:11px}.compose-scroll{overflow-y:auto;padding:18px 25px 24px}.sender-box{padding:15px;background:#f7f9fd;border-radius:12px;margin-bottom:13px}.sender-row{display:grid;grid-template-columns:1.3fr 1fr;gap:15px;margin-top:12px}.domain-input{display:flex;align-items:center;border:1px solid #dce2ed;border-radius:8px;background:#fff;margin-top:6px;padding-right:12px}.domain-input input{border:0;margin:0;min-width:50px;box-shadow:none}.domain-input span{font-size:12px;color:var(--muted);white-space:nowrap}.form-line{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:2px 0}.form-line span{flex-shrink:0;width:45px;color:#8c97a9}.form-line input{border:0;box-shadow:none;margin:0;padding:11px 0}.extra-recipients{display:grid;grid-template-columns:1fr 1fr;gap:22px}#compose-body{resize:vertical;min-height:250px;border:0;box-shadow:none;padding:20px 0;line-height:1.8}.file-picker{font-size:12px;color:var(--blue);cursor:pointer;margin-top:15px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.file-picker input{display:none}.file-picker span{color:var(--muted);font-size:11px}.compose-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 25px;border-top:1px solid var(--line);gap:10px}.compose-footer>div{display:flex;align-items:center;gap:12px}.settings-card{width:600px}.settings-scroll{padding:0 25px;overflow-y:auto}.settings-scroll section{padding:23px 0;border-bottom:1px solid var(--line)}.settings-scroll h3{font-size:15px;margin:0 0 8px}.settings-scroll form{display:grid;gap:12px}.settings-scroll .secondary{justify-self:start}.checkbox{display:flex;align-items:center;gap:7px}.checkbox input{width:auto;margin:0}.identity-entry{display:flex;align-items:center;justify-content:space-between;background:#f5f7fc;border-radius:9px;padding:12px;margin:10px 0;font-size:12px}.identity-entry small{display:block;color:var(--muted)}.storage-stat{display:flex;justify-content:space-between;padding:6px 0;font-size:13px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:40;color:white;background:#26364c;box-shadow:var(--shadow);border-radius:10px;padding:12px 20px;max-width:90vw;font-size:13px}.toast.error-toast{background:#a83d4f}.mobile-back{display:none}
@media(min-width:1550px){.workspace{grid-template-columns:420px minmax(0,1fr)}.detail-pane{padding:35px 50px}}@media(max-width:1150px){.sidebar{width:185px;padding:25px 12px 16px}.brand{font-size:15px;gap:8px}.workspace{grid-template-columns:300px minmax(0,1fr);margin-left:8px}.detail-pane{padding:22px}.topbar{padding:22px}.search{width:190px}}@media(max-width:850px){.sidebar{width:155px}.brand{font-size:13px}.brand-icon{width:32px;height:32px;font-size:22px}.workspace{display:block;margin-left:0;border-radius:0}.list-pane{height:100%;border-right:0}.detail-pane{display:none;height:100%}.workspace.reading .list-pane{display:none}.workspace.reading .detail-pane{display:block}.mobile-back{display:inline-block}.topbar{padding:18px;gap:10px}.topbar h1{font-size:20px}.search{width:165px}.header-actions{gap:3px}}@media(max-width:600px){.app{flex-direction:column}.sidebar{width:100%;padding:12px 15px 0;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px}.brand{margin:0;font-size:16px}.brand small{display:none}.compose-button{margin:0;width:auto;padding:9px 14px}.sidebar nav{grid-column:1/-1;display:flex;margin:0 -6px}.nav-item{padding:9px 8px;margin:0;justify-content:center;gap:5px;font-size:12px;border-radius:8px 8px 0 0}.sidebar-bottom{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:5px;margin:0;padding-bottom:8px}.storage-mini{border:0;padding:0;margin:0;font-size:10px;line-height:1.4}.sidebar-bottom button{font-size:10px;padding:5px}.topbar{padding:15px}.topbar p{display:none}.search{width:150px}.workspace{border-top:1px solid var(--line)}.message-row{padding:16px 18px}.detail-pane{padding:20px}.message-subject{font-size:21px}.overlay{padding:0;align-items:stretch}.compose-card,.settings-card{max-height:100dvh;border-radius:0;width:100%;height:100%}.sender-row{grid-template-columns:1fr;gap:10px}.sender-box{padding:12px}.compose-scroll{padding:15px 18px}.modal-header{padding:15px 18px}.compose-footer{padding:13px 15px}.compose-footer .muted{display:none}.extra-recipients{gap:12px}.login-card{padding:30px}#compose-body{min-height:220px}.html-body{height:600px}}

.priority-option{margin:12px 0;color:var(--muted);font-size:13px}
.login-card>.brand-icon{margin-bottom:28px}

/* Loading uses transforms/opacity; no full-screen blur or changing button widths. */
.spinner{display:inline-block;width:16px;height:16px;flex:0 0 16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.is-busy{position:relative;opacity:.8!important;cursor:wait!important}
.is-busy .button-label{visibility:hidden}
.button-spinner{position:absolute;left:calc(50% - 8px);top:calc(50% - 8px);color:var(--blue)}
.primary .button-spinner,.compose-button .button-spinner{color:#fff}
.is-busy.danger .button-spinner{color:var(--danger)}
.list-status,.status-loading,.upload-status,.loading-view{display:flex;align-items:center;gap:8px;color:var(--muted)}
.status-loading{display:inline-flex;vertical-align:middle}
.list-status{font-size:11px;margin-left:auto;margin-right:8px;white-space:nowrap}
.list-status .spinner{width:13px;height:13px;flex-basis:13px}
.loading-view{justify-content:center;padding:16px;font-size:12px}
.empty-detail.loading-view{gap:12px}
.message-list,.detail-pane,.compose-scroll,.settings-scroll{scrollbar-gutter:stable}
.message-skeleton{height:107px;padding:20px;border-bottom:1px solid #f0f2f7}
.skeleton-line{height:12px;width:90%;background:#eef1f7;border-radius:5px;margin-bottom:11px;animation:skeleton-pulse 1.25s ease-in-out infinite alternate}
.skeleton-line.short{width:43%}.skeleton-line.medium{width:72%;height:10px}
@keyframes skeleton-pulse{to{opacity:.45}}
.search{position:relative}
.search.is-searching:after{content:"";position:absolute;right:11px;top:calc(50% - 6px);width:12px;height:12px;border:2px solid var(--muted);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
.search.is-searching input{padding-right:20px}
.compose-scroll{position:relative}
.panel-loading{position:absolute;inset:0;z-index:2;background:#fff;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;color:var(--muted)}
.compose-card.is-loading #compose-form{visibility:hidden}
.upload-status{font-size:12px;margin:14px 0;overflow-wrap:anywhere}
.upload-status .spinner{color:var(--blue)}
.html-frame-wrap{position:relative}.html-frame-wrap .html-body{display:block}.html-frame-wrap .loading-view{position:absolute;inset:0;background:#fff;z-index:1}
.overlay{backdrop-filter:none;animation:overlay-in .12s ease-out}
.compose-card,.settings-card{animation:dialog-in .16s ease-out}
@keyframes overlay-in{from{opacity:0}to{opacity:1}}
@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.message-subject,.message-meta,.message-body{animation:content-in .12s ease-out}
@keyframes content-in{from{opacity:.5}to{opacity:1}}
.toast{animation:toast-in .16s ease-out}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,5px)}to{opacity:1;transform:translate(-50%,0)}}
@media(prefers-reduced-motion:reduce){.spinner,.skeleton-line,.search.is-searching:after,.overlay,.compose-card,.settings-card,.message-subject,.message-meta,.message-body,.toast{animation:none}button{transition:none}}
