:root{--bg: #ffffff;--bg-soft: #f6f8fa;--border: #d8dee4;--text: #1f2328;--muted: #656d76;--accent: #0b63ce;--accent-soft: #e7f0fb;--danger: #c62828;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}.center{display:grid;place-items:center;min-height:100vh}.muted{color:var(--muted)}.pad{padding:16px}.error{color:var(--danger);padding:0 12px}button.link{background:none;border:none;color:var(--accent);padding:0}.login{display:grid;gap:14px;width:min(360px,92vw);padding:28px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft)}.login h1{margin:0 0 4px;font-size:22px}.login label{display:grid;gap:6px}.login input{padding:9px 10px;border:1px solid var(--border);border-radius:6px;font:inherit}.login button{padding:10px;border:none;border-radius:6px;background:var(--accent);color:#fff}.login button:disabled{opacity:.6}.layout{display:grid;grid-template-columns:200px minmax(280px,380px) 1fr;grid-template-rows:48px 1fr;height:100vh}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:0 16px;border-bottom:1px solid var(--border)}.topbar .link{margin-left:auto}.folders{overflow-y:auto;border-right:1px solid var(--border);background:var(--bg-soft);padding:8px 0}.folder{display:flex;justify-content:space-between;width:100%;padding:8px 16px;border:none;background:none;text-align:left}.folder.active{background:var(--accent-soft);font-weight:600}.badge{min-width:22px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:12px;text-align:center}.list{overflow-y:auto;border-right:1px solid var(--border)}.list-header{position:sticky;top:0;display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg);color:var(--muted)}.pager button{border:1px solid var(--border);background:var(--bg);border-radius:4px}.list ul{list-style:none;margin:0;padding:0}.item{padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer}.item:hover{background:var(--bg-soft)}.item.active{background:var(--accent-soft)}.item.unread .from,.item.unread .subject{font-weight:600}.row{display:flex;justify-content:space-between;gap:8px}.from,.subject{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.date{flex:none;color:var(--muted);font-size:12px}.star{border:none;background:none;color:#d4a200;padding:0 2px}.reader{overflow-y:auto}.msg-header{padding:16px;border-bottom:1px solid var(--border);display:grid;gap:2px}.msg-header h2{margin:0 0 8px;font-size:18px}.actions{margin-top:6px}.notice{margin:12px 16px 0;padding:8px 12px;border-radius:6px;background:#fff8e1}.attachments{margin:12px 16px 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px}.message-frame{display:block;width:100%;min-height:200px;border:none}@media(max-width:800px){.layout{grid-template-columns:1fr;grid-template-rows:48px auto 40vh 1fr;height:auto}.folders{display:flex;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.folder{width:auto;white-space:nowrap}}.small{font-size:12px}.ok{color:#1a7f37}.spacer{flex:1}.topbar .link{margin-left:0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tabs button{flex:1;padding:8px 4px;border:none;border-bottom:2px solid transparent;background:none;color:var(--muted)}.tabs button.active{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.login{width:min(400px,92vw);grid-template-columns:minmax(0,1fr)}.login form{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.login input{width:100%;min-width:0}.tabs button{white-space:nowrap}.login small{min-height:1em}.address{display:flex;align-items:center;gap:6px}.address input{flex:1;min-width:0}.domain{color:var(--muted);white-space:nowrap}.notice-inline{margin:0;padding:8px 10px;border-radius:6px;background:#fff8e1}.overlay{position:fixed;inset:0;display:grid;place-items:center;background:#00000059;z-index:10}.dialog h2{margin:0;font-size:18px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.login button.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}
