﻿/* TICOPA split from original style.css lines 4802-5376. Keep import order in css/main.css. */
.portal-admin-editor { max-width: 900px; padding: 24px; border: 1px solid rgba(0,229,255,.25); border-radius: 12px; background: rgba(0,0,0,.25); }
.portal-admin-editor textarea { width: 100%; max-width: none; margin: 18px 0 12px; resize: vertical; }
.portal-admin-redes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 16px; }
.portal-admin-redes .search-input { width: 100%; max-width: none; }
.portal-admin-planes { margin: 24px 0; }
.portal-admin-planes h4 { margin-bottom: 5px; color: var(--secondary); font: 800 .9rem 'Orbitron', sans-serif; }
.portal-admin-planes > p { margin: 0 0 14px; color: var(--text-muted); font-size: .8rem; }
.portal-admin-plan-role { margin: 12px 0; padding: 14px; border: 1px solid rgba(139,92,246,.27); border-radius: 8px; background: rgba(9,14,30,.35); }
.portal-admin-plan-role h5 { margin: 0 0 10px; color: var(--gold); font: 800 .72rem 'Orbitron', sans-serif; }
.portal-admin-plan-fields { display: grid; grid-template-columns: 120px minmax(180px, 1fr) minmax(180px, 1fr) minmax(180px, 1fr); gap: 9px; align-items: start; margin-top: 8px; }
.portal-admin-plan-fields strong { padding-top: 11px; font: 800 .62rem 'Orbitron', sans-serif; }
.portal-admin-plan-fields textarea.search-input { min-height: 95px; margin: 0; }
.portal-admin-plan-fields .search-input { width: 100%; max-width: none; margin: 0; }

@media (max-width: 800px) {
  .portal-contenido { grid-template-columns: 1fr; padding-top: 35px; }
  .portal-topbar b { display: none; }
  .portal-presentacion h1 { font-size: clamp(2.2rem, 11vw, 4rem); }
  .portal-planes-head { align-items: flex-start; flex-direction: column; }
  .portal-plan-switch { width: 100%; }
  .portal-plan-switch button { flex: 1; }
  .team-chat-head { flex-direction: column; }
  .team-chat-head p { text-align: left; }
  .team-chat-head-actions { align-items: flex-start; }
  .team-chat-message { width: 90%; }
  .team-chat-compose, .portal-admin-redes { grid-template-columns: 1fr; }
  .portal-admin-plan-fields { grid-template-columns: 1fr; }
  .portal-admin-plan-fields strong { padding-top: 0; }
}

.club-profile-match-card {
  box-sizing: border-box;
  grid-template-columns: minmax(0, 1fr) minmax(92px, 118px) minmax(0, 1fr) !important;
  min-height: 112px;
}

.club-profile-match-card .match-team {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

.club-profile-match-card .club-match-name,
.club-profile-match-card .club-link {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: clamp(0.68rem, 1.35vw, 0.95rem) !important;
  line-height: 1.15 !important;
}

.club-profile-match-card .match-score {
  width: 100% !important;
  min-width: 92px !important;
  max-width: 118px !important;
  justify-self: center !important;
}

/* Iconografia limpia para acciones y secciones */
.ticopa-ui-icon {
  display: inline-flex;
  width: 1.05em;
  height: 1.05em;
  align-items: center;
  justify-content: center;
  margin-right: 0.45em;
  color: currentColor;
  flex: 0 0 auto;
  vertical-align: -0.14em;
}

.ticopa-ui-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  stroke-width: 2.2;
}

button .ticopa-ui-icon,
.tab-btn .ticopa-ui-icon,
.hero-btn .ticopa-ui-icon,
.btn-primary .ticopa-ui-icon,
.btn-secondary .ticopa-ui-icon,
.btn-danger .ticopa-ui-icon,
.sidebar-menu a .ticopa-ui-icon {
  margin-right: 0.42em;
}

.news-badge .ticopa-ui-icon,
.section-title .ticopa-ui-icon,
.card h2 .ticopa-ui-icon,
.card h3 .ticopa-ui-icon {
  color: var(--secondary);
}

#ticopa-global-refresh .ticopa-ui-icon {
  width: 1.15em;
  height: 1.15em;
  margin-right: 0;
}

/* Colores semanticos para acciones, aplicados tambien a botones dinamicos */
.ticopa-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.2em;
}

.ticopa-action-success:not(.tab-btn):not(.filtro-btn) {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #03120a !important;
}

.ticopa-action-danger:not(.tab-btn):not(.filtro-btn) {
  background: rgba(255, 0, 85, 0.1) !important;
  border-color: var(--accent) !important;
  color: var(--accent) !important;
}

.ticopa-action-warning:not(.tab-btn):not(.filtro-btn) {
  background: rgba(250, 204, 21, 0.12) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
}

.ticopa-action-info:not(.tab-btn):not(.filtro-btn) {
  background: rgba(0, 184, 255, 0.1) !important;
  border-color: var(--secondary) !important;
  color: var(--secondary) !important;
}

.ticopa-action-neutral:not(.tab-btn):not(.filtro-btn) {
  border-color: var(--border-light);
}

.admin-row-actions {
  display: flex;
  gap: 6px;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
  min-width: 250px;
}

.admin-row-action-btn {
  min-width: 72px;
  min-height: 30px;
  padding: 6px 9px !important;
  border-radius: 5px;
  font-family: "Orbitron", sans-serif;
  font-size: 0.58rem !important;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: 0.25px;
  white-space: nowrap;
}

/* Ajuste final movil: partidos con logo y nombre completo en una linea */
@media (max-width: 760px) {
  #contenedor-partidos .calendar-container .match-card,
  .club-match-list .club-profile-match-card,
  .club-profile-match-card {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  #contenedor-partidos .calendar-container .match-team,
  .club-match-list .club-profile-match-card .match-team,
  .club-profile-match-card .match-team {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    column-gap: 9px !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    text-align: left !important;
    justify-content: stretch !important;
    flex-direction: row !important;
  }

  #contenedor-partidos .calendar-container .match-team.visita,
  .club-match-list .club-profile-match-card .match-team.visita,
  .club-profile-match-card .match-team.visita {
    direction: ltr !important;
    text-align: left !important;
  }

  #contenedor-partidos .calendar-container .club-badge-logo,
  .club-match-list .club-profile-match-card .club-badge-logo,
  .club-profile-match-card .club-badge-logo {
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
    grid-column: 1 !important;
  }

  #contenedor-partidos .calendar-container .club-link,
  .club-match-list .club-profile-match-card .club-match-name,
  .club-match-list .club-profile-match-card .club-link,
  .club-profile-match-card .club-match-name,
  .club-profile-match-card .club-link {
    grid-column: 2 !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    font-size: clamp(0.58rem, 2.7vw, 0.84rem) !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
  }
}

/* Noticias: texto completo y titulares fluidos */
#news-slider-container .news-title,
#news-slider-container .dt-declaration-title {
    display: block !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
    -webkit-box-orient: initial !important;
}

#news-slider-container .news-title {
    font-size: clamp(1.8rem, 4.2vw, 3rem) !important;
    line-height: .96 !important;
}

#news-slider-container .dt-declaration-title {
    font-size: clamp(1.25rem, 2.35vw, 2.05rem) !important;
    line-height: 1.05 !important;
}

#news-slider-container .news-body,
#news-slider-container .dt-declaration-copy p {
    display: block !important;
    max-height: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
    -webkit-box-orient: initial !important;
}

#news-slider-container .dt-declaration-panel {
    overflow-y: auto !important;
}

@media (max-width: 768px) {
    #news-slider-container .news-title {
        font-size: clamp(1.18rem, 6vw, 1.75rem) !important;
        line-height: 1.05 !important;
    }
    #news-slider-container .dt-declaration-title {
        font-size: clamp(1.06rem, 5.4vw, 1.55rem) !important;
        line-height: 1.08 !important;
    }
}

@media (max-width: 768px) {
    .nav-tabs {
        justify-content: flex-start !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        -webkit-overflow-scrolling: touch;
    }

    .admin-row-actions,
    .pro-table td > div[style*="display:flex"] {
        flex-wrap: wrap !important;
    }

    .admin-inbox-content .hero-btn,
    .admin-inbox-content .btn-secondary,
    .admin-inbox-content .btn-danger,
    .admin-inbox-content .btn-primary {
        min-height: 38px;
        white-space: normal !important;
    }

    #panel-fichajes-admin > div:first-of-type {
        justify-content: stretch !important;
    }

    #panel-fichajes-admin > div:first-of-type button {
        flex: 1 1 160px !important;
    }
}

/* Matches y fixture: orden visual estable y sin desborde */
#contenedor-partidos .calendar-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
}

.club-match-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
}

#contenedor-partidos .match-card,
.club-match-list .club-profile-match-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.club-match-list .club-profile-match-card {
    grid-template-columns: minmax(0, 1fr) minmax(104px, 118px) minmax(0, 1fr) !important;
}

.club-match-list .club-match-name,
#contenedor-partidos .match-card .club-link {
    min-width: 0 !important;
    max-width: 100% !important;
}

@media (max-width: 1180px) {
    .club-match-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 760px) {
    #contenedor-partidos .calendar-container,
    .club-match-list {
        grid-template-columns: 1fr !important;
    }
}

/* Detalle de partido: el campo 3D debe caber en movil y permitir deslizar la vista */
.match-3d-section {
    max-width: 100%;
    touch-action: pan-y;
}

.match-3d-pitch {
    max-width: 100%;
}

@media (max-width: 768px) {
    .match-3d-section {
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        height: auto !important;
        overflow: visible !important;
        touch-action: pan-y !important;
    }

    .match-3d-pitch {
        min-width: 0 !important;
        width: 100% !important;
        min-height: 430px !important;
        height: clamp(430px, 122vw, 560px) !important;
        transform: none !important;
        transform-origin: center top !important;
        touch-action: pan-y !important;
    }

    .match-3d-player,
    .match-3d-player:hover {
        width: 112px !important;
        min-height: 42px !important;
        transform: translate(-50%, -50%) !important;
    }
}
.fmt-shell {
    --fmt-oro: #f5c542;
    --fmt-azul: #00aaff;
    --fmt-plata: #cfd6df;
    --fmt-panel: rgba(12, 18, 28, 0.9);
    color: #fff;
    background: #080b10;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
    padding: 22px;
}
.fmt-hero {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 18px;
    align-items: center;
    border: 1px solid rgba(245,197,66,0.35);
    background: linear-gradient(135deg, rgba(245,197,66,0.1), rgba(0,170,255,0.08));
    padding: 22px;
    border-radius: 8px;
    margin-bottom: 18px;
}
.fmt-hero span, .fmt-group h4, .fmt-bracket h4, .fmt-admin h3 {
    color: var(--fmt-oro);
    font-family: var(--font-tech);
    text-transform: uppercase;
    letter-spacing: 0;
}
.fmt-hero h2 { margin: 4px 0 8px; font-family: var(--font-tech); font-size: 1.8rem; }
.fmt-hero p, .fmt-condition, .fmt-empty { color: var(--text-muted); margin: 0; }
.fmt-crown {
    border: 1px solid rgba(245,197,66,0.45);
    color: var(--fmt-oro);
    padding: 14px 18px;
    border-radius: 8px;
    font-weight: 900;
    text-align: center;
}
.fmt-admin, .fmt-alert, .fmt-condition, .fmt-zone, .fmt-bracket, .fmt-group {
    background: var(--fmt-panel);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
}
.fmt-admin { padding: 18px; margin-bottom: 18px; }
.fmt-admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
}
.fmt-structure-field { grid-column: span 2; }
.fmt-structure-field small {
    display: block;
    margin-top: 6px;
    color: var(--text-muted);
    font-size: 0.68rem;
    line-height: 1.35;
    text-transform: none;
}
.fmt-admin label {
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}
.fmt-admin input, .fmt-admin select {
    width: 100%;
    margin-top: 6px;
    padding: 10px;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,0.16);
    background: rgba(0,0,0,0.35);
    color: #fff;
}
.fmt-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.fmt-livebar, .fmt-wo-box, .fmt-presets {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 14px;
    padding: 10px;
    border: 1px solid rgba(245,197,66,0.18);
    border-radius: 8px;
    background: rgba(255,255,255,0.04);
}
.fmt-switch {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #fff !important;
    margin: 0;
}
.fmt-switch input, .fmt-wo-box input {
    width: auto;
    margin: 0;
    accent-color: var(--fmt-oro);
}
.fmt-wo-box {
    margin-top: 12px;
}
.fmt-wo-box b {
    width: 100%;
    color: var(--fmt-oro);
    font-family: var(--font-tech);
    text-transform: uppercase;
}
.fmt-wo-box label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #fff;
}
.fmt-presets button {
    border: 1px solid rgba(255,255,255,0.15);
    background: rgba(0,0,0,0.35);
    color: #fff;
    padding: 8px 10px;
    border-radius: 6px;
    font-weight: 800;
    cursor: pointer;
}
.fmt-presets button:hover {
    border-color: var(--fmt-oro);
    color: var(--fmt-oro);
}
.fmt-alert {
    padding: 12px 16px;
    margin-bottom: 18px;
    border-color: rgba(255,77,77,0.5);
    color: #ffb0b0;
}
.fmt-alert p { margin: 4px 0; }
.fmt-vars {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}
.fmt-vars div {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 8px;
    padding: 14px;
    text-align: center;
}
.fmt-vars b { display:block; font-family:var(--font-tech); font-size:1.55rem; color:var(--fmt-oro); }
.fmt-vars div:first-child b { font-size:1rem; overflow-wrap:anywhere; }
.fmt-vars span { color:var(--text-muted); font-size:0.75rem; text-transform:uppercase; font-weight:800; }
.fmt-condition { padding: 14px; margin-bottom: 18px; }
.fmt-zones { display: grid; gap: 18px; }
.fmt-zone { padding: 18px; }
.fmt-zone h3 { margin-top:0; color:#fff; font-family:var(--font-tech); text-transform:uppercase; }
.fmt-groups {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}
.fmt-group { padding: 12px; }
.fmt-group h4, .fmt-bracket h4 { margin: 0 0 10px; font-size: 0.88rem; }
.fmt-team {
    padding: 10px;
    border-radius: 8px;
    background: rgba(0,0,0,0.28);
    border: 1px solid rgba(255,255,255,0.12);
    margin-bottom: 8px;
}
.fmt-team.oro { border-color: rgba(245,197,66,0.75); }
.fmt-team.azul { border-color: rgba(0,170,255,0.65); }
.fmt-team.plata { border-color: rgba(207,214,223,0.45); }
.fmt-team strong { display:block; margin-bottom:6px; }
.fmt-team small { display:block; color:var(--text-muted); margin-top:6px; }
.fmt-badge {
    display:inline-block;
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 900;
    color: #05070b;
}
.fmt-gold { background: var(--fmt-oro); }
.fmt-blue { background: var(--fmt-azul); }
.fmt-silver { background: var(--fmt-plata); }
.fmt-bad { background: #ff4d4d; color: #fff; }
.fmt-brackets-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.fmt-brackets-grid.wide { margin-top: 18px; }
.fmt-bracket { padding: 12px; }
.fmt-match {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    align-items: center;
    gap: 8px;
    padding: 9px;
    border-radius: 8px;
    border: 1px solid rgba(245,197,66,0.22);
    background: rgba(0,0,0,0.25);
    margin-bottom: 8px;
}
.fmt-match span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fmt-match b { color:var(--fmt-oro); font-size:0.75rem; }
.fmt-bye {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 9px;
    border-radius: 8px;
    border: 1px dashed rgba(245,197,66,0.55);
    background: rgba(245,197,66,0.07);
    margin-bottom: 8px;
}
.fmt-bye span { color:var(--fmt-oro); font-size:0.68rem; font-weight:800; text-transform:uppercase; }
@media (max-width: 700px) {
    .fmt-shell { padding: 12px; }
    .fmt-hero { grid-template-columns: 1fr; }
    .fmt-structure-field { grid-column: span 1; }
    .fmt-match { grid-template-columns: 1fr; text-align:center; }
}
@media (max-width: 720px) {
  .solicitud-inscripcion-form {
    grid-template-columns: 1fr !important;
  }

  .sol-ins-row {
    grid-template-columns: 1fr !important;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px;
    background: rgba(0,0,0,.22);
  }

  .sol-ins-row .btn-secondary,
  .sol-ins-row .btn-danger {
    width: 100%;
  }
}
