.tv-container { max-width: 900px; margin: 20px auto; }
.tv-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
.tv-filter-btn { padding: 6px 14px; background: #f0f0f0; color: #333; border-radius: 20px; text-decoration: none; font-size: 13px; transition: all 0.2s; border: 1px solid #ddd; }
.tv-filter-btn:hover { background: #e0e0e0; color: #000; }
.tv-filter-btn.active { background: #0073aa; color: #fff; border-color: #0073aa; }
.tv-cat-title { font-size: 16px; color: #0073aa; margin: 20px 0 10px; padding-bottom: 6px; border-bottom: 1px solid #ddd; }
.tv-table { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 20px; table-layout: fixed; }
.tv-table th { background: #f9f9f9; color: #333; padding: 10px 12px; text-align: left; font-weight: 600; border-bottom: 2px solid #ddd; }
.tv-table td { padding: 8px 12px; border-bottom: 1px solid #eee; vertical-align: middle; word-wrap: break-word; }
.tv-row { transition: background 0.2s; }
.tv-row:hover { background: #f5f5f5; }
.tv-working { border-left: 3px solid #46b450; }
.tv-broken  { border-left: 3px solid #dc3232; }
.tv-neutral { border-left: 3px solid #ccc; }
.tv-col-pos { width: 40px; }
.tv-col-code { width: 25%; }
.tv-col-code code { background: #f0f0f0; padding: 2px 6px; border-radius: 3px; font-size: 12px; color: #d54e21; }
.tv-col-name { width: 25%; }
.tv-col-votes { width: 110px; text-align: center; }
.tv-count-working { color: #46b450; font-weight: 700; }
.tv-count-broken  { color: #dc3232; font-weight: 700; }
.tv-col-actions { width: 100px; text-align: center; }
.tv-btn { padding: 5px 10px; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; font-weight: 700; transition: opacity 0.2s; }
.tv-btn:disabled { opacity: 0.5; cursor: default; }
.tv-btn-work    { background: #46b450; color: #fff; }
.tv-btn-work:hover    { background: #3a9a42; }
.tv-btn-broken  { background: #dc3232; color: #fff; }
.tv-btn-broken:hover  { background: #b71c1c; }
.tv-empty { text-align: center; color: #999; padding: 40px; }
