:root{--bg:#f6f7f9;--panel:#fff;--border:#dfe3e8;--text:#1a1d21;--muted:#6b7280;--accent:#2563eb;--accent-soft:#eff4ff;--danger:#dc2626;--danger-soft:#fef2f2;--success:#15803d;--success-soft:#f0fdf4;--warn:#b45309;--warn-soft:#fffbeb;--radius:6px;--sidebar-w:190px;color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1{margin:0 0 4px;font-size:20px}h2{margin:0 0 12px;font-size:16px}h3{margin:0 0 8px;font-size:14px}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.right{text-align:right}.nowrap{white-space:nowrap}.grow{flex:1}.boot{color:var(--muted);padding:40px}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--panel);border-right:1px solid var(--border);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid var(--border);padding:16px;font-weight:600}.sidebar ul{flex:1;margin:0;padding:8px 0;list-style:none}.sidebar a{color:var(--text);align-items:center;gap:8px;padding:8px 16px;text-decoration:none;display:flex}.sidebar a:hover{background:var(--bg)}.sidebar a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar .soon{color:var(--muted);cursor:default;align-items:center;gap:8px;padding:8px 16px;display:flex}.sidebar .soon .chip{margin-left:auto}.sidebar-footer{border-top:1px solid var(--border);padding:12px 16px}.sidebar-footer .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{background:var(--accent);color:#fff;text-align:center;border-radius:10px;min-width:18px;margin-left:auto;padding:0 6px;font-size:11px;line-height:18px}.content{flex:1;min-width:0;padding:20px 24px}.view-header{align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.view-header .grow{min-width:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card+.card{margin-top:16px}label{color:var(--muted);margin-bottom:12px;font-size:12px;display:block}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font:inherit;color:var(--text);background:#fff;margin-top:4px;padding:7px 9px;display:block}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}textarea{resize:vertical;min-height:90px;font-family:inherit}input[type=checkbox]{width:auto;margin:0 6px 0 0;display:inline-block}.inline-label{color:var(--text);align-items:center;gap:6px;margin-bottom:12px;font-size:13px;display:flex}button{border:1px solid var(--border);border-radius:var(--radius);font:inherit;cursor:pointer;background:#fff;padding:7px 12px}button:hover:not(:disabled){background:var(--bg)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.danger{color:var(--danger);border-color:#f3c9c9}button.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:7px 10px}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:600}tbody tr:hover{background:var(--bg)}td.tight{white-space:nowrap;width:1%}td.tight select{min-width:122px}.truncate{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:22ch;display:inline-block;overflow:hidden}.chip{border:1px solid var(--border);background:var(--bg);white-space:nowrap;border-radius:10px;padding:1px 7px;font-size:11px;display:inline-block}.chip.new{background:var(--accent-soft);color:var(--accent);border-color:#c7d9ff}.chip.replied,.chip.success,.chip.sent,.chip.qualified{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.chip.failed,.chip.do_not_contact{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.chip.pending,.chip.queued,.chip.running,.chip.sending,.chip.partial{background:var(--warn-soft);color:var(--warn);border-color:#fde68a}.alert{border-radius:var(--radius);margin-bottom:12px;padding:9px 12px;font-size:13px}.alert.error{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca}.alert.ok{background:var(--success-soft);color:var(--success);border:1px solid #bbf7d0}.alert.warn{background:var(--warn-soft);color:var(--warn);border:1px solid #fde68a}.filters{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:12px;display:flex}.filters label{margin-bottom:0}.filters input,.filters select{min-width:150px}.login-shell{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{width:320px}.login-card button{width:100%;margin-top:4px}.chat-layout{grid-template-columns:300px 1fr;gap:16px;height:calc(100vh - 40px);display:grid}.conversation-list{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow-y:auto}.conversation-list .row{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;border-radius:0;width:100%;padding:10px 12px;display:block}.conversation-list .row.active{background:var(--accent-soft)}.conversation-list .row .top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.conversation-list .row .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.conversation-list .row .preview{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.thread-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-height:0;display:flex}.thread-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;display:flex}.thread-body{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.thread-empty{height:100%;color:var(--muted);justify-content:center;align-items:center;display:flex}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:10px;max-width:68%;padding:8px 11px}.bubble.inbound{background:var(--bg);border:1px solid var(--border);align-self:flex-start}.bubble.outbound{background:var(--accent-soft);border:1px solid #c7d9ff;align-self:flex-end}.bubble .meta{color:var(--muted);margin-top:4px;font-size:11px}.composer{border-top:1px solid var(--border);align-items:flex-end;gap:8px;padding:12px;display:flex}.composer textarea{min-height:40px;max-height:140px;margin-top:0}.browser-bar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.search-input{flex:1;margin-top:0;padding:9px 12px;font-size:14px}.browser-bar button{white-space:nowrap}.filters-card{margin-bottom:12px;padding:12px 16px}.filters-card .filters{margin-bottom:0}.breadcrumb{flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:12px;font-size:13px;display:flex}.crumb{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:4px;padding:2px 4px}.crumb:hover{background:var(--accent-soft)}.crumb.current{color:var(--text);cursor:default;padding:2px 4px;font-weight:600}.crumb-sep{color:var(--muted);padding:0 2px}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.empty-state{text-align:center;color:var(--muted);padding:28px 16px;font-size:13px}.folder-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.folder-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);cursor:pointer;min-width:0;padding:12px 14px;transition:border-color .12s,box-shadow .12s,transform .12s;position:relative}.folder-card:hover{border-color:var(--accent);box-shadow:0 1px 6px #2563eb1a}.folder-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.folder-card.drop{border-color:var(--accent);background:var(--accent-soft);border-style:dashed}.folder-card.unfiled{background:var(--bg);border-style:dashed}.folder-card-top{align-items:center;gap:7px;min-height:22px;margin-bottom:10px;display:flex}.folder-icon{width:20px;height:16px;color:var(--accent);flex:0 0 20px}.folder-card-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.folder-card-top input{margin-top:0;padding:3px 6px;font-size:13px}.folder-card-count{font-size:24px;font-weight:600;line-height:1.1}.folder-card-meta{color:var(--muted);margin-top:2px;font-size:11px}.folder-card-actions{gap:1px;display:none}.folder-card:hover .folder-card-actions,.folder-card:focus-within .folder-card-actions{display:flex}.folder-card-actions button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:1px 4px;font-size:11px}.folder-card-actions button:hover{color:var(--accent);background:var(--accent-soft)}.bulk-bar{background:var(--accent-soft);border-radius:var(--radius);border:1px solid #c7d9ff;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.bulk-bar select{width:auto;min-width:180px;margin-top:0}@media (width<=700px){.browser-bar{flex-wrap:wrap}.search-input{flex:100%}.folder-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}tbody tr.clickable{cursor:pointer}tbody tr.selected,tbody tr.selected:hover{background:var(--accent-soft)}.strong-cell{font-weight:600}.panel-scrim{z-index:40;background:#0f141a47;position:fixed;inset:0}.detail-panel{background:var(--panel);border-left:1px solid var(--border);z-index:41;flex-direction:column;width:460px;max-width:100vw;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #0f141a1f}.panel-header{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.panel-header h2{word-break:break-word;font-size:16px}.panel-body{flex:1;padding:16px;overflow-y:auto}.panel-footer{border-top:1px solid var(--border);background:var(--bg);gap:8px;padding:12px 16px;display:flex}.panel-section{margin-bottom:20px}.panel-section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:5px;font-size:11px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.field{min-width:0}.field-label{color:var(--muted);margin-bottom:2px;font-size:11px}.field-value{word-break:break-word;font-size:13px}.field select{margin-top:0}.field-grid>.field:first-child:last-child{grid-column:span 2}.field:has(.mono){grid-column:span 2}@media (width<=560px){.field-grid{grid-template-columns:1fr}.field:has(.mono){grid-column:span 1}}.stat-row{flex-wrap:wrap;gap:20px;display:flex}.stat{min-width:90px}.stat .value{font-size:20px;font-weight:600}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.preview-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;min-height:60px;padding:10px 12px}.split{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.split{grid-template-columns:1fr}.chat-layout{grid-template-columns:1fr;height:auto}}.modal{z-index:50;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{width:380px;max-width:100%}.period-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.kpi-grid-headline .kpi-value{font-size:26px}.kpi-card{padding:14px 16px}.kpi-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px;font-size:11px}.kpi-value{font-size:22px;font-weight:600;line-height:1.2}.chart-wrap{position:relative}.chart-empty{text-align:center;padding:40px 0}.chart-tooltip{background:var(--text);color:#fff;pointer-events:none;white-space:nowrap;border-radius:4px;padding:4px 8px;font-size:12px;position:absolute;top:8px;transform:translate(-50%)}.chart-tooltip .muted{color:#d1d5db}@media (width<=700px){.kpi-grid{grid-template-columns:1fr}}
