/* Latest publications module. Override the variables below in your template CSS to re-theme. */
.pubs-latest {
    --pl-accent: #17a2b8;
    --pl-ink: #1f2d3d;
    --pl-muted: #5f6f7f;
    --pl-card: #f4fafc;
    --pl-card-hover: #fff;
    --pl-line: #d9ecf1;
    --pl-t-ij: #0e7c8f;  --pl-t-ij-bg: #dff3f7;
    --pl-t-ej: #1d4ed8;  --pl-t-ej-bg: #e3ebfd;
    --pl-t-ic: #a05a00;  --pl-t-ic-bg: #fdefd6;
    --pl-t-ec: #7e3fb5;  --pl-t-ec-bg: #f0e5fa;
    direction: rtl;
    text-align: right;
    color: var(--pl-ink);
}
.pubs-latest-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }

.pubs-latest-item {
    --pl-c: var(--pl-accent);
    --pl-c-bg: var(--pl-t-ij-bg);
    position: relative;
    padding: .75rem 1rem .75rem .9rem;
    background: var(--pl-card);
    border: 1px solid var(--pl-line);
    border-right: 4px solid var(--pl-c);
    border-radius: 8px;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.pubs-latest-item:hover, .pubs-latest-item:focus-within {
    background: var(--pl-card-hover);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(23, 80, 100, .12);
}
.pubs-latest-item--internal_journal    { --pl-c: var(--pl-t-ij); --pl-c-bg: var(--pl-t-ij-bg); }
.pubs-latest-item--external_journal    { --pl-c: var(--pl-t-ej); --pl-c-bg: var(--pl-t-ej-bg); }
.pubs-latest-item--internal_conference { --pl-c: var(--pl-t-ic); --pl-c-bg: var(--pl-t-ic-bg); }
.pubs-latest-item--external_conference { --pl-c: var(--pl-t-ec); --pl-c-bg: var(--pl-t-ec-bg); }

.pubs-latest-title {
    display: block;
    color: var(--pl-ink);
    font-weight: 700;
    line-height: 1.85;
    text-decoration: none;
}
.pubs-latest-title:hover, .pubs-latest-title:focus { color: var(--pl-c); }

.pubs-latest-authors { margin-top: .1rem; color: var(--pl-muted); font-size: .88em; line-height: 1.7; }

.pubs-latest-meta {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: .35rem .65rem;
    margin-top: .4rem;
    font-size: .86em; line-height: 1.6;
}
.pubs-latest-type {
    display: inline-block;
    padding: .05rem .65rem;
    border-radius: 999px;
    background: var(--pl-c-bg);
    color: var(--pl-c);
    font-weight: 700; font-size: .92em;
    white-space: nowrap;
}
.pubs-latest-source { display: inline-flex; align-items: center; gap: .3rem; color: var(--pl-muted); }
.pubs-latest-icon { flex: 0 0 auto; color: var(--pl-c); opacity: .85; }
.pubs-latest-date { color: var(--pl-muted); }

.pubs-latest-empty { margin: 0; padding: .75rem 1rem; border: 1px dashed var(--pl-line); border-radius: 8px; color: var(--pl-muted); }

.pubs-latest-more { margin-top: .9rem; text-align: left; }
.pubs-latest-more a {
    display: inline-flex; align-items: center; gap: .45rem;
    padding: .4rem 1.1rem;
    border-radius: 999px;
    background: var(--pl-accent);
    color: #fff;
    font-weight: 700; font-size: .92em;
    text-decoration: none;
    transition: background-color .18s ease, box-shadow .18s ease;
}
.pubs-latest-more a:hover, .pubs-latest-more a:focus { background: #128a9d; color: #fff; box-shadow: 0 4px 12px rgba(23, 162, 184, .35); }
.pubs-latest-arrow { transition: transform .18s ease; }
.pubs-latest-more a:hover .pubs-latest-arrow, .pubs-latest-more a:focus .pubs-latest-arrow { transform: translateX(-3px); }

@media (prefers-reduced-motion: reduce) {
    .pubs-latest-item, .pubs-latest-more a, .pubs-latest-arrow { transition: none; }
    .pubs-latest-item:hover, .pubs-latest-item:focus-within { transform: none; }
}

/* ---------- Tabs ---------- */
.pubs-latest-tabs {
    display: flex;
    gap: .35rem;
    margin-bottom: .85rem;
    padding: .3rem;
    overflow-x: auto;
    scrollbar-width: thin;
    background: var(--pl-card);
    border: 1px solid var(--pl-line);
    border-radius: 999px;
}
.pubs-latest-tab {
    --pl-c: var(--pl-accent);
    flex: 0 0 auto;
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: .38rem 1rem;
    background: transparent;
    color: var(--pl-muted);
    font: inherit;
    font-size: .9em;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.pubs-latest-tab:hover { color: var(--pl-c); background: rgba(23, 162, 184, .08); }
.pubs-latest-tab:focus-visible { outline: 2px solid var(--pl-c); outline-offset: 2px; }
.pubs-latest-tab.is-active { background: var(--pl-c); color: #fff; box-shadow: 0 3px 10px rgba(0, 0, 0, .18); }
.pubs-latest-tab--internal_journal    { --pl-c: var(--pl-t-ij); }
.pubs-latest-tab--external_journal    { --pl-c: var(--pl-t-ej); }
.pubs-latest-tab--internal_conference { --pl-c: var(--pl-t-ic); }
.pubs-latest-tab--external_conference { --pl-c: var(--pl-t-ec); }

.pubs-latest-panel[hidden] { display: none; }
.pubs-latest-panel { animation: pubs-latest-fade .22s ease; }
@keyframes pubs-latest-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .pubs-latest-panel { animation: none; } .pubs-latest-tab { transition: none; } }

/* ---------- Dropdown mode ---------- */
.pubs-latest-select-wrap { position: relative; margin-bottom: .85rem; }
/* The arrow is a real element (not a background image) so template CSS that resets
   `select { background: ... }` cannot hide it. */
.pubs-latest .pubs-latest-select {
    display: block;
    width: 100%;
    height: 2.6rem;
    margin: 0;
    padding: 0 1.1rem 0 3rem;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    border: 1px solid var(--pl-accent);
    border-radius: 999px;
    background: var(--pl-card);
    color: var(--pl-ink);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    text-align: right;
    direction: rtl;
}
.pubs-latest .pubs-latest-select:hover { background: var(--pl-card-hover); }
.pubs-latest .pubs-latest-select:focus { outline: 0; border-color: var(--pl-accent); box-shadow: 0 0 0 3px rgba(23, 162, 184, .25); }
.pubs-latest-caret {
    position: absolute;
    left: .35rem;
    top: 50%;
    width: 1.9rem;
    height: 1.9rem;
    padding: .38rem;
    box-sizing: border-box;
    transform: translateY(-50%);
    border-radius: 50%;
    background: var(--pl-accent);
    color: #fff;
    pointer-events: none;
}
