:root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.5}a{-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a2e;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:1400px;margin:0 auto;padding:24px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}h1{color:#1a1a2e;font-size:22px;font-weight:700}.stats{gap:16px;font-size:13px;font-weight:600;display:flex}.stats span{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:6px 14px}.live-dot{color:#10b981;font-size:12px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.table-wrapper{background:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead{background:#f7f8fa}th{text-align:left;color:#555;white-space:nowrap;-webkit-user-select:none;user-select:none;border-bottom:2px solid #e0e0e0;padding:10px 12px;font-weight:600}td{vertical-align:middle;border-bottom:1px solid #eee;padding:8px 12px}tr:hover{background:#fafbfc}.sent-row{background:#f0fdf4}.sent-row:hover{background:#ecfdf5}.cell-num{color:#999;text-align:center;width:40px}.cell-center{text-align:center;width:60px}.cell-msg{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.cell-actions{white-space:nowrap;gap:4px;display:flex}input[type=text],input:not([type]){background:#fff;border:1px solid #d0d0d0;border-radius:6px;outline:none;width:100%;padding:6px 8px;font-size:13px;transition:border-color .15s}input[type=text]:focus,input:not([type]):focus{border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}input[type=checkbox]{cursor:pointer;accent-color:#4f46e5;width:16px;height:16px}td:not(.cell-center):not(.cell-actions):not(.cell-num):not(.cell-msg){cursor:pointer}td:not(.cell-center):not(.cell-actions):not(.cell-num):not(.cell-msg):hover{background:#f5f3ff}a{color:#4f46e5;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:opacity .15s}button:hover{opacity:.85}.btn-edit{color:#4f46e5;background:#e0e7ff}.btn-delete{color:#dc2626;background:#fee2e2}.btn-save{color:#fff;background:#4f46e5}.btn-cancel{color:#374151;background:#e5e7eb}.btn-add{color:#fff;background:#4f46e5;padding:6px 14px}.new-row{background:#fafbfe}.new-row input{background:#f9fafb;border-style:dashed}.loading,.empty{text-align:center;color:#888;padding:40px;font-size:14px}@media (width<=768px){.app{padding:12px}header{flex-direction:column;align-items:flex-start}table{font-size:12px}th,td{padding:6px 8px}}
