:root{--primary: #0ab0ee;--dark: #303245;--white: #ffffff;--gray1: #787b8e;--gray2: #b6b8c7;--gray3: #d9dae3;--danger: #e50046;--sidebar-width: 248px;--header-height: 80px;--bg-main: #f8fafc;--bg-card: #ffffff;--bg-sidebar: #303245;--text-main: #303245;--text-muted: #787b8e;--border-color: #d9dae3;--bg-panel-tint: #f3fbfe}[data-theme=dark]{--bg-main: #1a1b26;--bg-card: #24283b;--bg-sidebar: #1a1b26;--text-main: #c0caf5;--text-muted: #787b8e;--border-color: #3b4261;--white: #ffffff;--bg-panel-tint: #232f44}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}.btn-primary{background-color:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.card{background:var(--bg-card);border-radius:12px;box-shadow:0 4px 6px -1px #0000000d;padding:24px;border:1px solid var(--border-color);transition:background-color .3s ease,border-color .3s ease}.text-danger{color:var(--danger)}.nav-link,.sidebar-btn{transition:background-color .2s ease,color .2s ease}::group-header{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--gray2);padding:16px 24px 8px;font-weight:700}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modern-select{padding:8px 32px 8px 12px;border-radius:8px;border:1px solid var(--border-color);font-size:13px;color:var(--text-main);background-color:var(--bg-card);cursor:pointer;appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%239ca3af%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C/polyline%3E%3C/svg%3E);background-repeat:no-repeat;background-position:right 10px center;background-size:14px;transition:all .2s ease;outline:none}.modern-select:hover{border-color:#0ab0ee}.modern-select:focus{border-color:#0ab0ee;box-shadow:0 0 0 3px #0ab0ee26}.spin{animation:spin .9s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.skeleton-block{background:var(--border-color);border-radius:8px;animation:pulse 1.5s ease-in-out infinite}.data-grid-container{width:100%;overflow-x:auto;background:#fff}.data-grid-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.data-grid-table thead{background:#f8fafc;border-bottom:2px solid #e2e8f0}.data-grid-th{padding:10px 12px;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;text-align:left;white-space:nowrap;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis}.data-grid-th.sortable{cursor:pointer}.data-grid-th.sortable:hover{background:#00000005}.data-grid-th.active-sort{color:#3b82f6}.data-grid-resizer{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:1}.data-grid-resizer:hover,.data-grid-resizer.is-resizing{background:#3b82f6;opacity:.5}.data-grid-tbody tr{border-bottom:1px solid #f3f4f6;transition:background .15s}.data-grid-tbody tr:hover{background:#fafbfc}.data-grid-tbody tr.selected{background:#3b82f60a}.data-grid-tbody td{padding:8px 12px;color:var(--text-main, #1e293b);overflow:hidden;text-overflow:ellipsis}.data-grid-checkbox{width:15px;height:15px;cursor:pointer;accent-color:#3b82f6;margin:0}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sortable:hover{background:#0ab0ee14}.col-resizer{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:3}.col-resizer:hover,.col-resizer.is-resizing{background:#0ab0ee;opacity:.5}
