/* ChessFed Nearby Clubs 4.0.6 — wide European tournament list without map */
:root {
    --cfnt-navy: #0f2747;
    --cfnt-blue: #1769aa;
    --cfnt-gold: #c49a42;
    --cfnt-text: #1c2936;
    --cfnt-muted: #647487;
    --cfnt-border: #d8e0e8;
    --cfnt-soft: #f3f6f9;
    --cfnt-white: #fff;
    --cfnt-success: #17643a;
    --cfnt-warning: #7b5700;
    --cfnt-error: #a62e2e;
}

/* The tournament page uses the same wide canvas as the club application. */
body.cfnt-page .cf-main > .cf-shell,
body.cfnt-page .site-content,
body.cfnt-page .content-area,
body.cfnt-page main.site-main,
body.cfnt-page article.page,
body.cfnt-page .entry-content {
    width: min(1600px, calc(100% - 36px)) !important;
    max-width: none !important;
}
body.cfnt-page .cf-page {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 24px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.cfnt-page .cf-page__header,
body.cfnt-page .entry-header,
body.cfnt-page .entry-title,
body.cfnt-page article.page > header,
body.cfnt-page .page-header {
    display: none !important;
}
body.cfnt-page .cf-page__content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}
body.cfnt-page article.page,
body.cfnt-page .entry-content {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.cfnt-app,
.cfnt-app * { box-sizing: border-box; }

.cfnt-app {
    width: min(1480px, 100%);
    margin: 8px auto 46px;
    color: var(--cfnt-text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.cfnt-update-note {
    margin: 0 4px 9px;
    padding: 7px 11px;
    border: 1px solid #e5d39e;
    border-radius: 8px;
    background: #fffaf0;
    color: #6b561e;
    font-size: 11px;
    line-height: 1.45;
}
.cfnt-update-note strong { color: #4f3d0d; }

.cfnt-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 28px 32px;
    border-radius: 18px 18px 0 0;
    background:
        linear-gradient(120deg, rgba(15,39,71,.97), rgba(23,105,170,.91)),
        radial-gradient(circle at 80% 10%, rgba(255,255,255,.18), transparent 30%);
    color: #fff;
    box-shadow: 0 16px 42px rgba(15,39,71,.13);
}
.cfnt-kicker {
    display: block;
    margin-bottom: 7px;
    color: #e7c66f;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
}
.cfnt-hero h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1.08;
}
.cfnt-hero p {
    max-width: 820px;
    margin: 10px 0 0;
    color: rgba(255,255,255,.86);
    font-size: 16px;
}
.cfnt-radar-logo {
    position: relative;
    display: grid;
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 50%;
    background: rgba(255,255,255,.1);
}
.cfnt-radar-logo span {
    position: absolute;
    inset: 50%;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}
.cfnt-radar-logo span:nth-child(1) { width: 28px; height: 28px; }
.cfnt-radar-logo span:nth-child(2) { width: 55px; height: 55px; }
.cfnt-radar-logo span:nth-child(3) { width: 80px; height: 80px; }
.cfnt-radar-logo i {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 42%;
    height: 2px;
    background: #e7c66f;
    box-shadow: 0 0 8px #e7c66f;
    transform-origin: 0 50%;
    animation: cfntSweep 3s linear infinite;
}
@keyframes cfntSweep { to { transform: rotate(360deg); } }

.cfnt-controls {
    display: grid;
    grid-template-columns: auto 190px 210px 165px minmax(300px, 1fr);
    align-items: end;
    gap: 16px;
    padding: 22px 26px;
    border: 1px solid var(--cfnt-border);
    border-top: 0;
    background: #fff;
}
.cfnt-search-wrap,
.cfnt-controls label { display: grid; gap: 6px; }
.cfnt-search-wrap > label,
.cfnt-controls label > span {
    color: var(--cfnt-muted);
    font-size: 12px;
    font-weight: 800;
}
.cfnt-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.cfnt-search-row input,
.cfnt-controls select {
    width: 100%;
    min-height: 46px;
    border: 1px solid #bcc8d4;
    background: #fff;
    color: var(--cfnt-text);
    font: inherit;
}
.cfnt-search-row input { padding: 10px 13px; border-radius: 9px 0 0 9px; }
.cfnt-controls select { padding: 9px 11px; border-radius: 9px; }
.cfnt-primary-button,
.cfnt-search-row button,
.cfnt-list-heading button,
.cfnt-actions a {
    border: 0;
    border-radius: 9px;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease;
}
.cfnt-primary-button {
    min-height: 46px;
    padding: 11px 19px;
    background: var(--cfnt-blue);
    color: #fff;
    box-shadow: 0 7px 16px rgba(23,105,170,.18);
}
.cfnt-search-row button {
    padding: 10px 17px;
    border-radius: 0 9px 9px 0;
    background: var(--cfnt-navy);
    color: #fff;
}
.cfnt-primary-button:hover,
.cfnt-search-row button:hover,
.cfnt-actions a:hover { transform: translateY(-1px); }
.cfnt-primary-button:disabled { opacity: .65; cursor: wait; }

.cfnt-status {
    padding: 12px 25px;
    border-right: 1px solid var(--cfnt-border);
    border-left: 1px solid var(--cfnt-border);
    background: #eaf2f9;
    color: #234868;
    font-size: 13px;
    font-weight: 700;
}
.cfnt-status.is-success { background: #e9f5ee; color: var(--cfnt-success); }
.cfnt-status.is-error { background: #fff0ef; color: var(--cfnt-error); }

.cfnt-results {
    border-right: 1px solid var(--cfnt-border);
    border-left: 1px solid var(--cfnt-border);
    background: #f7fafc;
}
.cfnt-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 22px;
    border-bottom: 1px solid var(--cfnt-border);
    background: #fff;
}
.cfnt-list-heading span {
    display: block;
    margin-bottom: 5px;
    color: var(--cfnt-blue);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
}
.cfnt-list-heading strong { color: var(--cfnt-navy); font-size: 17px; }
.cfnt-list-heading button {
    padding: 10px 14px;
    border: 1px solid #c9d8e5;
    background: #fff;
    color: #38516a;
}

.cfnt-event-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding: 18px;
}
.cfnt-event-card {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 13px;
    height: 100%;
    padding: 18px;
    border: 1px solid var(--cfnt-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 5px 16px rgba(15,39,71,.045);
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.cfnt-event-card:hover {
    transform: translateY(-2px);
    border-color: #a9c6dd;
    box-shadow: 0 10px 25px rgba(15,39,71,.09);
}
.cfnt-card-number {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--cfnt-navy);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}
.cfnt-card-main { display: flex; min-width: 0; flex-direction: column; }
.cfnt-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.cfnt-meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.cfnt-event-card h2 {
    margin: 8px 0 0;
    color: var(--cfnt-navy);
    font-size: 16px;
    line-height: 1.32;
}
.cfnt-fide-id {
    color: var(--cfnt-gold);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
}
.cfnt-speed,
.cfnt-location {
    display: inline-flex;
    padding: 4px 7px;
    border-radius: 999px;
    background: #e9eff5;
    color: #3c566e;
    font-size: 10px;
    font-weight: 900;
}
.cfnt-speed.is-standard { background: #e6efff; color: #164d92; }
.cfnt-speed.is-rapid { background: #fff1d5; color: #8b5700; }
.cfnt-speed.is-blitz { background: #eee5ff; color: #6632a4; }
.cfnt-location.is-exact { background: #e6f7ed; color: #147244; }
.cfnt-distance {
    flex: 0 0 auto;
    padding: 5px 8px;
    border-radius: 999px;
    background: #e6f1fa;
    color: var(--cfnt-blue);
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}
.cfnt-distance.is-pending {
    background: #f0f3f6;
    color: #657789;
    font-size: 11px;
}
.cfnt-date,
.cfnt-city,
.cfnt-time-control {
    margin: 7px 0 0;
    font-size: 13px;
    line-height: 1.45;
}
.cfnt-city { color: #213f59; font-weight: 800; }
.cfnt-time-control { color: var(--cfnt-muted); }
.cfnt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
    padding-top: 14px;
}
.cfnt-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 11px;
    background: var(--cfnt-blue);
    color: #fff;
    font-size: 12px;
}
.cfnt-actions a.is-source {
    border: 1px solid #c6d6e3;
    background: #fff;
    color: #38516a;
}
.cfnt-empty {
    grid-column: 1 / -1;
    display: grid;
    gap: 8px;
    padding: 48px 22px;
    color: var(--cfnt-muted);
    text-align: center;
}
.cfnt-empty strong { color: var(--cfnt-navy); }
.cfnt-source-note {
    margin: 0;
    padding: 13px 22px;
    border: 1px solid var(--cfnt-border);
    border-top: 0;
    border-radius: 0 0 18px 18px;
    background: #f3f6f8;
    color: #607487;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 1250px) {
    .cfnt-controls { grid-template-columns: auto minmax(260px, 1fr) repeat(3, minmax(135px, 1fr)); }
    .cfnt-event-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 930px) {
    .cfnt-controls { grid-template-columns: 1fr 1fr; }
    .cfnt-search-wrap { grid-column: 1 / -1; grid-row: 1; }
}
@media (max-width: 720px) {
    body.cfnt-page .cf-main > .cf-shell,
    body.cfnt-page .site-content,
    body.cfnt-page .content-area,
    body.cfnt-page main.site-main,
    body.cfnt-page article.page,
    body.cfnt-page .entry-content {
        width: calc(100% - 16px) !important;
    }
    body.cfnt-page .cf-page { padding: 10px 0 !important; }
    .cfnt-hero { padding: 24px 20px; }
    .cfnt-hero h1 { font-size: 29px; }
    .cfnt-radar-logo { display: none; }
    .cfnt-controls { grid-template-columns: 1fr; padding: 16px; }
    .cfnt-search-wrap { grid-column: auto; grid-row: auto; }
    .cfnt-event-list { grid-template-columns: 1fr; padding: 12px; }
    .cfnt-event-card { padding: 15px 13px; }
    .cfnt-title-row { display: block; }
    .cfnt-distance { display: inline-flex; margin-top: 8px; }
    .cfnt-actions { display: grid; }
    .cfnt-actions a { width: 100%; }
}

.cfnt-country {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    background: #edf2f7;
    color: #334e68;
    font-size: 10px;
    font-weight: 900;
}
.cfnt-location.is-country {
    background: #fff3cd;
    color: #7b5700;
}
@media (max-width: 1320px) {
    .cfnt-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cfnt-search-wrap { grid-column: span 2; }
}

/* 4.0.7: worldwide controls — search magnifier comes after “Χρόνοι σκέψης”. */
.cfnt-controls .cfnt-search-wrap { min-width: 0; }
.cfnt-controls .cfnt-search-row button {
    min-width: 48px;
    padding: 0 14px;
    font-size: 20px;
    line-height: 1;
}
@media (max-width: 1320px) {
    .cfnt-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cfnt-primary-button { align-self: end; }
    .cfnt-search-wrap { grid-column: span 2; }
}
@media (max-width: 820px) {
    .cfnt-controls { grid-template-columns: 1fr 1fr; }
    .cfnt-search-wrap { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .cfnt-controls { grid-template-columns: 1fr; }
    .cfnt-search-wrap { grid-column: auto; }
}


/* 4.0.8: country filter removed; distance moved into its position. */
.cfnt-more-distances[hidden] { display: none !important; }
.cfnt-more-distances {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    padding: 12px 26px;
    border-right: 1px solid var(--cfnt-border);
    border-left: 1px solid var(--cfnt-border);
    border-top: 1px solid #e8eef4;
    background: #f8fbfd;
}
.cfnt-more-distances__title {
    color: var(--cfnt-navy);
    font-size: 12px;
    font-weight: 900;
}
.cfnt-more-distances__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.cfnt-more-distances__buttons button {
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid #b9c9d8;
    border-radius: 999px;
    background: #fff;
    color: var(--cfnt-text);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.cfnt-more-distances__buttons button:hover,
.cfnt-more-distances__buttons button.is-active {
    border-color: var(--cfnt-blue);
    background: var(--cfnt-blue);
    color: #fff;
}
.cfnt-more-distances__selected {
    margin-left: auto;
    color: var(--cfnt-muted);
    font-size: 12px;
    font-weight: 700;
}
@media (max-width: 1320px) {
    .cfnt-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cfnt-search-wrap { grid-column: span 2; }
}
@media (max-width: 820px) {
    .cfnt-more-distances { padding: 12px 16px; }
    .cfnt-more-distances__selected { width: 100%; margin-left: 0; }
}


/* 4.0.10: η κάρτα «Περισσότερα» καταλαμβάνει το επόμενο κενό πλαίσιο. */
.cfnt-more-card {
    width: 100%;
    min-height: 220px;
    appearance: none;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: var(--cfnt-navy);
    border: 1px dashed #91b6d3;
    background: linear-gradient(145deg, #fff, #edf6fc);
}
.cfnt-more-card:hover {
    border-color: var(--cfnt-blue);
    background: linear-gradient(145deg, #fff, #e4f1fa);
}
.cfnt-more-card:focus-visible {
    outline: 3px solid rgba(13,109,170,.24);
    outline-offset: 3px;
}
.cfnt-more-card:disabled { cursor: wait; opacity: .78; }
.cfnt-more-card-plus { background: var(--cfnt-blue); font-size: 20px; }
.cfnt-more-card-content {
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}
.cfnt-more-card-content strong {
    color: var(--cfnt-navy);
    font-size: 20px;
    line-height: 1.2;
}
.cfnt-more-card-content small {
    display: block;
    margin-top: 8px;
    color: var(--cfnt-muted);
    font-size: 13px;
    line-height: 1.5;
}
.cfnt-more-card.is-loading .cfnt-more-card-plus { animation: cfnt-more-pulse 1s ease-in-out infinite alternate; }
@keyframes cfnt-more-pulse { from { transform: scale(.9); } to { transform: scale(1.08); } }
