*,:before,:after{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0}body{color:#1e293b;background:#f4f7fb;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.btn{color:#374151;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn:hover{color:#fff;background:#7c3aed;border-color:#7c3aed}.btn:disabled{color:#9ca3af;cursor:not-allowed;background:#fff;border-color:#e5e7eb}.btn:disabled:hover{color:#9ca3af;background:#fff;border-color:#e5e7eb}.btn-danger:not(:disabled):hover{color:#fff;background:#dc2626;border-color:#dc2626}@media (width<=768px){[style*=grid-template-columns]:not(.keep-cols){grid-template-columns:1fr!important}input,select,textarea{font-size:16px!important}main{padding:16px 12px!important}}.grid-shell{z-index:10;box-shadow:none;background:#fff;border:none;border-radius:0;flex-direction:column;padding:0;display:flex;position:fixed;inset:96px 0 0;overflow:hidden}.grid-tabs{background:#fff;border-bottom:2px solid #e5e7eb;flex-shrink:0;gap:0;padding:0 20px;display:flex}.grid-tabs button{cursor:pointer;background:0 0;border:none;outline:none;margin-bottom:-2px;padding:10px 22px;font-size:14px;font-weight:600;transition:color .15s}.grid-tabs button.active{color:#7c3aed;border-bottom:3px solid #7c3aed}.grid-tabs button:not(.active){color:#6b7280;border-bottom:3px solid #0000}.grid-tabs button:not(.active):hover{color:#374151}.grid-header{background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.grid-title{color:#0f172a;letter-spacing:-.02em;margin:0;font-size:28px;font-weight:700}.grid-header-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grid-menu-wrap{position:relative}.grid-ellipsis{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:12px;padding:6px 12px;font-size:22px;line-height:1;box-shadow:0 2px 8px #0f172a0f}.grid-menu{z-index:9999;background:#fff;border:1px solid #e5e7eb;border-radius:14px;min-width:280px;max-width:320px;padding:14px;box-shadow:0 18px 42px #0f172a24}.grid-menu.floating{position:fixed}.grid-menu-title{color:#0f172a;margin-bottom:4px;font-weight:700}.grid-menu-hint{color:#64748b;margin-bottom:10px;font-size:12px;line-height:1.4}.grid-export-item{text-align:left;color:#0f172a;cursor:pointer;background:0 0;border:none;border-radius:8px;width:100%;padding:8px 10px;font-size:14px;display:block}.grid-export-item:hover{background:#f1f5f9}.grid-column-list{gap:8px;max-height:260px;display:grid;overflow-y:auto}.grid-column-item{color:#0f172a;align-items:center;gap:8px;font-size:14px;display:flex}.grid-column-row{flex-direction:column;gap:4px;display:flex}.grid-column-filter-control{padding-left:24px}.grid-column-filter-badge{color:#a78bfa;font-size:10px;line-height:1}.grid-table-wrap{background:#fff;border:none;border-radius:0;flex:1;min-height:0;overflow:auto}.grid-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.grid-table thead th{z-index:2;color:#334155;letter-spacing:.01em;text-transform:none;-webkit-user-select:none;user-select:none;white-space:nowrap;text-align:left;background:#f8fafc;border-bottom:1px solid #e5e7eb;border-right:1px solid #f1f5f9;padding:14px;font-size:13px;font-weight:700;position:sticky;top:0}.grid-table thead th:last-child{border-right:none}.grid-table tbody td{vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;color:#334155;border-bottom:1px solid #eef2f7;border-right:1px solid #f8fafc;padding:14px;font-size:14px;line-height:1.4;overflow:hidden}.grid-table tbody td:last-child{border-right:none}.grid-table tbody tr{transition:background .18s,box-shadow .18s}.grid-table tbody tr:nth-child(2n){background:#fcfdff}.grid-table tbody tr:hover{background:#f8fbff}.grid-table tbody tr:last-child td{border-bottom:none}.grid-clickable-cell{cursor:pointer;font-weight:600;color:#2563eb!important}.grid-clickable-cell:hover{text-decoration:underline}.grid-select-col{text-align:center;width:52px;min-width:52px;max-width:52px}.grid-table thead .grid-select-col,.grid-table tbody .grid-select-col{text-align:center;padding-left:10px;padding-right:10px}.grid-empty{text-align:center;color:#64748b;background:#fff;font-size:14px;padding:32px 20px!important}.grid-muted{color:#64748b}.grid-badge{border-radius:999px;justify-content:center;align-items:center;min-width:72px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.grid-badge.active{color:#166534;background:#dcfce7}.grid-badge.inactive{color:#991b1b;background:#fee2e2}.grid-resizer{cursor:col-resize;width:8px;height:100%;position:absolute;top:0;right:0}.grid-resizer:hover{background:#2563eb26}.grid-filter-input{box-sizing:border-box;color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:4px;outline:none;width:100%;margin-top:4px;padding:3px 6px;font-size:12px}.grid-filter-input:focus{border-color:#a78bfa}.grid-table thead th.has-filter{padding-bottom:10px}.grid-multiselect-btn{cursor:pointer;text-align:left;white-space:nowrap;align-items:center;gap:3px;overflow:hidden;display:flex!important}.grid-multiselect-btn.grid-multiselect-active{color:#1d4ed8!important;background:#eff6ff!important;border-color:#3b82f6!important}.grid-multiselect-label{text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.grid-multiselect-clear{opacity:.6;flex-shrink:0;padding:0 2px;font-size:10px;line-height:1}.grid-multiselect-clear:hover{opacity:1}.grid-multiselect-arrow{opacity:.5;flex-shrink:0;font-size:10px}.grid-multiselect-dropdown{background:#fff;border:1px solid #e2e8f0;border-radius:10px;min-width:180px;max-width:320px;padding:10px;box-shadow:0 8px 32px #0f172a2e}.grid-multiselect-search{color:#334155;box-sizing:border-box;background:#f8fafc;border:1px solid #cbd5e1;border-radius:5px;outline:none;width:100%;margin-bottom:6px;padding:5px 8px;font-size:12px}.grid-multiselect-search:focus{border-color:#a78bfa}.grid-multiselect-meta{color:#64748b;justify-content:space-between;align-items:center;margin-bottom:5px;font-size:11px;display:flex}.grid-multiselect-clearall,.grid-multiselect-selectall{color:#7c3aed;cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;font-weight:600}.grid-multiselect-clearall:hover,.grid-multiselect-selectall:hover{text-decoration:underline}.grid-multiselect-selectall:disabled{color:#cbd5e1;cursor:default;text-decoration:none}.grid-multiselect-list{flex-direction:column;gap:1px;max-height:220px;display:flex;overflow-y:auto}.grid-multiselect-item{cursor:pointer;color:#334155;border-radius:4px;align-items:center;gap:7px;padding:5px 4px;font-size:13px;display:flex}.grid-multiselect-item:hover{background:#f1f5f9}.grid-multiselect-item input[type=checkbox]{accent-color:#7c3aed;cursor:pointer;flex-shrink:0}.grid-multiselect-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grid-multiselect-empty{color:#94a3b8;padding:6px 4px;font-size:12px}.grid-mobile-sort{color:#0f172a;background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;max-width:160px;padding:5px 10px;font-size:13px}.grid-cards{flex-direction:column;gap:10px;padding:14px;display:flex}.grid-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;box-shadow:0 1px 4px #0f172a0f}.grid-card-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.grid-card-head input[type=checkbox]{flex-shrink:0;width:18px;height:18px}.grid-card-title{text-align:left;color:#2563eb;cursor:pointer;background:0 0;border:none;flex:1;padding:0;font-size:16px;font-weight:700;line-height:1.3}.grid-card-body{flex-direction:column;gap:6px;display:flex}.grid-card-row{border-top:1px solid #f1f5f9;justify-content:space-between;gap:12px;padding-top:6px;font-size:13px;display:flex}.grid-card-row:first-child{border-top:none;padding-top:0}.grid-card-label{color:#64748b;flex-shrink:0;font-weight:600}.grid-card-val{color:#334155;text-align:right;overflow-wrap:anywhere}@media (width<=768px){.grid-title{font-size:20px}.grid-header{gap:10px;padding:12px 14px}.grid-header-right{gap:8px}}
