:root{--bg: #f7f7f8;--surface: #ffffff;--surface-subtle: #fafafb;--surface-hover: #f3f3f5;--border: #e7e7eb;--border-strong: #d8d8de;--text: #18181b;--text-muted: #5e5e66;--text-subtle: #8b8b95;--accent: #4f46e5;--accent-hover: #4338ca;--accent-muted: #eef2ff;--green: #15803d;--green-muted: #dcfce7;--amber: #b45309;--amber-muted: #fef3c7;--red: #b91c1c;--red-muted: #fee2e2;--blue: #1d4ed8;--blue-muted: #dbeafe;--purple: #6d28d9;--purple-muted: #ede9fe;--gray: #475569;--gray-muted: #f1f5f9;--radius-sm: 4px;--radius: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(15, 15, 23, .04);--shadow: 0 4px 12px rgba(15, 15, 23, .06);--shadow-lg: 0 12px 32px rgba(15, 15, 23, .1);--header-h: 52px;--sidebar-w: 240px;--sidebar-w-collapsed: 64px;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--text);line-height:1.45;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}hr{border:0;border-top:1px solid var(--border);margin:12px 0}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.app-shell{display:grid;grid-template-columns:auto 1fr;height:100vh;overflow:hidden}.app-shell.collapsed{--sidebar-w: var(--sidebar-w-collapsed)}.sidebar{width:var(--sidebar-w);border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;padding:12px 8px;overflow:hidden;transition:width .12s ease}.sidebar .brand{display:flex;align-items:center;gap:8px;padding:6px 8px 12px;font-weight:700;font-size:14px}.sidebar .brand-mark{width:24px;height:24px;border-radius:6px;background:linear-gradient(135deg,var(--accent),#8b5cf6);display:grid;place-items:center;color:#fff}.sidebar .nav-section{margin-top:10px}.sidebar .nav-section .nav-label{font-size:10.5px;font-weight:600;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.06em;padding:4px 10px}.sidebar .nav-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius);font-size:13.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;margin:1px 0}.sidebar .nav-item:hover{background:var(--surface-hover);text-decoration:none}.sidebar .nav-item.active{background:var(--accent-muted);color:var(--accent);font-weight:600}.sidebar .nav-item .nav-icon{display:grid;place-items:center;width:16px;height:16px;flex:none}.sidebar .nav-item .nav-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .nav-item .nav-badge{font-size:11px}.app-shell.collapsed .sidebar .nav-text,.app-shell.collapsed .sidebar .nav-label,.app-shell.collapsed .sidebar .nav-badge{display:none}.app-shell.collapsed .sidebar .nav-item{justify-content:center;padding:8px 0}.sidebar .spacer{flex:1}.sidebar .user-block{border-top:1px solid var(--border);padding:10px 8px 4px;display:flex;flex-direction:column;gap:8px}.main{display:grid;grid-template-rows:var(--header-h) 1fr;overflow:hidden}.topbar{display:flex;align-items:center;gap:8px;height:var(--header-h);border-bottom:1px solid var(--border);background:var(--surface);padding:0 16px}.topbar .spacer{flex:1}.workspace{overflow:auto;padding:20px 24px 48px;background:var(--bg)}button{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:500 13px/1 -apple-system,BlinkMacSystemFont,Inter,sans-serif;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:6px 12px;border-radius:var(--radius);cursor:pointer;transition:background 80ms ease,border-color 80ms ease,color 80ms ease,transform 80ms ease;white-space:nowrap}.btn:hover{background:var(--surface-hover)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.btn-danger{color:var(--red);border-color:var(--red-muted);background:var(--surface)}.btn.btn-danger:hover{background:var(--red-muted)}.btn.btn-ghost{border-color:transparent;background:transparent}.btn.btn-ghost:hover{background:var(--surface-hover)}.btn.btn-sm{padding:4px 8px;font-size:12px}.btn.btn-lg{padding:8px 14px;font-size:14px}.btn .btn-spinner{width:12px;height:12px}.btn-group{display:inline-flex;gap:6px}.icon-btn{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn.icon-btn-bordered{border-color:var(--border-strong)}.input,.textarea,select.input{font:inherit;width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:6px 10px;color:var(--text);transition:border-color 80ms ease,box-shadow 80ms ease}.input:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}.input::placeholder,.textarea::placeholder{color:var(--text-subtle)}.textarea{min-height:120px;font-family:inherit;resize:vertical}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon .leading-icon{position:absolute;left:8px;color:var(--text-subtle);pointer-events:none;display:grid;place-items:center}.input-with-icon input{padding-left:28px}label.field{display:block;margin-bottom:12px}label.field .field-label{font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:4px;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin-bottom:16px}.card .card-header{display:flex;align-items:center;justify-content:space-between;margin:-16px -16px 12px;padding:12px 16px;border-bottom:1px solid var(--border)}.card .card-header h3{margin:0;font-size:14px;font-weight:600}.page-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.page-header h1{font-size:22px;font-weight:700;margin:0 0 2px}.page-header .page-subtitle{font-size:13px;color:var(--text-muted)}.page-header .spacer{flex:1}.page-header .actions{display:flex;gap:8px;align-items:center}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}.kpi .kpi-label{font-size:11px;font-weight:500;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.kpi .kpi-value{font-size:22px;font-weight:700;margin-top:4px}.kpi .kpi-trend{font-size:11px;color:var(--text-subtle);margin-top:2px}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.table th,.table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}.table th{font-size:11px;font-weight:600;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-subtle);position:sticky;top:0;z-index:1}.table tbody tr:hover{background:var(--surface-hover)}.table tbody tr:last-child td{border-bottom:0}.table.compact th,.table.compact td{padding:6px 10px}.table .row-actions{opacity:0;transition:opacity 80ms ease}.table tr:hover .row-actions{opacity:1}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;font-size:11.5px;font-weight:500;background:var(--gray-muted);color:var(--gray);border:1px solid transparent}.badge.gray{background:var(--gray-muted);color:var(--gray)}.badge.green{background:var(--green-muted);color:var(--green)}.badge.amber{background:var(--amber-muted);color:var(--amber)}.badge.red{background:var(--red-muted);color:var(--red)}.badge.blue{background:var(--blue-muted);color:var(--blue)}.badge.purple{background:var(--purple-muted);color:var(--purple)}.badge.outline{background:var(--surface);border-color:var(--border-strong);color:var(--text-muted)}.badge.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.filter-bar .filter-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 10px;border-radius:100px;background:var(--accent-muted);color:var(--accent);font-size:12px;font-weight:500}.filter-bar .filter-chip button{background:transparent;border:0;cursor:pointer;color:inherit;display:grid;place-items:center;padding:0}.avatar{display:inline-grid;place-items:center;background:var(--surface-hover);color:var(--text-muted);font-size:12px;font-weight:600;border-radius:50%;width:24px;height:24px;flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.sq{border-radius:6px}.avatar.lg{width:36px;height:36px;font-size:13px}.skeleton{display:block;background:linear-gradient(90deg,var(--surface-hover) 0%,var(--surface-subtle) 50%,var(--surface-hover) 100%);background-size:200% 100%;animation:skeleton 1.4s ease-in-out infinite;border-radius:6px;height:16px}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;opacity:.8}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 16px;text-align:center;color:var(--text-muted)}.empty-state .empty-icon{width:40px;height:40px;display:grid;place-items:center;background:var(--surface-hover);border-radius:50%;color:var(--text-subtle)}.empty-state h3{margin:0;font-size:14px;color:var(--text);font-weight:600}.empty-state p{margin:0;font-size:13px;max-width:340px}.tooltip-content{z-index:50;padding:4px 8px;font-size:12px;background:var(--text);color:#fff;border-radius:var(--radius-sm)}.menu-content{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:4px;min-width:180px}.menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none}.menu-item[data-highlighted]{background:var(--surface-hover)}.menu-item.danger{color:var(--red)}.menu-separator{height:1px;background:var(--border);margin:4px 0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f1752;z-index:40;animation:fadeIn .12s ease}.dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(560px,92vw);max-height:86vh;display:flex;flex-direction:column;z-index:41}.dialog-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.dialog-header h2{margin:0;font-size:15px;font-weight:600}.dialog-body{padding:16px 18px;overflow:auto}.dialog-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.sheet{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:41;animation:slideIn .16s ease}.sheet-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.sheet-header h2{margin:0;font-size:15px;font-weight:600}.sheet-body{padding:16px 18px;overflow:auto;flex:1}.sheet-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.toast-viewport{position:fixed;bottom:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:60;max-width:360px}.toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:10px 12px;font-size:13px;display:flex;align-items:flex-start;gap:8px}.toast.success{border-left:3px solid var(--green)}.toast.error{border-left:3px solid var(--red)}.toast.info{border-left:3px solid var(--accent)}.toast .toast-title{font-weight:600}.toast .toast-desc{color:var(--text-muted);margin-top:2px}.cmd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f174d;z-index:60;animation:fadeIn 80ms ease}.cmd-panel{position:fixed;top:14vh;left:50%;transform:translate(-50%);width:min(640px,92vw);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:61;overflow:hidden}.cmd-input{width:100%;border:0;padding:14px 16px;font-size:15px;outline:none}.cmd-input::placeholder{color:var(--text-subtle)}.cmd-list{max-height:60vh;overflow:auto;border-top:1px solid var(--border);padding:6px}.cmd-group-title{font-size:11px;color:var(--text-subtle);padding:8px 10px 4px;text-transform:uppercase;letter-spacing:.05em}.cmd-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;font-size:13.5px}.cmd-item.active{background:var(--accent-muted);color:var(--accent)}.cmd-item .cmd-icon{color:var(--text-subtle)}.cmd-item.active .cmd-icon{color:var(--accent)}.cmd-item .cmd-subtitle{color:var(--text-subtle);font-size:12px;margin-left:auto;max-width:50%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.combo{position:relative}.combo .combo-popover{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);z-index:30;max-height:280px;overflow:auto;padding:4px}.combo .combo-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer}.combo .combo-item.active{background:var(--accent-muted);color:var(--accent)}.combo .combo-item:hover{background:var(--surface-hover)}.combo .combo-item.disabled{color:var(--text-subtle);cursor:not-allowed}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px 2px 8px;background:var(--surface-hover);border:1px solid var(--border);border-radius:100px;font-size:12px}.chip button{display:grid;place-items:center;background:transparent;border:0;cursor:pointer;color:var(--text-muted)}.tabs-list{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px}.tabs-trigger{background:transparent;border:0;padding:8px 12px;cursor:pointer;font:inherit;font-size:13px;color:var(--text-muted);border-bottom:2px solid transparent}.tabs-trigger[data-state=active]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.email-list .email-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;align-items:center}.email-list .email-row:hover{background:var(--surface-hover)}.email-list .email-row.active{background:var(--accent-muted)}.email-list .email-row .email-subject{font-weight:500;font-size:13.5px;color:var(--text)}.email-list .email-row .email-meta{font-size:12px;color:var(--text-muted)}.email-list .email-row .email-snippet{font-size:12.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.email-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:12px}.email-card .email-header{padding:14px 16px;border-bottom:1px solid var(--border)}.email-card .email-header .email-from{font-weight:600;font-size:13.5px}.email-card .email-header .email-to{font-size:12.5px;color:var(--text-muted)}.email-card .email-header .email-date{font-size:12px;color:var(--text-subtle)}.email-card .email-body{padding:16px;line-height:1.55;font-size:14px}.email-card .email-body img{max-width:100%}.email-card .blocked-images-bar{background:var(--amber-muted);color:var(--amber);padding:6px 12px;font-size:12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}.split-list-detail{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;height:calc(100vh - var(--header-h) - 40px - 80px);min-height:520px}.split-list-detail>.list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column}.split-list-detail>.list .list-header{padding:8px 10px;border-bottom:1px solid var(--border)}.split-list-detail>.list .list-scroll{flex:1;overflow:auto}.split-list-detail>.detail{overflow:auto}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.right{display:flex;justify-content:flex-end;gap:8px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:8px}.flex{display:flex}.flex-1{flex:1 1 auto;min-width:0}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.small{font-size:12px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.divider{height:1px;background:var(--border);margin:12px 0}.timeline{display:flex;flex-direction:column;gap:8px}.timeline-item{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;position:relative;padding:4px 0}.timeline-item .timeline-dot{width:20px;height:20px;border-radius:50%;background:var(--surface-hover);color:var(--text-muted);display:grid;place-items:center;font-size:10px}.timeline-item .timeline-time{font-size:11px;color:var(--text-subtle)}.timeline-item .timeline-title{font-size:13px;font-weight:500}.timeline-item .timeline-desc{font-size:12.5px;color:var(--text-muted)}
