Files
Sdk_TV_app/static/css/pages/modern_archive_index.css

157 lines
7.2 KiB
CSS

/* ============================================================
Modern archive index page styles
============================================================ */
html, body {
height: 100vh;
overflow: hidden;
background: #f5f5f5;
}
.archive-layout {
display: flex;
height: calc(100vh - 50px);
gap: 8px;
padding: 8px 20px 30px 20px;
}
/* Left tree panel */
.left-panel {
width: 270px;
flex-shrink: 0;
display: flex;
flex-direction: column;
background: white;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
overflow: hidden;
}
.panel-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 7px 12px;
background: linear-gradient(135deg, #28a745 0%, #1e7e34 100%);
border-radius: 12px 12px 0 0;
flex-shrink: 0;
}
.panel-header-title { font-size: 0.8rem; font-weight: 700; color: white; letter-spacing: 0.3px; white-space: nowrap; }
.panel-header-count { font-size: 0.7rem; font-weight: 600; background: rgba(255,255,255,0.25); color: white; padding: 2px 7px; border-radius: 10px; }
.tree-sort-bar { display: flex; flex-direction: column; gap: 5px; padding: 6px 8px; border-bottom: 1px solid #e9ecef; flex-shrink: 0; background: #f8f9fa; }
.tree-sort-bar input { width: 100%; border: 1px solid #dee2e6; border-radius: 6px; padding: 5px 9px; font-size: 0.78rem; outline: none; background: white; box-sizing: border-box; }
.tree-sort-bar input:focus { border-color: #28a745; }
.filter-tabs { display: flex; gap: 4px; }
.filter-tab { flex: 1; padding: 2px 4px; border: 2px solid #dee2e6; background: white; cursor: pointer; font-size: 0.6rem; font-weight: 600; color: #666; border-radius: 6px; transition: all 0.15s; white-space: nowrap; text-align: center; }
.filter-tab.active { background: #28a745; border-color: #1e7e34; color: white; }
.filter-tab:hover:not(.active) { border-color: #28a745; color: #28a745; }
.tree-list { flex: 1; overflow-y: auto; overflow-x: hidden; }
.tree-list::-webkit-scrollbar { width: 5px; }
.tree-list::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }
.tree-group-header {
display: flex; align-items: center; gap: 5px;
padding: 7px 10px 3px;
font-size: 0.67rem; font-weight: 700; color: #999;
text-transform: uppercase; letter-spacing: 0.5px;
cursor: pointer; user-select: none;
}
.tree-group-header:hover { color: #666; }
.tree-toggle { font-size: 0.6rem; transition: transform 0.15s; }
.tree-group.collapsed .tree-toggle { transform: rotate(-90deg); }
.tree-group.collapsed .tree-group-items { display: none; }
.tree-item {
display: flex; align-items: center;
padding: 7px 10px 7px 14px;
cursor: pointer; border-left: 4px solid transparent;
gap: 7px; font-size: 0.8rem; color: #333; transition: all 0.15s;
}
.tree-item:hover { background: #f0faf3; border-left-color: #7dcf95; color: #1a6b30; }
.tree-item.active { background: #28a745; border-left-color: #28a745; font-weight: 700; color: white; }
.tree-item.active .tree-item-date { color: white; }
.tree-item.active .tree-item-meta { color: rgba(255,255,255,0.75); }
.tree-item.active .tbadge { background: rgba(255,255,255,0.2); color: white; }
.tree-item-info { flex: 1; min-width: 0; }
.tree-item-date { display: block; font-size: 0.8rem; font-weight: 600; }
.tree-item-meta { display: block; font-size: 0.66rem; color: #999; }
.tbadge { padding: 2px 5px; border-radius: 6px; font-size: 0.6rem; font-weight: 700; flex-shrink: 0; }
.tbadge-40 { background: #e9d8fd; color: #6b21a8; }
.tbadge-20 { background: #fef9c3; color: #b45309; }
.tbadge-4 { background: #dcfce7; color: #166534; }
.tbadge-league { background: #dbeafe; color: #1d4ed8; }
.tree-empty { padding: 24px; text-align: center; color: #bbb; font-size: 0.82rem; }
.tree-view-btn {
flex-shrink: 0; display: flex; align-items: center; justify-content: center;
width: 24px; height: 24px; border-radius: 6px;
background: rgba(0,0,0,0.06); color: #666;
font-size: 0.9rem; text-decoration: none; transition: all 0.15s;
border: 1px solid rgba(0,0,0,0.08);
}
.tree-view-btn:hover { background: #28a745; color: white; border-color: #1e7e34; }
.tree-item.active .tree-view-btn { background: rgba(255,255,255,0.2); color: white; border-color: rgba(255,255,255,0.3); }
.tree-item.active .tree-view-btn:hover { background: white; color: #28a745; }
/* Right panel */
.right-panel { flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0; }
.result-placeholder {
flex: 1; display: flex; flex-direction: column;
align-items: center; justify-content: center;
color: #ccc; gap: 10px;
background: white; border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.result-placeholder-icon { font-size: 2.5rem; }
.result-placeholder-text { font-size: 0.95rem; }
.loading-overlay {
flex: 1; display: flex; align-items: center; justify-content: center;
color: #bbb; font-size: 0.9rem;
background: white; border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.tv-container { flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.right-column { background: white; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; border: 1px solid #e9ecef; }
.table-header { background: #f8f9fa; padding: 8px 12px; border-bottom: 1px solid #dee2e6; flex-shrink: 0; }
.table-title { font-size: 0.95rem; font-weight: 600; color: #2c3e50; margin: 0; }
.table-container { flex: 1; overflow: auto; min-height: 0; }
.results-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; }
.results-table th, .results-table td { padding: 4px 6px; text-align: center; border-bottom: 1px solid #f1f3f4; border-right: 1px solid #f1f3f4; }
.results-table th { background: #f8f9fa; font-weight: 600; color: #495057; text-transform: uppercase; font-size: 0.65rem; letter-spacing: 0.3px; position: sticky; top: 0; z-index: 10; }
.results-table th.score-col { background: #e3f2fd; }
.results-table th.tens-col { background: #fff3cd; }
.results-table tbody tr:hover td { background: #f8f9fa; }
.results-table tbody tr:nth-child(1) td { background: #fff9e6; }
.results-table tbody tr:nth-child(1):hover td { background: #fff3cd; }
.results-table tbody tr:nth-child(2) td { background: #f5f5f5; }
.results-table tbody tr:nth-child(2):hover td { background: #e9ecef; }
.results-table tbody tr:nth-child(3) td { background: #fdf6f0; }
.results-table tbody tr:nth-child(3):hover td { background: #f8f1e6; }
.rank-cell { font-size: 1rem; font-weight: 700; text-align: center; }
.rank-1 { color: #b8860b; }
.rank-2 { color: #6c757d; }
.rank-3 { color: #8b4513; }
.player-cell { text-align: left !important; }
.player-name { font-size: 0.75rem; font-weight: 600; color: #2c3e50; }
.score-cell { background: #e3f2fd !important; font-size: 0.75rem; font-weight: 700; color: #1976d2; }
.tens-cell { background: #fff3cd !important; font-size: 0.75rem; font-weight: 700; color: #856404; }
.final-cell { background: #dbeafe !important; font-size: 0.75rem; font-weight: 700; color: #1d4ed8; }
.part-cell { font-size: 0.72rem; color: #888; }
.stats-footer { background: white; border-top: 1px solid #dee2e6; padding: 6px 15px; display: flex; justify-content: space-around; font-size: 0.7rem; color: #6c757d; flex-shrink: 0; }
.stat-item { text-align: center; }
.stat-value { font-weight: 600; color: #28a745; }