



.res-toolbar {
    display: flex; align-items: center; justify-content: flex-end;
    gap: 16px; padding: 0 0 12px; margin-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.res-toolbar-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    min-width: 0;
}
.view-switch { display: flex; gap: 4px; }
.view-btn {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-card);   
    border: 1px solid var(--color-border);
    background: var(--color-bg-page-soft);
    color: var(--color-text-dim);
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s;
}
.view-btn:hover { border-color: var(--color-accent); color: var(--color-accent); }
.view-btn.active { background: var(--color-accent); color: var(--color-accent-ink); border-color: var(--color-accent); }


.view-btn.is-disabled { opacity:.45; cursor:not-allowed; color:var(--color-text-dim); background:var(--color-bg-page-soft); border-color:var(--color-border); }
.view-btn.is-disabled:hover { border-color:var(--color-border); color:var(--color-text-dim); }



.res-grid { display:grid; gap:16px; align-items:start; }

.res-compact {
    display: none;
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    counter-reset: resIdx;
}
.res-compact .resource-item .idx { counter-increment: resIdx; }
.res-compact .resource-item .idx::before { content: counter(resIdx); }

.res-compact-meta {
    display: none;
    margin-left: auto;
    align-items: center;
    flex-shrink: 0;
    gap: 6px;
}
.res-compact .resource-item:hover .res-compact-meta { display: flex; }

.res-compact-meta > span {
    background: var(--color-bg-tag);
    color: var(--color-text-secondary);
    border-radius: var(--radius-sm);
    padding: 2px 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.res-compact .resource-item:hover .res-compact-meta > span {
    color: var(--color-accent);
}

@media (max-width: 767px) {
    .res-compact-meta,
    .res-compact .resource-item:hover .res-compact-meta { display: none; }
}

.doc-view-list .res-list { display:flex; }
.doc-view-list .res-grid { display:none; }
.doc-view-list .res-compact { display:none; }
.doc-view-compact .res-list { display:none; }
.doc-view-compact .res-grid { display:none; }
.doc-view-compact .res-compact { display:grid; }
.doc-view-grid .res-list { display:none; }
.doc-view-grid .res-compact { display:none; }
.res-search-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 18px 18px;
    margin-bottom: 16px;
    background: var(--color-accent-soft);
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-sm);
    font-size: 13px;
    color: var(--color-text-primary);
}
.res-search-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
}
.res-search-count strong {
    color: var(--color-text-title);
    font-weight: 700;
}
.res-search-form {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    max-width: 640px;
}

.res-search-field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}
.res-search-input {
    width: 100%;
    height: 52px;
    padding: 0 46px 0 18px;
    font-size: 15px;
    color: var(--color-text-primary);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}
.res-search-input::placeholder { color: var(--color-text-dim); }
.res-search-input:focus {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 1px var(--color-accent-soft);
}

.res-search-submit {
    position: absolute;
    top: 50%;
    right: 7px;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    color: var(--color-accent);
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background .2s, color .2s;
}
.res-search-submit:hover {
    color: var(--color-text-invert);
    background: var(--color-accent);
}
.res-search-submit svg { display: block; }
