@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap");*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f7fa;color:#1e293b;overflow:hidden}.app-container{height:100vh;display:flex;flex-direction:column;max-width:100vw;overflow:hidden}.table-header-row{z-index:10}.table-body-cell.frozen-column{position:-webkit-sticky;position:sticky;z-index:10!important;background:inherit;box-shadow:2px 0 4px rgba(0,0,0,.15);overflow:hidden}.table-body-cell.frozen-column>div{width:100%;min-width:0;overflow:hidden}.table-body-cell.frozen-column>div>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-width:0}.toolbar{padding:.5rem 1rem;background:white;border-bottom:2px solid #e2e8f0;display:flex;gap:1rem;align-items:center;box-shadow:0 1px 3px rgba(0,0,0,.05);width:100%;justify-content:space-between;height:auto}.toolbar-center,.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:.75rem}.toolbar-left{flex-shrink:0;display:flex;align-items:center;gap:.5rem;flex:0;white-space:nowrap}.toolbar-center{flex:0;justify-content:center;display:none}.toolbar-right{flex-shrink:0}.stats-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:.375rem .75rem;border-radius:6px;font-size:.75rem;box-shadow:0 2px 8px rgba(102,126,234,.25)}.clear-filters-btn,.stats-badge{font-weight:600;white-space:nowrap}.clear-filters-btn{background:#fbbf24;color:#78350f;border:none;padding:.375rem .625rem;border-radius:4px;font-size:.7rem;cursor:pointer;transition:background-color .2s,transform .2s}.clear-filters-btn:hover{background:#f59e0b;transform:translateY(-1px)}.search-container{position:relative;width:100%;max-width:500px}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:1.125rem;height:1.125rem;color:#94a3b8;pointer-events:none}.search-input{width:100%;padding:.75rem 2.75rem;border:2px solid #e2e8f0;border-radius:10px;font-size:.875rem;background:#f8fafc;color:#1e293b;transition:border-color .2s,background-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:#667eea;background:white;box-shadow:0 0 0 3px rgba(102,126,234,.1)}.clear-search{position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:1.5rem;height:1.5rem;border:none;background:#e2e8f0;color:#64748b;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;transition:background-color .2s}.clear-search:hover{background:#cbd5e1}.add-column-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:white;font-weight:600;padding:.375rem .875rem;border-radius:6px;border:none;cursor:pointer;display:flex;align-items:center;gap:.375rem;font-size:.75rem;transition:transform .2s,box-shadow .2s;white-space:nowrap}.add-column-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(102,126,234,.3)}.btn-icon{width:1rem;height:1rem}.dialog-body{padding:1rem 0;gap:1rem}.dialog-body,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{font-size:.875rem;font-weight:600;color:#334155}.table-wrapper{flex:1;overflow:hidden;background:white;margin:0;border-top:1px solid #e2e8f0;display:flex}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;flex:1;color:#64748b}.loading-icon{width:3rem;height:3rem;color:#667eea;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.table-container{width:-webkit-fit-content;width:fit-content;height:100%;overflow:auto;position:relative}.table-container::-webkit-scrollbar{width:12px;height:12px}.table-container::-webkit-scrollbar-track{background:#f1f5f9}.table-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px;border:2px solid #f1f5f9}.table-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.table-container::-webkit-scrollbar-corner{background:#f1f5f9}.table-body-row,.table-header-row{display:flex;border-bottom:1px solid #e2e8f0}.header-cell-wrapper{position:relative;flex-shrink:0}.table-header-row{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:linear-gradient(180deg,#f8fafc 0,#f1f5f9);border-bottom:2px solid #cbd5e1;height:40px}.table-summary-row{display:flex;top:40px;z-index:9;border-bottom:1px solid #e2e8f0}.table-summary-cell{padding:.25rem;font-size:.8125rem;color:#0f172a;font-weight:700;border-right:1px solid #e5e7eb;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;justify-content:center;text-align:center}.table-summary-cell:nth-child(2n),.table-summary-cell:nth-child(odd){background-color:#f8fafc;border:1px solid #e5e7eb}.table-header-cell{padding:.375rem .25rem;font-family:Space Grotesk,sans-serif;font-weight:600;font-size:.8125rem;color:#475569;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none;border-right:1px solid #e2e8f0;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;gap:.15rem;min-width:auto;white-space:nowrap;height:40px;line-height:1;overflow:hidden}.table-header-cell:hover{opacity:.8}.header-cell-content{display:flex;align-items:center;justify-content:center;gap:.2rem;white-space:nowrap;cursor:pointer;flex:0 1 auto;min-width:auto;overflow:hidden;height:100%;width:100%;padding:4px}.header-cell-content span{overflow:visible;text-overflow:clip;white-space:nowrap}.header-actions,.header-icons{display:flex;align-items:center;flex-shrink:0}.header-actions{gap:.25rem;margin-left:.25rem;height:100%}.freeze-btn{width:20px;height:20px;border:1px solid #cbd5e1;background:#f8fafc;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s}.freeze-btn:hover{background:#e2e8f0;border-color:#94a3b8}.freeze-btn.frozen{background:#3b82f6;border-color:#2563eb;color:white}.header-cell-wrapper.frozen-column{top:0;z-index:20!important}.header-cell-wrapper.frozen-column,.table-summary-cell.frozen-column{position:-webkit-sticky;position:sticky;background:inherit;box-shadow:2px 0 4px rgba(0,0,0,.15);overflow:hidden}.table-summary-cell.frozen-column{z-index:10!important}.filter-btn{width:1.5rem;height:1.5rem;min-width:1.5rem;border:none;background:transparent;color:#94a3b8;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background-color .2s,color .2s;flex-shrink:0;line-height:1}.filter-btn:hover{background:#e0e7ff;color:#667eea}.filter-btn.active{background:#dbeafe;color:#0284c7}.filter-icon{width:.875rem;height:.875rem}.table-body-row{background:#f8fafc;height:60px}.table-body-cell{padding:.25rem;font-size:.8125rem;color:#334155;border-right:1px solid #f1f5f9;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:unset}.cell-content-wrapper{display:flex;align-items:flex-start;justify-content:space-between;width:100%;height:auto;min-height:100%;gap:4px}@media (max-width:1024px){.toolbar{flex-wrap:wrap}.toolbar-center{order:3;flex-basis:100%}.search-container{max-width:100%}}@media (max-width:768px){.toolbar{padding:.75rem}.stats-badge{font-size:.75rem;padding:.375rem .75rem}.add-column-btn{padding:.5rem .875rem;font-size:.8125rem}}.filter-dropdown{position:absolute;top:100%;left:0;background:white;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.1);z-index:100;max-height:300px;display:flex;flex-direction:column;margin-top:.5rem}.filter-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.filter-title{font-size:.8125rem;font-weight:600;color:#334155}.filter-clear{background:none;border:none;color:#667eea;font-size:.75rem;font-weight:600;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s}.filter-clear:hover{background:#f1f5f9}.filter-options{overflow-y:auto;flex:1;padding:.5rem}.filter-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.8125rem;color:#334155;border-radius:4px;transition:background-color .2s}.filter-option:hover{background:#f1f5f9}.filter-checkbox{width:1rem;height:1rem;cursor:pointer;accent-color:#667eea}.filter-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-100{width:200px}