.company-search { max-width: 100%; }
.company-search-loading { position: fixed; inset: 0; z-index: 1050; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .7); }
.company-search-loading[hidden] { display: none; }
.company-search-loading-content { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; border: 1px solid #ddd; border-radius: .4rem; background: #fff; box-shadow: 0 4px 16px rgba(0, 0, 0, .12); font-weight: 600; }
.company-search-spinner { display: inline-block; width: 1.25rem; height: 1.25rem; border: 3px solid #d8dce0; border-top-color: #343a40; border-radius: 50%; animation: company-search-spin .7s linear infinite; }
@keyframes company-search-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .company-search-spinner { animation-duration: 1.5s; } }
.company-search-form { max-width: 620px; margin: 1.5rem 0; }
.company-search-form label { display: block; font-weight: 600; margin-bottom: .35rem; }
.company-search-input { display: flex; gap: .5rem; }
.company-search-input input { min-width: 0; }
.company-columns { background: #fff; border: 1px solid #ddd; border-radius: .4rem; margin-bottom: 1.25rem; padding: .8rem 1rem; }
.company-columns summary { cursor: pointer; font-weight: 600; }
.company-columns form { margin-top: 1rem; }
.company-columns-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(195px, 1fr)); gap: .5rem 1rem; margin-bottom: 1rem; }
.company-columns-grid label { cursor: pointer; }
.company-search-message { padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: .4rem; }
.company-search-count { margin-bottom: .5rem; }
.company-search-table-wrap { width: 100%; overflow-x: auto; }
.company-search-table { min-width: max-content; background: #fff; }
.company-search-table th, .company-search-table td { padding: .75rem; vertical-align: middle; }
.company-search-table thead th { white-space: nowrap; }
.company-search-table tbody th { min-width: 180px; max-width: 280px; white-space: normal; }
.company-search-table .company-search-position { width: 3rem; text-align: right; white-space: nowrap; color: #6c757d; }
.company-search-table thead a, .company-search-table tbody th a { color: inherit; text-decoration: none; }
.company-search-table thead a:hover, .company-search-table thead a:focus, .company-search-table tbody th a:hover, .company-search-table tbody th a:focus { text-decoration: underline; }
.company-search-table .company-search-number { text-align: right; white-space: nowrap; }
.company-column-info { display: inline-flex; align-items: center; justify-content: center; width: 1rem; height: 1rem; margin-left: .15rem; padding: 0; border: 0; background: transparent; color: #495057; vertical-align: middle; cursor: help; }
.company-column-info svg { display: block; width: .75rem; height: .75rem; }
.company-column-info:hover, .company-column-info:focus-visible { color: #212529; }
.company-column-info:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; border-radius: 50%; }
.company-column-tooltip { position: fixed; z-index: 1060; max-width: min(20rem, calc(100vw - 1rem)); padding: .5rem .7rem; border-radius: .3rem; background: #212529; color: #fff; box-shadow: 0 3px 12px rgba(0, 0, 0, .2); font-size: .85rem; line-height: 1.4; text-align: left; white-space: normal; pointer-events: none; }
.company-column-tooltip[hidden] { display: none; }
.company-search-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }
.company-search-page-links { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.company-search-page-links a, .company-search-page-links span { background: #fff; border: 1px solid #ccc; border-radius: .25rem; min-width: 2rem; padding: .35rem .6rem; text-align: center; }
.company-search-page-links [aria-current="page"] { background: #0d6efd; border-color: #0d6efd; color: #fff; }
