*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif;font-size:14px;line-height:1.5;color:#201f1e;background:#f3f2f1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--sidebar-w: 228px;--sidebar-bg: #1F1F1F;--sidebar-hover: rgba(255,255,255,.07);--sidebar-active-bg: #0078D4;--sidebar-active-text: #FFFFFF;--sidebar-text: #C8C6C4;--sidebar-border: rgba(255,255,255,.08);--accent: #0078D4;--accent-hover: #106EBE;--accent-dark: #005A9E;--accent-light: #EBF3FB;--accent-light-hover: #DEECF9;--success: #107C10;--success-light: #DFF6DD;--danger: #A4262C;--danger-light: #FDE7E9;--warning: #8A8000;--warning-light: #FFF4CE;--info: #0078D4;--info-light: #EBF3FB;--purple: #5C2D91;--purple-light: #F4EEF9;--teal: #008575;--teal-light: #D0F0ED;--card: #FFFFFF;--bg: #F3F2F1;--bg-subtle: #FAF9F8;--border: #EDEBE9;--border-strong: #C8C6C4;--text: #201F1E;--text-2: #605E5C;--text-3: #8A8886;--text-inverse: #FFFFFF;--radius: 4px;--radius-sm: 2px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1.6px 3.6px rgba(0,0,0,.132), 0 .3px .9px rgba(0,0,0,.108);--shadow: 0 3.2px 7.2px rgba(0,0,0,.132), 0 .6px 1.8px rgba(0,0,0,.108);--shadow-md: 0 6.4px 14.4px rgba(0,0,0,.132), 0 1.2px 3.6px rgba(0,0,0,.108);--shadow-lg: 0 25.6px 57.6px rgba(0,0,0,.22), 0 4.8px 14.4px rgba(0,0,0,.18)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;outline:none}a{text-decoration:none;color:var(--accent)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c8c6c4;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#8a8886}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes slideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.anim-fadeUp{animation:fadeUp .18s ease forwards}.anim-slideIn{animation:slideIn .18s ease forwards}.anim-spin{animation:spin 1s linear infinite}.anim-pulse{animation:pulse 1.5s ease-in-out infinite}.skeleton{background:linear-gradient(90deg,#f3f2f1 25%,#edebe9,#f3f2f1 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border)}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:6px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:background .1s;display:inline-flex;align-items:center;gap:6px;height:32px}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-2);border:1px solid var(--border-strong);border-radius:var(--radius);padding:6px 14px;font-size:13px;font-weight:400;cursor:pointer;transition:background .1s,border-color .1s;display:inline-flex;align-items:center;gap:6px;height:32px}.btn-ghost:hover:not(:disabled){background:var(--bg);border-color:var(--border-strong)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-cmd{background:transparent;border:none;border-radius:var(--radius);padding:5px 8px;font-size:12px;font-weight:400;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px;height:28px;transition:background .1s;white-space:nowrap}.btn-cmd:hover{background:var(--bg)}.btn-cmd:active{background:var(--border)}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:2px;padding:1px 8px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.input-base{border:1px solid var(--border-strong);border-radius:var(--radius);padding:5px 10px;font-size:13px;background:var(--card);color:var(--text);transition:border-color .1s,box-shadow .1s;width:100%;height:32px}.input-base:hover{border-color:#8a8886}.input-base:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.input-base::placeholder{color:var(--text-3)}.email-row{padding:0;cursor:pointer;border-bottom:1px solid var(--border);transition:background .08s;position:relative;border-left:3px solid transparent}.email-row:hover{background:var(--bg-subtle)}.email-row.active{background:var(--accent-light);border-left-color:var(--accent)}.email-row.active:hover{background:var(--accent-light-hover)}.email-row.unread .email-row-sender{font-weight:700;color:var(--text)}.email-row.unread .email-row-subject{font-weight:600;color:var(--text)}.divider{height:1px;background:var(--border);margin:0}.command-bar{display:flex;align-items:center;gap:1px;padding:4px 8px;border-bottom:1px solid var(--border);background:var(--card);flex-shrink:0}.command-bar-separator{width:1px;height:20px;background:var(--border);margin:0 4px;flex-shrink:0}.ms-table{width:100%;border-collapse:collapse;font-size:13px}.ms-table th{padding:8px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);background:var(--bg-subtle);white-space:nowrap}.ms-table td{padding:10px 16px;color:var(--text-2);border-bottom:1px solid var(--border)}.ms-table tr:last-child td{border-bottom:none}.ms-table tr:hover td{background:var(--bg-subtle)}.search-box{position:relative;display:flex;align-items:center}.search-box-icon{position:absolute;left:8px;color:var(--text-3);pointer-events:none;display:flex;align-items:center}.search-box input{padding-left:30px;background:var(--bg);border:1px solid transparent;border-radius:var(--radius);height:32px;font-size:13px;color:var(--text);width:100%;transition:background .1s,border-color .1s}.search-box input:hover{background:var(--border)}.search-box input:focus{background:var(--card);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.search-box input::placeholder{color:var(--text-3)}
