/**
 * Template: GeoSense template for teachPress
 * Version: 1.3
 * Author: GeoSense Lab
 *
 * Card-style publication list. Colours are exposed as CSS custom
 * properties on .tp_gs_list so a theme can override them without
 * touching this file, e.g.
 *   .tp_gs_list { --tp-gs-accent: #c2410c; }
 */

/* ---------- design tokens ---------- */
.tp_gs_list {
    --tp-gs-green:         #2e7d32;   /* site green  – change these two to match your theme exactly */
    --tp-gs-orange:        #ef6c00;   /* site orange */

    --tp-gs-accent:        var(--tp-gs-green);   /* year badge, link hover */
    --tp-gs-accent-soft:   #e8f3e9;              /* pale green: year badge background */
    --tp-gs-text:          #1f2937;
    --tp-gs-muted:         #6b7280;
    --tp-gs-border:        #e5e7eb;
    --tp-gs-card-bg:       #ffffff;
    --tp-gs-card-bg-hover: #f9fafb;
    --tp-gs-radius:        8px;

    /* publication type colours: journals green, proceedings orange,
       books a deeper orange, theses a deeper green, the rest grey */
    --tp-gs-type-article:        var(--tp-gs-green);
    --tp-gs-type-inproceedings:  var(--tp-gs-orange);
    --tp-gs-type-conference:     var(--tp-gs-orange);
    --tp-gs-type-book:           #bf5700;
    --tp-gs-type-incollection:   #bf5700;
    --tp-gs-type-inbook:         #bf5700;
    --tp-gs-type-phdthesis:      #1b5e20;
    --tp-gs-type-mastersthesis:  #1b5e20;
    --tp-gs-type-techreport:     #4b5563;
    --tp-gs-type-misc:           #4b5563;
    --tp-gs-type-online:         #4b5563;
    --tp-gs-type-unpublished:    #4b5563;
    --tp-gs-type-default:        #4b5563;
}

@media (prefers-color-scheme: dark) {
    .tp_gs_list {
        --tp-gs-green:         #66bb6a;
        --tp-gs-orange:        #ffa040;
        --tp-gs-accent-soft:   #1b3a1e;
        --tp-gs-text:          #e5e7eb;
        --tp-gs-muted:         #9ca3af;
        --tp-gs-border:        #374151;
        --tp-gs-card-bg:       #111827;
        --tp-gs-card-bg-hover: #1f2937;
        --tp-gs-type-book:     #ff8a3d;
        --tp-gs-type-phdthesis:     #4caf50;
        --tp-gs-type-mastersthesis: #4caf50;
    }
}

/* ---------- headlines (year / type sections) ---------- */
.tp_gs_list h3.tp_gs_headline {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 2.2rem 0 0.9rem 0;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--tp-gs-text);
    letter-spacing: 0.01em;
}
.tp_gs_list h3.tp_gs_headline::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--tp-gs-border);
}
.tp_gs_list h4.tp_gs_headline_sl {
    margin: 1.4rem 0 0.6rem 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--tp-gs-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ---------- publication card ---------- */
.tp_gs_list div.tp_publication {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0 0 12px 0;
    padding: 14px 16px;
    background: var(--tp-gs-card-bg);
    border: 1px solid var(--tp-gs-border);
    border-left: 4px solid var(--tp-gs-type-default);
    border-radius: var(--tp-gs-radius);
    color: var(--tp-gs-text);
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}
.tp_gs_list div.tp_publication:hover {
    background: var(--tp-gs-card-bg-hover);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* left accent follows the publication type */
.tp_gs_list div.tp_publication_article        { border-left-color: var(--tp-gs-type-article); }
.tp_gs_list div.tp_publication_inproceedings  { border-left-color: var(--tp-gs-type-inproceedings); }
.tp_gs_list div.tp_publication_conference     { border-left-color: var(--tp-gs-type-conference); }
.tp_gs_list div.tp_publication_book           { border-left-color: var(--tp-gs-type-book); }
.tp_gs_list div.tp_publication_incollection   { border-left-color: var(--tp-gs-type-incollection); }
.tp_gs_list div.tp_publication_inbook         { border-left-color: var(--tp-gs-type-inbook); }
.tp_gs_list div.tp_publication_phdthesis      { border-left-color: var(--tp-gs-type-phdthesis); }
.tp_gs_list div.tp_publication_mastersthesis  { border-left-color: var(--tp-gs-type-mastersthesis); }
.tp_gs_list div.tp_publication_techreport     { border-left-color: var(--tp-gs-type-techreport); }
.tp_gs_list div.tp_publication_misc           { border-left-color: var(--tp-gs-type-misc); }
.tp_gs_list div.tp_publication_online         { border-left-color: var(--tp-gs-type-online); }
.tp_gs_list div.tp_publication_unpublished    { border-left-color: var(--tp-gs-type-unpublished); }

/* sorting number */
.tp_gs_list div.tp_pub_number {
    flex-shrink: 0;
    min-width: 2.2rem;
    padding-top: 2px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--tp-gs-muted);
    text-align: right;
}
.tp_gs_list div.tp_pub_number::after { content: "."; }

/* images */
.tp_gs_list div.tp_pub_image_left,
.tp_gs_list div.tp_pub_image_right {
    flex-shrink: 0;
    padding-top: 2px;
}
.tp_gs_list div.tp_pub_image_left img,
.tp_gs_list div.tp_pub_image_right img,
.tp_gs_list div.tp_pub_image_bottom img {
    border-radius: 4px;
    display: block;
}
.tp_gs_list div.tp_pub_image_bottom {
    margin-top: 10px;
}

/* main column */
.tp_gs_list div.tp_pub_info {
    flex: 1 1 auto;
    min-width: 0;   /* allow long titles/DOIs to wrap inside flex */
}

/* header row: badge line (left) + year badge (right), sits above the title */
.tp_gs_list .tp_gs_head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}
.tp_gs_list p.tp_gs_badges,
#content .tp_gs_list p.tp_gs_badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    margin: 0;
    line-height: 1;
    min-height: 1.4em;
}
.tp_gs_list .tp_gs_year {
    flex-shrink: 0;
    display: inline-block;
    padding: 3px 9px;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--tp-gs-accent);
    background: var(--tp-gs-accent-soft);
    border-radius: 999px;
    letter-spacing: 0.02em;
}

/* ---------- text lines ---------- */
.tp_gs_list p.tp_pub_title,
#content .tp_gs_list p.tp_pub_title {
    margin: 0 0 4px 0;
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--tp-gs-text);
}
.tp_gs_list p.tp_pub_title a.tp_title_link {
    color: inherit;
    text-decoration: none;
    box-shadow: none;
}
.tp_gs_list p.tp_pub_title a.tp_title_link:hover {
    color: var(--tp-gs-accent);
    text-decoration: underline;
}

.tp_gs_list p.tp_pub_author,
#content .tp_gs_list p.tp_pub_author {
    margin: 0 0 3px 0;
    font-size: 0.95rem;
    line-height: 1.4;
    color: var(--tp-gs-text);
}

.tp_gs_list p.tp_pub_additional,
#content .tp_gs_list p.tp_pub_additional {
    margin: 0 0 6px 0;
    font-size: 0.92rem;
    line-height: 1.4;
    color: var(--tp-gs-muted);
}
.tp_gs_list .tp_pub_additional_in {
    font-weight: 600;
}

/* ---------- labels: type, award, status ---------- */
.tp_gs_list .tp_pub_type,
.tp_gs_list .tp_pub_label_status,
.tp_gs_list .tp_pub_label_award {
    display: inline-block;
    vertical-align: middle;
    padding: 3px 7px;
    margin: 0;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 3px;
    color: #fff;
    background: var(--tp-gs-type-default);
}
.tp_gs_list div.tp_publication_article        .tp_pub_type { background: var(--tp-gs-type-article); }
.tp_gs_list div.tp_publication_inproceedings  .tp_pub_type { background: var(--tp-gs-type-inproceedings); }
.tp_gs_list div.tp_publication_conference     .tp_pub_type { background: var(--tp-gs-type-conference); }
.tp_gs_list div.tp_publication_book           .tp_pub_type { background: var(--tp-gs-type-book); }
.tp_gs_list div.tp_publication_incollection   .tp_pub_type { background: var(--tp-gs-type-incollection); }
.tp_gs_list div.tp_publication_inbook         .tp_pub_type { background: var(--tp-gs-type-inbook); }
.tp_gs_list div.tp_publication_phdthesis      .tp_pub_type { background: var(--tp-gs-type-phdthesis); }
.tp_gs_list div.tp_publication_mastersthesis  .tp_pub_type { background: var(--tp-gs-type-mastersthesis); }
.tp_gs_list div.tp_publication_techreport     .tp_pub_type { background: var(--tp-gs-type-techreport); }
.tp_gs_list div.tp_publication_misc           .tp_pub_type { background: var(--tp-gs-type-misc); }
.tp_gs_list div.tp_publication_online         .tp_pub_type { background: var(--tp-gs-type-online); }
.tp_gs_list div.tp_publication_unpublished    .tp_pub_type { background: var(--tp-gs-type-unpublished); }

.tp_gs_list .tp_pub_label_status { background: var(--tp-gs-orange); }
.tp_gs_list .tp_pub_label_award  { background: #b45309; text-transform: none; }

/* ---------- venue meta badges (short name, quartile, impact factor) ---------- */
.tp_gs_list .tp_gs_venue {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
}
.tp_gs_list .tp_gs_meta {
    display: inline-block;
    vertical-align: middle;
    padding: 3px 7px;
    margin: 0;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.02em;
    border-radius: 3px;
    color: var(--tp-gs-text);
    background: transparent;
    border: 1px solid var(--tp-gs-border);
}
/* short venue name: outlined, follows the type colour */
.tp_gs_list .tp_gs_meta_short {
    font-weight: 700;
    color: var(--tp-gs-type-default);
    border-color: currentColor;
}
.tp_gs_list div.tp_publication_article        .tp_gs_meta_short { color: var(--tp-gs-type-article); }
.tp_gs_list div.tp_publication_inproceedings  .tp_gs_meta_short { color: var(--tp-gs-type-inproceedings); }
.tp_gs_list div.tp_publication_conference     .tp_gs_meta_short { color: var(--tp-gs-type-conference); }
.tp_gs_list div.tp_publication_book           .tp_gs_meta_short { color: var(--tp-gs-type-book); }
.tp_gs_list div.tp_publication_incollection   .tp_gs_meta_short { color: var(--tp-gs-type-incollection); }
.tp_gs_list div.tp_publication_inbook         .tp_gs_meta_short { color: var(--tp-gs-type-inbook); }
.tp_gs_list div.tp_publication_phdthesis      .tp_gs_meta_short { color: var(--tp-gs-type-phdthesis); }
.tp_gs_list div.tp_publication_mastersthesis  .tp_gs_meta_short { color: var(--tp-gs-type-mastersthesis); }
.tp_gs_list div.tp_publication_techreport     .tp_gs_meta_short { color: var(--tp-gs-type-techreport); }

/* quartile: filled, green → orange by rank (Q1 best) */
.tp_gs_list .tp_gs_meta_quartile {
    color: #fff;
    border-color: transparent;
    background: #6b7280;
}
.tp_gs_list .tp_gs_meta_q_q1 { background: var(--tp-gs-green); }
.tp_gs_list .tp_gs_meta_q_q2 { background: #7cb342; }
.tp_gs_list .tp_gs_meta_q_q3 { background: var(--tp-gs-orange); }
.tp_gs_list .tp_gs_meta_q_q4 { background: #bf5700; }

/* impact factor: quiet, muted */
.tp_gs_list .tp_gs_meta_if {
    color: var(--tp-gs-muted);
}
.tp_gs_list .tp_gs_meta_if abbr {
    text-decoration: none;
    border: 0;
    font-weight: 700;
    letter-spacing: 0.06em;
}

/* ---------- menu line (tags / links / bibtex / abstract) ---------- */
.tp_gs_list p.tp_pub_menu,
#content .tp_gs_list p.tp_pub_menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 0;
    margin: 4px 0 0 0;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--tp-gs-muted);
}
.tp_gs_list p.tp_pub_menu a {
    color: var(--tp-gs-muted);
    text-decoration: none;
    box-shadow: none;
    border-bottom: 1px dotted var(--tp-gs-muted);
    cursor: pointer;
}
.tp_gs_list p.tp_pub_menu a:hover {
    color: var(--tp-gs-accent);
    border-bottom-color: var(--tp-gs-accent);
}
/* the custom separator used in get_settings()['button_separator'] */
.tp_gs_list .tp_gs_sep {
    display: inline-block;
    width: 1px;
    height: 0.9em;
    margin: 0 9px;
    background: var(--tp-gs-border);
    vertical-align: -0.1em;
}
/* teachPress prepends a separator inside .tp_resource_link (image/direct link
   style). Hide it when it would be the first item or follow another separator. */
.tp_gs_list p.tp_pub_menu > .tp_resource_link:first-child > .tp_gs_sep:first-child,
.tp_gs_list p.tp_pub_menu > .tp_gs_sep + .tp_resource_link > .tp_gs_sep:first-child {
    display: none;
}
.tp_gs_list .tp_pub_tags_label,
.tp_gs_list .tp_pub_links_label {
    font-weight: 600;
}
/* link icons rendered by prepare_url() in enumeration mode */
.tp_gs_list a.tp_pub_link {
    border-bottom: none;
    margin-right: 4px;
}
.tp_gs_list a.tp_pub_link i {
    font-size: 1rem;
    vertical-align: middle;
}

/* ---------- expandable detail containers ---------- */
.tp_gs_list div.tp_bibtex,
.tp_gs_list div.tp_abstract,
.tp_gs_list div.tp_links,
.tp_gs_list div.tp_comment,
.tp_gs_list div.tp_altmetric,
.tp_gs_list div.tp_dimensions,
.tp_gs_list div.tp_plumx {
    margin: 10px 0 0 0;
    padding: 10px 12px;
    background: var(--tp-gs-card-bg-hover);
    border: 1px solid var(--tp-gs-border);
    border-radius: 6px;
}
.tp_gs_list .tp_bibtex_entry {
    font-size: 0.8rem;
}
.tp_gs_list .tp_bibtex_entry pre {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    white-space: pre-wrap;
    word-wrap: break-word;
    font-size: 0.8rem;
    line-height: 1.45;
    color: var(--tp-gs-text);
}
.tp_gs_list .tp_abstract_entry,
.tp_gs_list .tp_comment_entry {
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--tp-gs-text);
}
.tp_gs_list ul.tp_pub_list {
    margin: 0;
    padding: 0;
}
.tp_gs_list ul.tp_pub_list li {
    margin: 0;
    padding: 3px 0;
    list-style: none;
    font-size: 0.9rem;
}
.tp_gs_list ul.tp_pub_list li a {
    color: var(--tp-gs-accent);
}
.tp_gs_list p.tp_close_menu {
    margin: 8px 0 0 0;
    text-align: right;
}
.tp_gs_list .tp_close {
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--tp-gs-muted);
}
.tp_gs_list .tp_close:hover {
    color: var(--tp-gs-accent);
}

/* ---------- responsive ---------- */
@media (max-width: 767.98px) {
    .tp_gs_list div.tp_publication {
        flex-flow: column;
        gap: 8px;
        padding: 12px 14px;
    }
    .tp_gs_list div.tp_pub_number {
        text-align: left;
        min-width: 0;
    }
    .tp_gs_list .tp_gs_head {
        align-items: flex-start;
        gap: 8px;
    }
    .tp_gs_list p.tp_pub_title,
    #content .tp_gs_list p.tp_pub_title {
        font-size: 1rem;
    }
}

/* ---------- print ---------- */
@media print {
    .tp_gs_list div.tp_publication {
        break-inside: avoid;
        box-shadow: none;
        background: #fff;
    }
    .tp_gs_list p.tp_pub_menu,
    .tp_gs_list p.tp_close_menu {
        display: none;
    }
}
