.pub-list-grid {
display: flex;
flex-direction: column;
gap: 0;
max-height: 420px;
overflow-y: auto;
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 8px;
box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
}
.pub-year-section {
background: #f8fafc;
border-bottom: 1px solid #e2e8f0;
}
.pub-year-title {
background: #f1f5f9;
padding: 10px 16px;
font-size: 13px;
font-weight: 800;
color: #475569;
text-transform: uppercase;
letter-spacing: 0.05em;
border-bottom: 1px solid #e2e8f0;
cursor: pointer;
user-select: none;
display: flex;
align-items: center;
justify-content: space-between;
transition: background 0.2s;
}
.pub-year-title:hover {
background: #e2e8f0;
}
.pub-year-title::after {        
content: '▼';
display: inline-block;
transition: transform 0.3s;
font-size: 10px;
margin-left: 10px;
}
.pub-year-section.collapsed .pub-year-title::after {
transform: rotate(-90deg);
}
.pub-items {
max-height: 10000px;
overflow: hidden;
transition: max-height 0.3s ease;
}
.pub-year-section.collapsed .pub-items {
max-height: 0;
}
.pub-item {
display: grid;
grid-template-columns: 1fr 80px 120px;
padding: 10px 16px;
border-bottom: 1px solid #f1f5f9;
align-items: center;
transition: background 0.1s;
gap: 12px;
}
.pub-item:hover {
background: #f8fafc;
}
.pub-item:last-child { border-bottom: none; }
.pub-link {
color: #334155;
font-weight: 600;
text-decoration: none;
line-height: 1.3;
transition: color 0.2s;
word-break: break-word;
}
.pub-link:hover { color: var(--theme-palette-color-2); } .meta-row {
display: flex;
gap: 8px;
font-size: 11px;
color: #94a3b8;
font-family: monospace; }
.year-tag {
background: #e2e8f0;
color: #475569;
padding: 2px 6px;
border-radius: 4px;
font-weight: 700;
height: 20px;
}
.type-tag {
color: var(--theme-palette-color-2);
padding: 2px 6px;
border-radius: 4px;
font-weight: 600;
height: 20px;
white-space: nowrap;
}