:root {
    --lb-teal-900: #162f6a;
    --lb-teal-700: #162f6a;
    --lb-teal-200: #d2dfff;
    --lb-teal-100: #d2dfff;
}

.maincontent { font-family: 'Noto Sans', system-ui, sans-serif; padding-bottom: 56px; }
.maincontent .material-symbols-outlined { font-size: 24px; line-height: 1; }

/* Toolbar: one line on desktop, wraps on smaller screens */
.lb-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.lb-toolbar .input-group { flex: 1 1 100%; flex-wrap: nowrap; min-width: 0; }

@media (min-width: 992px) {
    .lb-toolbar { flex-wrap: nowrap; }
    .lb-toolbar .searchField   { flex: 1 1 0; min-width: 160px; }
    .lb-toolbar .sortField     { flex: 0 1 190px; }
    .lb-toolbar .categoryField { flex: 0 1 220px; }
    .lb-toolbar .perPageField  { flex: 0 1 180px; }
}

@media (min-width: 576px) and (max-width: 991px) {
    .lb-toolbar .sortField,
    .lb-toolbar .categoryField,
    .lb-toolbar .perPageField { flex: 1 1 30%; }
}

.maincontent .input-group-text {
    background: #fff;
    border: 1px solid var(--lb-teal-700);
    border-right: 0;
    border-radius: 4px 0 0 4px;
    color: var(--lb-teal-700);
}

.maincontent .form-control,
.maincontent .form-select {
    height: 50px;
    border: 1px solid var(--lb-teal-700);
    border-left: 0;
    border-radius: 0 4px 4px 0;
    box-shadow: none;
}

.maincontent .form-control:focus,
.maincontent .form-select:focus { outline: 3px solid #f2b705; outline-offset: 2px; }

/* Table header */
.tableheader {
    height: 50px;
    padding: 0 24px;
    border-radius: 4px;
    background: var(--lb-teal-200);
}
.tableheader h5 {
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .06em;
    color: var(--lb-teal-700);
}

/* Rows */
.announcementbox {
    min-height: 82px;
    margin-top: 8px;
    padding: 10px 24px;
    border: 1px solid #e6e6e6;
    border-radius: 6px;
    background: #fff;
}
.announcementbox:hover { border-color: var(--lb-teal-200); }
.announcementbox .document-title { font-size: 1.1rem; line-height: 1.37; }

.table-column,
.ptype { color: var(--lb-teal-700); font-weight: 600; font-size: .9rem; }

.type-size { gap: 8px; }
.type-size .material-symbols-outlined { font-size: 32px; color: #333; }
.type-size small { color: var(--lb-teal-700); font-weight: 600; font-size: .9rem; }

.download-btn {
    justify-content: center;
    gap: 10px;
    height: 45px;
    min-width: 128px;
    padding: 0 18px;
    border: 0;
    border-radius: 4px;
    background: var(--lb-teal-100);
    color: var(--lb-teal-900);
    font-weight: 600;
    letter-spacing: .06em;
    text-decoration: none;
    transition: background .15s;
}
.download-btn:hover { background: #ffff; color: var(--lb-teal-900); }
.download-btn:focus-visible { outline: 3px solid #f2b705; outline-offset: 2px; }

.lb-empty { padding: 40px 12px; text-align: center; color: #5b6670; }

/* Footer and pagination */
.lb-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 24px;
}

.pagination { gap: 4px; }
.pagination .page-link {
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--lb-teal-700);
    font-weight: 700;
    box-shadow: none;
}
.pagination .page-link:hover { background: #e6f4f4; color: var(--lb-teal-900); }
.pagination .page-link:focus-visible { outline: 3px solid #f2b705; outline-offset: 2px; }
.pagination .active .page-link { background: var(--lb-teal-200); color: var(--lb-teal-900); }
.pagination .disabled .page-link { color: #9aa5ab; background: transparent; }
.pagination .ellipsis span { display: inline-flex; align-items: center; height: 40px; padding: 0 4px; color: var(--lb-teal-700); }

@media (max-width: 991px) {
    .announcementbox { padding: 14px 16px; }
        .download-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .download-btn { transition: none; }
}
