:root{--bg: #0b0d10;--surface: #14181d;--surface-2: #1c2128;--border: #262c34;--text: #e6e9ee;--muted: #8a93a0;--accent: #a69162;--accent-dim: #6f6240;--open: #4ea1ff;--click: #57d08a;--danger: #e5564b;--radius: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overscroll-behavior-y:none}button{font:inherit;color:inherit;cursor:pointer}input,textarea,select{font:inherit}.app{display:flex;flex-direction:column;height:100%}.appbar{position:sticky;top:0;z-index:20;padding:calc(var(--safe-top) + 10px) 14px 10px;background:#0b0d10eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.appbar h1{font-size:17px;font-weight:650;margin:0;letter-spacing:.2px}.appbar .spacer{flex:1}.appbar select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:6px 8px;max-width:46vw}.iconbtn{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;width:38px;height:38px;display:grid;place-items:center;font-size:17px}.tabs{display:flex;gap:6px;padding:8px 12px;overflow-x:auto;border-bottom:1px solid var(--border)}.tabs button{background:transparent;border:1px solid var(--border);color:var(--muted);padding:6px 13px;border-radius:999px;white-space:nowrap;font-size:13px}.tabs button.active{background:var(--accent);border-color:var(--accent);color:#0b0d10;font-weight:600}.list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.row{display:flex;gap:11px;padding:13px 14px;border-bottom:1px solid var(--border);align-items:flex-start}.row:active{background:var(--surface)}.avatar{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:650;font-size:15px;color:#0b0d10}.row .body{flex:1;min-width:0}.row .line1{display:flex;align-items:baseline;gap:8px}.row .from{font-weight:600;font-size:14.5px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.unread .from{color:#fff}.row .time{color:var(--muted);font-size:12px;flex:none}.row .subj{font-size:14px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.unread .subj{color:var(--text)}.row:not(.unread) .from,.row:not(.unread) .subj{color:var(--muted)}.row .acct{font-size:11px;color:var(--accent-dim);margin-top:2px}.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none;margin-top:6px}.dot.hidden{visibility:hidden}.badges{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 7px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.badge.open{color:var(--open);border-color:color-mix(in srgb,var(--open) 40%,transparent)}.badge.click{color:var(--click);border-color:color-mix(in srgb,var(--click) 40%,transparent)}.badge.none{opacity:.6}.msgview{flex:1;overflow-y:auto}.msg-head{padding:14px;border-bottom:1px solid var(--border)}.msg-head .subject{font-size:19px;font-weight:650;margin:0 0 10px}.msg-head .meta{font-size:13px;color:var(--muted)}.msg-head .meta b{color:var(--text);font-weight:600}.msg-body{padding:14px}.msg-body iframe{width:100%;border:0;background:#fff;border-radius:8px}.events{padding:12px 14px;border-top:1px solid var(--border)}.events h3{font-size:13px;color:var(--muted);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.event{display:flex;gap:8px;font-size:13px;padding:5px 0}.event .when{color:var(--muted);flex:none}.compose{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:50;display:flex;flex-direction:column}.compose .fields{padding:8px 14px}.field{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding:10px 0}.field label{color:var(--muted);font-size:13px;width:56px;flex:none}.field input,.field select{flex:1;background:transparent;border:0;color:var(--text);outline:none;min-width:0}.field select{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:6px}.editor{flex:1;padding:14px;outline:none;overflow-y:auto;font-size:15px;line-height:1.5;-webkit-user-select:text;user-select:text}.editor:empty:before{content:attr(data-ph);color:var(--muted)}.toolbar{display:flex;align-items:center;gap:10px;padding:10px 14px calc(var(--safe-bottom) + 10px);border-top:1px solid var(--border);background:var(--surface)}.toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:7px 11px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.toggle.on{color:#0b0d10;background:var(--accent);border-color:var(--accent);font-weight:600}.toolbar .spacer{flex:1}.btn{background:var(--accent);color:#0b0d10;border:0;border-radius:10px;padding:9px 16px;font-weight:650}.btn.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn:disabled{opacity:.5}.fab{position:fixed;right:18px;bottom:calc(var(--safe-bottom) + 18px);z-index:30;width:56px;height:56px;border-radius:50%;border:0;background:var(--accent);color:#0b0d10;font-size:26px;box-shadow:0 6px 20px #00000073;display:grid;place-items:center}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:24px}.login .logo{font-size:28px;font-weight:700;letter-spacing:.5px}.login .logo span{color:var(--accent)}.login input{width:100%;max-width:320px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:13px;border-radius:12px;outline:none}.login .btn{width:100%;max-width:320px;padding:13px}.center{display:grid;place-items:center;height:100%;color:var(--muted)}.err{color:var(--danger);font-size:13px}.back{background:none;border:0;color:var(--accent);font-size:15px;padding:0}.attach{font-size:12px;color:var(--muted);margin-top:8px}.spinner{width:22px;height:22px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
