/**
 * Sora WP Debates - Frontend CSS
 *
 * @package  SoraStudios\Debates
 * @author   Albert C.H - Sora Studios <sorastudios.com>
 * @version  1.0.0
 */

/* ─── Custom Properties ────────────────────────────────────────────────────── */
:root {
    --sora-primary:        #f0c040;
    --sora-primary-dark:   #d4a820;
    --sora-primary-light:  #fef9e7;
    --sora-text:           #1a1a2e;
    --sora-text-secondary: #6b7280;
    --sora-text-light:     #9ca3af;
    --sora-bg:             #ffffff;
    --sora-bg-subtle:      #f9fafb;
    --sora-border:         #e5e7eb;
    --sora-border-focus:   #f0c040;
    --sora-success:        #10b981;
    --sora-danger:         #ef4444;
    --sora-danger-light:   #fef2f2;
    --sora-shadow-sm:      0 1px 3px rgba(0,0,0,.08);
    --sora-shadow-md:      0 4px 16px rgba(0,0,0,.12);
    --sora-shadow-lg:      0 8px 40px rgba(0,0,0,.18);
    --sora-radius-sm:      6px;
    --sora-radius-md:      10px;
    --sora-radius-lg:      16px;
    --sora-radius-full:    9999px;
    --sora-transition:     .2s ease;
    --sora-font:           inherit;
    --sora-popup-max-w:    520px;
}

/* ─── Reset / Base ─────────────────────────────────────────────────────────── */
.sora-debate-opinion,
.sora-popup,
.sora-opinions-section,
.sora-btn,
.sora-form-input,
.sora-form-textarea,
.sora-toast,
.sora-debate-badge {
    box-sizing: border-box;
    font-family: var(--sora-font);
}

/* ─── Buttons ───────────────────────────────────────────────────────────────── */
.sora-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             .5rem;
    padding:         .6rem 1.2rem;
    border-radius:   var(--sora-radius-sm);
    border:          2px solid transparent;
    font-weight:     600;
    font-size:       .875rem;
    cursor:          pointer;
    transition:      background var(--sora-transition), color var(--sora-transition), border-color var(--sora-transition), opacity var(--sora-transition);
    text-decoration: none;
    white-space:     nowrap;
    line-height:     1.4;
}
.sora-btn svg { width: 1rem; height: 1rem; flex-shrink: 0; }
.sora-btn:disabled { opacity: .55; cursor: not-allowed; }

.sora-btn--primary {
    background: var(--sora-primary);
    color:      var(--sora-text);
    border-color: var(--sora-primary);
}
.sora-btn--primary:hover:not(:disabled) {
    background:   var(--sora-primary-dark);
    border-color: var(--sora-primary-dark);
}

.sora-btn--secondary {
    background:   var(--sora-bg-subtle);
    color:        var(--sora-text);
    border-color: var(--sora-border);
}
.sora-btn--secondary:hover:not(:disabled) {
    background: var(--sora-border);
}

.sora-btn--outline {
    background:   transparent;
    color:        var(--sora-text);
    border-color: var(--sora-border);
}
.sora-btn--outline:hover:not(:disabled) {
    background:   var(--sora-bg-subtle);
    border-color: var(--sora-primary);
}

.sora-btn--ghost {
    background:   transparent;
    color:        var(--sora-text-secondary);
    border-color: transparent;
}
.sora-btn--ghost:hover:not(:disabled) {
    background: var(--sora-bg-subtle);
    color:      var(--sora-text);
}

.sora-btn--danger {
    background:   transparent;
    color:        var(--sora-danger);
    border-color: var(--sora-danger);
}
.sora-btn--danger:hover:not(:disabled) {
    background: var(--sora-danger-light);
}

.sora-btn--full { width: 100%; justify-content: center; }

/* ─── Badge ─────────────────────────────────────────────────────────────────── */
.sora-debate-badge {
    display:       inline-flex;
    align-items:   center;
    padding:       .2rem .65rem;
    border-radius: var(--sora-radius-full);
    font-size:     .75rem;
    font-weight:   700;
    letter-spacing:.03em;
    text-transform: uppercase;
}
.sora-debate-badge--open {
    background: var(--sora-primary-light);
    color:      var(--sora-text);
}
.sora-debate-badge--closed {
    background: var(--sora-secondary);
    color:      var(--sora-text-secondary);
}

/* ─── Popup overlay ─────────────────────────────────────────────────────────── */
.sora-popup-overlay {
    position:        fixed;
    inset:           0;
    background:      rgba(0,0,0,.55);
    z-index:         99999;
    display:         flex;
    align-items:     center;
    justify-content: center;
    padding:         1rem;
    overflow-y:      auto;
    backdrop-filter: blur(3px);
    animation:       soraFadeIn .2s ease;
}
.sora-popup-overlay[hidden] { display: none; }

body.sora-popup-open { overflow: hidden; }

@keyframes soraFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ─── Popup ─────────────────────────────────────────────────────────────────── */
.sora-popup {
    background:    var(--sora-bg);
    border-radius: var(--sora-radius-lg);
    box-shadow:    var(--sora-shadow-lg);
    width:         100%;
    max-width:     var(--sora-popup-max-w);
    max-height:    90vh;
    overflow-y:    auto;
    display:       flex;
    flex-direction:column;
    animation:     soraSlideUp .25s ease;
}

@keyframes soraSlideUp {
    from { transform: translateY(16px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}

/* Popup header */
.sora-popup-header {
    display:        flex;
    align-items:    flex-start;
    gap:            .75rem;
    padding:        1.25rem 1.25rem 1rem;
    border-bottom:  1px solid var(--sora-border);
    position:       sticky;
    top:            0;
    background:     var(--sora-bg);
    z-index:        1;
}
.sora-popup-header-icon {
    width:           2.25rem;
    height:          2.25rem;
    min-width:       2.25rem;
    background:      var(--sora-primary-light);
    border-radius:   var(--sora-radius-sm);
    display:         flex;
    align-items:     center;
    justify-content: center;
}
.sora-popup-header-icon svg { width: 1.1rem; height: 1.1rem; color: var(--sora-primary-dark); }

.sora-popup-title {
    margin:      0 0 .2rem;
    font-size:   1rem;
    font-weight: 700;
    color:       var(--sora-text);
    line-height: 1.3;
}
.sora-popup-subtitle {
    margin:    0;
    font-size: .8rem;
    color:     var(--sora-text-secondary);
}

.sora-popup-close {
    margin-left: auto;
    background:  transparent;
    border:      none;
    cursor:      pointer;
    padding:     .25rem;
    border-radius: var(--sora-radius-sm);
    color:       var(--sora-text-secondary);
    display:     flex;
    align-items: center;
    transition:  background var(--sora-transition), color var(--sora-transition);
    flex-shrink: 0;
}
.sora-popup-close:hover { background: var(--sora-bg-subtle); color: var(--sora-text); }
.sora-popup-close svg   { width: 1.1rem; height: 1.1rem; }

/* Popup body */
.sora-popup-body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    overflow-y: auto;
}

/* Popup footer */
.sora-popup-footer {
    padding:       1rem 1.25rem 1.25rem;
    border-top:    1px solid var(--sora-border);
    display:       flex;
    flex-direction:column;
    gap:           .6rem;
    position:      sticky;
    bottom:        0;
    background:    var(--sora-bg);
}

/* ─── Form fields ───────────────────────────────────────────────────────────── */
.sora-form-field {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.sora-form-label {
    font-size:   .8125rem;
    font-weight: 600;
    color:       var(--sora-text);
    display:     flex;
    align-items: center;
    gap:         .3rem;
}
.sora-required  { color: var(--sora-danger); }
.sora-optional  { color: var(--sora-text-light); font-weight: 400; }
.sora-selected-count { color: var(--sora-text-secondary); font-weight: 400; }

.sora-form-input,
.sora-form-textarea {
    width:         100%;
    padding:       .6rem .85rem;
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-sm);
    font-size:     .9rem;
    color:         var(--sora-text);
    background:    var(--sora-bg);
    transition:    border-color var(--sora-transition), box-shadow var(--sora-transition);
    outline:       none;
    font-family:   var(--sora-font);
    line-height:   1.5;
}
.sora-form-input::placeholder,
.sora-form-textarea::placeholder { color: var(--sora-text-light); }

.sora-form-input:focus,
.sora-form-textarea:focus {
    border-color: var(--sora-border-focus);
    box-shadow:   0 0 0 3px rgba(240,192,64,.18);
}
.sora-input--error {
    border-color: var(--sora-danger) !important;
    box-shadow:   0 0 0 3px rgba(239,68,68,.15) !important;
}

.sora-form-textarea { resize: vertical; min-height: 90px; }

.sora-field-error {
    font-size: .8rem;
    color:     var(--sora-danger);
}
.sora-field-error[hidden] { display: none; }

.sora-char-counter {
    font-size: .75rem;
    color:     var(--sora-text-light);
    text-align: right;
}

/* ─── Noticias seleccionadas ────────────────────────────────────────────────── */
.sora-selected-news {
    display:       flex;
    flex-direction:column;
    gap:           .5rem;
    min-height:    2px;
}

.sora-selected-news-item {
    display:       flex;
    align-items:   center;
    gap:           .65rem;
    padding:       .6rem .75rem;
    background:    var(--sora-bg-subtle);
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-sm);
    min-width:     0;
}
.sora-selected-news-item img {
    width:         3rem;
    height:        2.25rem;
    object-fit:    cover;
    border-radius: 4px;
    flex-shrink:   0;
}
.sora-selected-news-info {
    flex:          1;
    overflow:      hidden;
    display:       flex;
    flex-direction:column;
    gap:           .1rem;
    min-width:     0;
}
.sora-selected-news-thumb {
    width:         3rem;
    height:        2.25rem;
    border-radius: 4px;
    flex-shrink:   0;
    background:    #eceff3;
}
.sora-selected-news-source {
    font-size:    .7rem;
    font-weight:  600;
    color:        var(--sora-text-secondary);
    letter-spacing: .02em;
    line-height:   1.2;
}
.sora-selected-news-title {
    font-size:     .82rem;
    font-weight:   500;
    color:         var(--sora-text);
    white-space:   normal;
    overflow:      hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    line-height:   1.35;
    display:       -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.sora-remove-news-btn {
    background:    transparent;
    border:        none;
    cursor:        pointer;
    padding:       .25rem;
    border-radius: 4px;
    color:         var(--sora-text-light);
    display:       flex;
    flex-shrink:   0;
    transition:    color var(--sora-transition), background var(--sora-transition);
}
.sora-remove-news-btn:hover { color: var(--sora-danger); background: var(--sora-danger-light); }
.sora-remove-news-btn svg   { width: .85rem; height: .85rem; }

/* ─── Buscador ──────────────────────────────────────────────────────────────── */
.sora-search-wrapper {
    display: flex;
    flex-direction: column;
}
.sora-input-row {
    position: relative;
}
.sora-search-icon {
    position:    absolute;
    left:        .75rem;
    top:         50%;
    transform:   translateY(-50%);
    width:       .9rem;
    height:      .9rem;
    color:       var(--sora-text-light);
    pointer-events: none;
}
.sora-search-input { padding-left: 2.25rem !important; }

.sora-search-spinner {
    position:  absolute;
    right:     .75rem;
    top:       50%;
    transform: translateY(-50%);
}
.sora-search-spinner[hidden] { display: none; }
.sora-search-spinner svg {
    width:     1rem;
    height:    1rem;
    color:     var(--sora-text-light);
    animation: soraSpin .8s linear infinite;
}
@keyframes soraSpin { to { transform: rotate(360deg); } }

.sora-search-results {
    position:      static;
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-sm);
    background:    var(--sora-bg);
    box-shadow:    var(--sora-shadow-md);
    max-height:    220px;
    overflow-y:    auto;
    margin-top:    .35rem;
}
.sora-search-results[hidden] { display: none; }

.sora-search-result {
    display:       flex;
    align-items:   center;
    gap:           .65rem;
    padding:       .6rem .75rem;
    cursor:        pointer;
    transition:    background var(--sora-transition);
    border-bottom: 1px solid var(--sora-border);
}
.sora-search-result:last-child { border-bottom: none; }
.sora-search-result:hover,
.sora-search-result--selected  { background: var(--sora-primary-light); }

.sora-search-result img {
    width:         2.75rem;
    height:        2rem;
    object-fit:    cover;
    border-radius: 4px;
    flex-shrink:   0;
}
.sora-search-result-thumb {
    width:         2.75rem;
    height:        2rem;
    border-radius: 4px;
    flex-shrink:   0;
    background:    #eceff3;
}
.sora-search-result-info {
    flex:     1;
    overflow: hidden;
    min-width: 0;
}
.sora-search-result-source {
    font-size:     .7rem;
    font-weight:   600;
    color:         var(--sora-text-secondary);
    letter-spacing:.02em;
    display:       block;
}
.sora-search-result-title {
    font-size:     .82rem;
    color:         var(--sora-text);
    display:       block;
    white-space:   normal;
    overflow:      hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    line-height:   1.35;
}
.sora-search-result svg {
    width:      1rem;
    height:     1rem;
    flex-shrink:0;
    color:      var(--sora-text-light);
}
.sora-search-result--selected svg { color: var(--sora-success); }

.sora-no-results {
    padding:   1rem;
    text-align:center;
    font-size: .85rem;
    color:     var(--sora-text-secondary);
}

/* ─── Alert ─────────────────────────────────────────────────────────────────── */
.sora-alert {
    padding:       .65rem .85rem;
    border-radius: var(--sora-radius-sm);
    font-size:     .85rem;
    font-weight:   500;
}
.sora-alert[hidden] { display: none; }
.sora-alert--error {
    background: var(--sora-danger-light);
    color:      var(--sora-danger);
    border:     1px solid #fecaca;
}

/* ─── Opinions section ──────────────────────────────────────────────────────── */
.sora-opinions-section {
    display:        flex;
    flex-direction: column;
    gap:            1rem;
}

.sora-opinions-list {
    display:        flex;
    flex-direction: column;
    gap:            1rem;
}

/* Opinion card */
.sora-debate-opinion {
    background:    var(--sora-bg);
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-md);
    padding:       1rem 1.1rem;
    transition:    box-shadow var(--sora-transition);
}
.sora-debate-opinion:hover { box-shadow: var(--sora-shadow-sm); }

.sora-opinion-header {
    display:     flex;
    align-items: center;
    gap:         .65rem;
    margin-bottom: .65rem;
}

.sora-user-identity,
.sora-user-menu-trigger {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.sora-user-menu {
    position: relative;
}

.sora-user-menu-dropdown[hidden] {
    display: none !important;
}

.sora-user-menu-trigger {
    border: 0 !important;
    background: transparent !important;
    appearance: none;
    -webkit-appearance: none;
    padding: .3rem .55rem .3rem .4rem;
    cursor: pointer;
    text-align: left;
    border-radius: .55rem;
    transition: background var(--sora-transition), color var(--sora-transition);
    box-shadow: none !important;
    outline: none;
}

.sora-user-menu-trigger:hover .sora-opinion-author,
.sora-user-menu-trigger:hover .sora-debate-author {
    text-decoration: none;
}

.sora-user-menu-trigger:hover,
.sora-user-menu-trigger:focus,
.sora-user-menu-trigger:active {
    background: var(--sora-secondary) !important;
    text-decoration: none !important;
    box-shadow: none !important;
    outline: none;
}

.sora-user-menu-trigger:hover .sora-opinion-author,
.sora-user-menu-trigger:hover .sora-opinion-time,
.sora-user-menu-trigger:hover .sora-debate-author,
.sora-user-menu-trigger:hover .sora-debate-time {
    text-decoration: none !important;
}

.sora-user-menu-dropdown {
    position: absolute;
    top: calc(100% + .5rem);
    left: 0;
    min-width: 12rem;
    padding: .4rem;
    border: 1px solid var(--sora-border);
    border-radius: var(--sora-radius-sm);
    background: #fff;
    box-shadow: 0 12px 32px rgba(16, 24, 40, .14);
    display: flex;
    flex-direction: column;
    gap: .15rem;
    z-index: 30;
}

.sora-user-menu-option {
    display: flex;
    align-items: center;
    width: 100%;
    border: none;
    border-radius: .6rem;
    background: transparent;
    color: var(--sora-text);
    text-decoration: none;
    font-size: .88rem;
    font-weight: 500;
    padding: .65rem .75rem;
    cursor: pointer;
}

.sora-user-menu-option:hover {
    background: var(--sora-bg-subtle);
}

.sora-user-avatar img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    display: block;
}

.sora-opinion-avatar {
    width:           2.25rem;
    height:          2.25rem;
    min-width:       2.25rem;
    border-radius:   var(--sora-radius-full);
    background:      var(--sora-primary);
    color:           var(--sora-text);
    font-weight:     700;
    font-size:       .8rem;
    display:         flex;
    align-items:     center;
    justify-content: center;
    overflow: hidden;
}

.sora-opinion-meta {
    display:        flex;
    flex-direction: column;
    gap:            .1rem;
}
.sora-opinion-author {
    font-size:   .875rem;
    font-weight: 600;
    color:       var(--sora-text);
}
.sora-opinion-time {
    font-size: .75rem;
    color:     var(--sora-text-secondary);
}

.sora-opinion-body {
    font-size:   .9rem;
    color:       var(--sora-text);
    line-height: 1.6;
    margin-bottom: .75rem;
}

.sora-opinion-actions {
    display:     flex;
    align-items: center;
    gap:         .5rem;
}

.sora-vote-btn {
    display:       flex;
    align-items:   center;
    gap:           .3rem;
    background:    transparent;
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-full);
    padding:       .3rem .75rem;
    font-size:     .82rem;
    font-weight:   600;
    color:         var(--sora-text-secondary);
    cursor:        pointer;
    transition:    all var(--sora-transition);
}
.sora-vote-btn svg { width: .9rem; height: .9rem; }
.sora-vote-btn:hover { border-color: var(--sora-primary); color: var(--sora-text); background: var(--sora-primary-light); }
.sora-vote-btn.active { background: var(--sora-primary); border-color: var(--sora-primary); color: var(--sora-text); }

.sora-vote-static {
    display:     flex;
    align-items: center;
    gap:         .3rem;
    font-size:   .82rem;
    color:       var(--sora-text-secondary);
    padding:     .3rem .5rem;
    cursor:      not-allowed;
}
.sora-vote-static svg { width: .9rem; height: .9rem; }

.sora-reply-btn {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    appearance: none;
    border: none;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--sora-text-secondary);
    font-size: .85rem;
    font-weight: 500;
    cursor: pointer;
    padding: .15rem .2rem;
}

.sora-reply-btn svg {
    width: .85rem;
    height: .85rem;
}

.sora-reply-btn:hover {
    background: transparent !important;
    color: var(--sora-text);
    text-decoration: underline;
}

.sora-opinion-children {
    margin-top: .75rem;
    margin-left: 1.6rem;
    padding-left: .9rem;
    border-left: 2px solid var(--sora-border);
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

.sora-debate-opinion--child {
    background: var(--sora-bg-subtle);
}

.sora-replying-to {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    background: var(--sora-primary-light);
    border: 1px solid var(--sora-border-focus);
    border-radius: var(--sora-radius-sm);
    padding: .45rem .65rem;
    font-size: .82rem;
    color: var(--sora-text-secondary);
}

.sora-replying-to[hidden] {
    display: none !important;
}

.sora-reply-cancel-btn {
    border: none;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--sora-text);
    font-weight: 600;
    font-size: .78rem;
    cursor: pointer;
    padding: 0;
}

.sora-reply-cancel-btn:hover,
.sora-reply-cancel-btn:focus,
.sora-reply-cancel-btn:active {
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
    text-decoration: underline;
}

/* Formulario de nueva opinión */
.sora-opinion-form {
    background:    var(--sora-bg-subtle);
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-md);
    padding:       1rem;
    display:       flex;
    flex-direction:column;
    gap:           .65rem;
}
.sora-opinion-form-footer {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
}

.sora-no-opinions {
    text-align: center;
    padding:    2rem 1rem;
    color:      var(--sora-text-secondary);
}
.sora-no-opinions svg {
    width:         2rem;
    height:        2rem;
    margin-bottom: .5rem;
    opacity:       .4;
    display:       block;
    margin-inline: auto;
}

.sora-debate-closed-notice {
    display:       flex;
    align-items:   center;
    gap:           .5rem;
    padding:       .75rem 1rem;
    background:    var(--sora-bg-subtle);
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-sm);
    font-size:     .875rem;
    color:         var(--sora-text-secondary);
}
.sora-debate-closed-notice svg { width: 1rem; height: 1rem; flex-shrink: 0; }

.sora-login-cta {
    text-align: center;
    padding:    1rem;
}

.sora-load-more-wrapper {
    text-align: center;
}

/* ─── News comments (comentarios nativos WP) ─────────────────────────────── */
.sora-news-comments {
    margin-top: 1.25rem;
}

.sora-news-comments-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--sora-text);
}

.sora-news-comment-list,
.sora-news-comment-list .children {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sora-news-comment-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.sora-news-comment-list .children {
    margin-top: .75rem;
    margin-left: 1.6rem;
    padding-left: .9rem;
    border-left: 2px solid var(--sora-border);
}

.sora-news-comment-item {
    margin: 0;
}

.sora-news-comments .sora-opinion-body p:last-child {
    margin-bottom: 0;
}

.sora-news-comments .sora-reply-link-wrap {
    display: inline-flex;
}

.sora-news-comments .comment-reply-link {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    border: none;
    background: transparent;
    color: var(--sora-text-secondary);
    font-size: .85rem;
    font-weight: 500;
    text-decoration: none;
    padding: .15rem .2rem;
}

.sora-news-comments .comment-reply-link:hover {
    color: var(--sora-text);
    text-decoration: underline;
}

.sora-news-comment-pending {
    margin: 0 0 .45rem;
    font-style: italic;
}

.sora-news-comment-form-wrapper .comment-reply-title {
    margin: 0 0 .5rem;
    font-size: .95rem;
    color: var(--sora-text);
}

.sora-news-comment-form p {
    margin: 0;
}

.sora-news-comment-form .comment-form-author,
.sora-news-comment-form .comment-form-email,
.sora-news-comment-form .comment-form-url {
    margin-bottom: .55rem;
}

.sora-news-comment-form .sora-form-input,
.sora-news-comment-form .sora-form-textarea {
    width: 100%;
}

.sora-news-comment-form .form-submit {
    margin-top: .4rem;
}

.sora-news-comments .comment-navigation {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    font-size: .85rem;
}

.sora-news-comments .comment-navigation a {
    color: var(--sora-primary-dark);
    text-decoration: none;
    font-weight: 600;
}

.sora-news-comments .comment-navigation a:hover {
    text-decoration: underline;
}

/* ─── Cabecera de acciones (single debate) ─────────────────────────────────── */
.sora-debate-header-actions {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.sora-debate-details-widget .sora-debate-news-grid {
    margin-top: .5rem;
}

.sora-debate-header-actions .sora-close-debate-btn,
.sora-debate-header-actions .sora-share-debate-btn {
    background: transparent;
    border: 1px solid transparent;
    color: var(--sora-text-secondary);
    padding: .35rem .55rem;
}

.sora-debate-header-actions .sora-close-debate-btn:hover {
    background: var(--sora-danger-light);
    color: var(--sora-danger);
    border-color: #fecaca;
}

.sora-debate-header-actions .sora-share-debate-btn:hover {
    background: var(--sora-bg-subtle);
    color: var(--sora-text);
    border-color: var(--sora-border);
}

/* ─── Noticias vinculadas al debate ─────────────────────────────────────────── */
.sora-debate-news-grid {
    display:               grid;
    grid-template-columns: repeat( auto-fill, minmax( 280px, 1fr ) );
    gap:                   1rem;
}

.sora-debate-news-card {
    background:    var(--sora-bg);
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-md);
    overflow:      hidden;
    transition:    box-shadow var(--sora-transition);
}
.sora-debate-news-card:hover { box-shadow: var(--sora-shadow-md); }

.sora-debate-news-thumb {
    width:      100%;
    height:     160px;
    max-height: 160px;
    object-fit: cover;
    display:    block;
}

.elementor .sora-debate-news-thumb {
    width:      100%;
    height:     160px;
    max-height: 160px;
    object-fit: cover;
}

.sora-debate-news-thumb--placeholder {
    background: linear-gradient(135deg, #eef2f7 0%, #e5e7eb 100%);
}
.sora-debate-news-info { padding: .75rem 1rem 1rem; }
.sora-debate-news-source {
    font-size:     .7rem;
    font-weight:   700;
    color:         var(--sora-text-secondary);
    text-transform:uppercase;
    letter-spacing:.05em;
    display:       block;
    margin-bottom: .25rem;
}
.sora-debate-news-title {
    margin:      0 0 .6rem;
    font-size:   .9rem;
    font-weight: 600;
    color:       var(--sora-text);
    line-height: 1.4;
}
.sora-debate-news-link {
    display:     inline-flex;
    align-items: center;
    gap:         .3rem;
    font-size:   .8rem;
    font-weight: 600;
    color:       var(--sora-primary-dark);
    text-decoration: none;
    transition:  opacity var(--sora-transition);
}
.sora-debate-news-link:hover { opacity: .75; }
.sora-debate-news-link svg   { width: .8rem; height: .8rem; }

/* ─── Related debates popup ─────────────────────────────────────────────────── */
.sora-related-debates-list {
    display:        flex;
    flex-direction: column;
    gap:            .5rem;
}

.sora-related-debate-item {
    display:       flex;
    align-items:   center;
    gap:           .75rem;
    padding:       .85rem 1rem;
    background:    var(--sora-bg);
    border:        1.5px solid var(--sora-border);
    border-radius: var(--sora-radius-md);
    text-decoration:none;
    transition:    box-shadow var(--sora-transition), border-color var(--sora-transition);
}
.sora-related-debate-item:hover {
    box-shadow:   var(--sora-shadow-sm);
    border-color: var(--sora-primary);
}

.sora-related-debate-info { flex: 1; overflow: hidden; }
.sora-related-debate-info h4 {
    margin:        0 0 .25rem;
    font-size:     .875rem;
    font-weight:   600;
    color:         var(--sora-text);
    white-space:   nowrap;
    overflow:      hidden;
    text-overflow: ellipsis;
}
.sora-related-debate-meta {
    display:  flex;
    gap:      .75rem;
    font-size:.75rem;
    color:    var(--sora-text-secondary);
}
.sora-related-debate-item > svg {
    width:      .85rem;
    height:     .85rem;
    color:      var(--sora-text-light);
    flex-shrink:0;
}

/* ─── Loading spinner ───────────────────────────────────────────────────────── */
.sora-loading-spinner {
    display:         flex;
    justify-content: center;
    padding:         2rem;
}
.sora-loading-spinner svg {
    width:     2rem;
    height:    2rem;
    color:     var(--sora-primary);
    animation: soraSpin .8s linear infinite;
}

/* ─── Toast ─────────────────────────────────────────────────────────────────── */
.sora-toast {
    position:      fixed;
    bottom:        1.5rem;
    left:          50%;
    transform:     translateX(-50%) translateY(1rem);
    background:    var(--sora-text);
    color:         #fff;
    padding:       .65rem 1.25rem;
    border-radius: var(--sora-radius-full);
    font-size:     .875rem;
    font-weight:   500;
    z-index:       999999;
    opacity:       0;
    transition:    opacity .25s ease, transform .25s ease;
    white-space:   nowrap;
    box-shadow:    var(--sora-shadow-md);
}
.sora-toast--visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.sora-toast--error   { background: var(--sora-danger); }

/* ─── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    .sora-popup { max-height: 95vh; border-radius: var(--sora-radius-md) var(--sora-radius-md) 0 0; }
    .sora-popup-overlay { align-items: flex-end; padding: 0; }
    .sora-debate-news-grid { grid-template-columns: 1fr; }
    .sora-related-debate-meta { flex-direction: column; gap: .15rem; }
}
