/*
 * Genesis Publications — stylesheet
 * Matches the UI of publications.genesisrg.com
 */

/* ── Variables ──────────────────────────────────────────────────────────── */
.genesis-pub-wrap {
    --gp-orange:      #e8630a;
    --gp-orange-dark: #c45508;
    --gp-red:         #c0392b;
    --gp-bg:          #f9f9f9;
    --gp-white:       #ffffff;
    --gp-border:      #e2e2e2;
    --gp-text:        #333333;
    --gp-text-muted:  #666666;
    --gp-blue-link:   #2563eb;
    --gp-radius:      4px;
    --gp-font:        -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

    font-family: var(--gp-font);
    color:       var(--gp-text);
    max-width:   900px;
    margin:      0 auto;
    padding:     0 0 48px;
    box-sizing:  border-box;
}

.genesis-pub-wrap *, .genesis-pub-wrap *::before, .genesis-pub-wrap *::after {
    box-sizing: inherit;
}

/* ── Search panel ───────────────────────────────────────────────────────── */
.genesis-pub-panel {
    background:    var(--gp-white);
    border:        1px solid var(--gp-border);
    border-radius: var(--gp-radius);
    padding:       32px 40px 28px;
    margin-bottom: 32px;
    text-align:    center;
}

.genesis-pub-panel-title {
    font-size:     22px;
    font-weight:   700;
    color:         #1a2a4a;
    margin:        0 0 24px;
    text-align:    center;
}

.genesis-pub-panel-intro {
    font-size: 14px;
}

/* Fields */
.genesis-pub-field {
    display:        flex;
    flex-direction: column;
    text-align:     left;
    gap:            5px;
    margin-bottom:  16px;
}

.genesis-pub-field label {
    font-size:   13px;
    font-weight: 600;
    color:       var(--gp-text);
}

.genesis-pub-search {
    width:         100%;
    padding:       9px 14px;
    border:        1px solid var(--gp-border);
    border-radius: var(--gp-radius);
    font-size:     14px;
    font-family:   var(--gp-font);
    color:         var(--gp-text);
    background:    var(--gp-white);
    outline:       none;
    transition:    border-color .15s;
    -webkit-appearance: none;
}

.genesis-pub-search:focus {
    border-color: var(--gp-orange);
    box-shadow:   0 0 0 2px rgba(232,99,10,.15);
}

.genesis-pub-search::placeholder {
    color:     var(--gp-text-muted);
    font-size: 13px;
}

/* Two-column row for dropdowns */
.genesis-pub-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

.genesis-pub-select {
    padding:       9px 32px 9px 12px;
    border:        1px solid var(--gp-border);
    border-radius: var(--gp-radius);
    font-size:     14px;
    font-family:   var(--gp-font);
    color:         var(--gp-text);
    background:    var(--gp-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 12px center;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    cursor: pointer;
    width: 100%;
    transition: border-color .15s;
}

.genesis-pub-select:focus {
    border-color: var(--gp-orange);
    box-shadow:   0 0 0 2px rgba(232,99,10,.15);
}

/* Submit button */
.genesis-pub-submit-btn {
    display:       inline-block;
    padding:       10px 28px;
    background:    var(--gp-orange);
    color:         var(--gp-white);
    border:        none;
    border-radius: var(--gp-radius);
    font-size:     14px;
    font-weight:   600;
    font-family:   var(--gp-font);
    cursor:        pointer;
    transition:    background .15s;
    margin-top:    4px;
}

.genesis-pub-submit-btn:hover {
    background: var(--gp-orange-dark);
}

.genesis-pub-submit-btn:focus-visible {
    outline: 3px solid var(--gp-orange);
    outline-offset: 2px;
}

/* ── Results header ─────────────────────────────────────────────────────── */
.genesis-pub-results-header {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    margin-bottom:   16px;
    flex-wrap:       wrap;
    gap:             12px;
}

.genesis-pub-results-title {
    font-size:   16px;
    font-weight: 700;
    color:       var(--gp-orange);
    margin:      0;
}

.genesis-pub-per-page-wrap {
    display:     flex;
    align-items: center;
    gap:         8px;
    font-size:   13px;
    color:       var(--gp-text-muted);
    font-weight: 600;
}

.genesis-pub-per-page {
    width:      70px;
    padding:    6px 24px 6px 10px;
    font-size:  13px;
}

/* ── Publication cards ──────────────────────────────────────────────────── */
.genesis-pub-results {
    display:        flex;
    flex-direction: column;
    gap:            12px;
}

.genesis-pub-card {
    background:    var(--gp-white);
    border:        1px solid var(--gp-border);
    border-radius: var(--gp-radius);
    padding:       18px 22px 14px;
}

.genesis-pub-card-header {
    display:     flex;
    align-items: center;
    gap:         8px;
    margin-bottom: 8px;
}

.genesis-pub-bookmark {
    display:     flex;
    align-items: center;
    flex-shrink: 0;
}

.genesis-pub-card-label {
    font-size:   13px;
    font-weight: 700;
    color:       var(--gp-red);
}

/* Citation text */
.genesis-pub-citation {
    font-size:     14px;
    line-height:   1.6;
    color:         var(--gp-text);
    margin-bottom: 10px;
}

.genesis-pub-citation strong {
    font-weight: 700;
}

.genesis-pub-citation em {
    font-style: italic;
}

/* View article link */
.genesis-pub-link-wrap {
    margin: 2px 0 12px;
}

.genesis-pub-link {
    display:         inline-flex;
    align-items:     center;
    gap:             8px;
    max-width:       100%;
    padding:         8px 13px;
    border:          1px solid rgba(232,99,10,.28);
    border-left:     3px solid var(--gp-orange);
    border-radius:   var(--gp-radius);
    background:      #fff4ed;
    color:           #9a3f06;
    font-size:       13px;
    font-weight:     700;
    line-height:     1.2;
    text-decoration: none;
    box-shadow:      0 1px 2px rgba(0,0,0,.04);
    transition:      background .15s, border-color .15s, color .15s, box-shadow .15s;
}

.genesis-pub-link::after {
    content:     "\2192";
    display:     inline-block;
    flex-shrink: 0;
    font-size:   15px;
    line-height: 1;
    transition:  transform .15s;
}

.genesis-pub-link:visited {
    color: #9a3f06;
}

.genesis-pub-link:hover {
    background:   var(--gp-orange);
    border-color: var(--gp-orange);
    color:        var(--gp-white);
    box-shadow:   0 3px 8px rgba(232,99,10,.18);
}

.genesis-pub-link:hover::after {
    transform: translateX(2px);
}

.genesis-pub-link:focus-visible {
    outline:        3px solid var(--gp-orange);
    outline-offset: 2px;
}

/* Meta line */
.genesis-pub-meta {
    font-size:  13px;
    color:      var(--gp-text-muted);
    margin-top: 6px;
    line-height: 1.5;
}

.genesis-pub-meta strong {
    font-weight: 600;
    color:       var(--gp-text);
}

/* ── States ─────────────────────────────────────────────────────────────── */
.genesis-pub-loading,
.genesis-pub-no-results,
.genesis-pub-error {
    text-align:    center;
    padding:       40px 24px;
    color:         var(--gp-text-muted);
    font-size:     14px;
    background:    var(--gp-white);
    border:        1px solid var(--gp-border);
    border-radius: var(--gp-radius);
}

.genesis-pub-error {
    color:        #c0392b;
    border-color: #f5c6cb;
    background:   #fff5f5;
}

/* ── Pagination ─────────────────────────────────────────────────────────── */
.genesis-pub-pagination {
    display:         flex;
    justify-content: center;
    align-items:     center;
    gap:             4px;
    margin-top:      28px;
}

.genesis-pub-pg-btn {
    min-width:     36px;
    height:        36px;
    padding:       0 10px;
    border:        1px solid var(--gp-border);
    border-radius: var(--gp-radius);
    background:    var(--gp-white);
    color:         var(--gp-text);
    font-size:     14px;
    font-family:   var(--gp-font);
    cursor:        pointer;
    transition:    background .12s, color .12s, border-color .12s;
}

.genesis-pub-pg-btn:hover:not(:disabled):not(.is-active) {
    background:   #f0f0f0;
    border-color: #bbb;
}

.genesis-pub-pg-btn.is-active {
    background:   var(--gp-orange);
    color:        var(--gp-white);
    border-color: var(--gp-orange);
    font-weight:  700;
    cursor:       default;
}

.genesis-pub-pg-btn.genesis-pub-pg-arrow {
    font-size: 18px;
    color:     var(--gp-text-muted);
}

.genesis-pub-pg-btn:disabled {
    opacity: .35;
    cursor:  not-allowed;
}

.genesis-pub-pg-btn:focus-visible {
    outline:        3px solid var(--gp-orange);
    outline-offset: 2px;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media ( max-width: 600px ) {
    .genesis-pub-panel {
        padding: 20px 16px;
    }

    .genesis-pub-row {
        grid-template-columns: 1fr;
    }
}

/* ── Reduced motion ─────────────────────────────────────────────────────── */
@media ( prefers-reduced-motion: reduce ) {
    .genesis-pub-search,
    .genesis-pub-select,
    .genesis-pub-submit-btn,
    .genesis-pub-pg-btn,
    .genesis-pub-link,
    .genesis-pub-link::after {
        transition: none;
    }
}

/* ── Screen reader only ─────────────────────────────────────────────────── */
.screen-reader-text {
    position:   absolute !important;
    width:      1px;
    height:     1px;
    padding:    0;
    margin:     -1px;
    overflow:   hidden;
    clip:       rect(0,0,0,0);
    white-space: nowrap;
    border:     0;
}
