.app{min-height:100vh;background-color:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app-header{background-color:#fff;color:#374151;padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb}.app-header h1{font-size:1.5rem;margin-bottom:.25rem;font-weight:600}.app-header p{font-size:.875rem;color:#6b7280;margin:0}.app-main{padding:1rem;width:100%}.app-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background-color:#fef2f2;color:#dc2626;text-align:center;padding:2rem}.app-error h1{font-size:2rem;margin-bottom:1rem}.hospital-table-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;overflow:hidden}.table-controls{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;background-color:#f9fafb;flex-wrap:wrap;gap:1rem}.control-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.control-btn{padding:.5rem 1rem;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.control-btn:hover{background-color:#f3f4f6;border-color:#9ca3af}.control-btn.active{background-color:#4f46e5;color:#fff;border-color:#4f46e5}.table-stats{font-size:.875rem;color:#6b7280;font-weight:500}.filter-panel{padding:1.5rem;border-bottom:1px solid #e5e7eb;background-color:#f9fafb}.filter-section{margin-bottom:1.5rem}.filter-section:last-child{margin-bottom:0}.filter-section h3{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:#374151}.global-filter-input{width:100%;max-width:400px;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.column-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.column-filter{display:flex;flex-direction:column;gap:.25rem}.column-filter label{font-size:.875rem;font-weight:500;color:#374151}.column-filter-input{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem}.clear-filters-btn{padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s}.clear-filters-btn:hover{background-color:#dc2626}.column-visibility{padding:.75rem 1.5rem;border-bottom:1px solid #e5e7eb;background-color:#f9fafb}.column-visibility h3{font-size:.9rem;font-weight:600;margin-bottom:.5rem;color:#1f2937;display:flex;align-items:center;gap:.4rem}.column-visibility h3:before{content:"⚙️";font-size:1rem}.column-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.35rem}.column-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;cursor:pointer;padding:.35rem .5rem;border-radius:5px;transition:all .2s ease;border:1px solid #e5e7eb;background-color:#fff;font-weight:500;color:#374151;position:relative}.column-item:hover{background-color:#f8fafc;border-color:#d1d5db;transform:translateY(-1px);box-shadow:0 1px 3px #0000000d}.column-item input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:#4f46e5;border:2px solid #d1d5db;border-radius:3px;transition:all .2s ease;position:relative}.column-item input[type=checkbox]:checked{background-color:#4f46e5;border-color:#4f46e5}.column-item input[type=checkbox]:hover{border-color:#9ca3af}.column-item input[type=checkbox]:checked:hover{border-color:#4f46e5}.column-item span{-webkit-user-select:none;user-select:none;flex:1;line-height:1.2}.table-wrapper{overflow-x:auto;border-bottom:1px solid #e5e7eb}.hospital-table{width:100%;border-collapse:collapse;font-size:.875rem}.hospital-table th{background-color:#f9fafb;padding:.75rem 1rem;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap;position:relative}.hospital-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.hospital-table th.sortable:hover{background-color:#f3f4f6}.sort-indicator{margin-left:.5rem;font-size:.75rem;color:#6b7280}.hospital-table td{padding:.75rem 1rem;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:top}.hospital-table tbody tr:hover{background-color:#f9fafb}.hospital-table tbody tr:last-child td{border-bottom:none}.detail-link{color:#4f46e5;text-decoration:none;font-weight:500}.detail-link:hover{text-decoration:underline}.pagination{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:#f9fafb;border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:1rem}.pagination-info{font-size:.875rem;color:#6b7280}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-btn{padding:.375rem .5rem;border:1px solid #d1d5db;background:#fff;border-radius:4px;cursor:pointer;font-size:.875rem;min-width:2.5rem;transition:all .2s}.pagination-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:.875rem;color:#374151;font-weight:500;margin:0 .5rem}.page-size-selector{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#374151}.page-size-select,.page-size-input{padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;width:80px}.table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#6b7280}.spinner{width:2rem;height:2rem;border:2px solid #e5e7eb;border-top:2px solid #4f46e5;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.app-header{padding:1.5rem 1rem}.app-header h1{font-size:2rem}.app-main{padding:1rem .5rem}.table-controls{flex-direction:column;align-items:stretch;gap:1rem}.control-buttons{justify-content:center}.column-filters,.column-list{grid-template-columns:1fr}.pagination{flex-direction:column;gap:1rem}.pagination-controls{order:-1}.hospital-table{font-size:.75rem}.hospital-table th,.hospital-table td{padding:.5rem .75rem}}@media(max-width:480px){.hospital-table th,.hospital-table td{padding:.375rem .5rem;font-size:.7rem}.control-btn{padding:.375rem .75rem;font-size:.75rem}}
