/* Chess Suite — Ratings & Results */
.cfs-ratings-results-page{background:#f8fafc}.cfs-ratings-hero{background:var(--cfs-navy);color:#fff}.cfs-ratings-hero .cfs-container{padding-block:58px 54px}.cfs-ratings-hero__eyebrow{display:block;margin-bottom:10px;color:var(--cfs-yellow);font-family:Montserrat,Inter,sans-serif;font-size:11px;font-weight:800;letter-spacing:1.35px;text-transform:uppercase}.cfs-ratings-hero h1{max-width:820px;margin:0;color:#fff;font-family:Montserrat,Inter,sans-serif;font-size:clamp(36px,4vw,54px);font-weight:700;letter-spacing:-.035em;line-height:1.05}.cfs-ratings-hero__rule{display:block;width:44px;height:3px;margin:18px 0;background:var(--cfs-yellow)}.cfs-ratings-hero p{max-width:760px;margin:0;color:#dce7ef;font-size:15px;line-height:1.65}.cfs-ratings-main{padding:44px 0 70px}.cfs-ratings-tabs{display:flex;gap:8px;margin-bottom:28px}.cfs-ratings-tabs a{display:inline-flex;min-height:42px;align-items:center;padding:0 16px;border:1px solid var(--cfs-border);border-radius:6px;background:#fff;color:var(--cfs-navy);font-family:Montserrat,Inter,sans-serif;font-size:10px;font-weight:800;text-decoration:none}.cfs-ratings-tabs a.is-active{border-color:var(--cfs-blue-dark);background:var(--cfs-blue-dark);color:#fff}.cfs-ratings-panel,.cfs-results-panel{padding:26px;border:1px solid var(--cfs-border);border-radius:10px;background:#fff;box-shadow:var(--cfs-shadow)}.cfs-ratings-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.cfs-ratings-heading span{display:block;margin-bottom:5px;color:var(--cfs-blue-dark);font-family:Montserrat,Inter,sans-serif;font-size:9px;font-weight:800;letter-spacing:1px}.cfs-ratings-heading h2{margin:0;color:var(--cfs-navy);font-family:Montserrat,Inter,sans-serif;font-size:27px;font-weight:700}.cfs-ratings-heading>a{color:var(--cfs-blue-dark);font-family:Montserrat,Inter,sans-serif;font-size:9px;font-weight:800;text-decoration:none}.cfs-ratings-intro{max-width:760px;margin:0 0 22px;color:var(--cfs-muted);font-size:12px;line-height:1.6}.cfs-ratings-table-wrap{overflow-x:auto;border:1px solid #e6ebef;border-radius:8px}.cfs-ratings-table{width:100%;border-collapse:collapse;background:#fff}.cfs-ratings-table th{padding:12px 14px;background:#f7f9fb;color:#667085;font-family:Montserrat,Inter,sans-serif;font-size:8px;font-weight:800;letter-spacing:.65px;text-align:left;text-transform:uppercase}.cfs-ratings-table td{padding:13px 14px;border-top:1px solid #edf1f4;color:#475467;font-size:12px;vertical-align:middle}.cfs-rating-player{display:flex;align-items:center;gap:10px;min-width:190px}.cfs-rating-player img{width:36px;height:36px;border-radius:50%;object-fit:cover}.cfs-rating-player a,.cfs-rating-player span{color:var(--cfs-navy);font-family:Montserrat,Inter,sans-serif;font-weight:700;text-decoration:none}.cfs-rating-number{color:var(--cfs-navy);font-family:Montserrat,Inter,sans-serif;font-size:15px}.cfs-results-source-note{margin-bottom:22px;padding:12px 14px;border-left:3px solid var(--cfs-yellow);background:#fffde8;color:#596579;font-size:11px;line-height:1.55}.cfs-results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cfs-result-card{display:flex;min-height:190px;flex-direction:column;padding:20px;border:1px solid var(--cfs-border);border-radius:9px;background:#fff}.cfs-result-card__tag{margin-bottom:10px;color:var(--cfs-blue-dark);font-family:Montserrat,Inter,sans-serif;font-size:8px;font-weight:800;letter-spacing:.7px}.cfs-result-card h3{margin:0 0 10px;color:var(--cfs-navy);font-family:Montserrat,Inter,sans-serif;font-size:18px;font-weight:700;line-height:1.3}.cfs-result-card p{margin:0 0 16px;color:var(--cfs-muted);font-size:11px}.cfs-result-card a{display:inline-flex;gap:6px;margin-top:auto;color:var(--cfs-blue-dark);font-family:Montserrat,Inter,sans-serif;font-size:9px;font-weight:800;text-decoration:none}.cfs-results-status{margin-top:16px;color:#98a2b3;font-size:10px}.cfs-results-empty,.cfs-ratings-empty{padding:30px;border:1px dashed #c8d4df;border-radius:9px;background:#fff;text-align:center}.cfs-results-empty h3{margin:0 0 8px;color:var(--cfs-navy);font-family:Montserrat,Inter,sans-serif}.cfs-results-empty p{color:var(--cfs-muted)}.cfs-results-empty a{color:var(--cfs-blue-dark);font-weight:800;text-decoration:none}
@media(max-width:1024px){.cfs-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.cfs-ratings-hero .cfs-container{padding-block:42px 38px}.cfs-ratings-main{padding:36px 0 50px}.cfs-ratings-tabs{display:grid;grid-template-columns:1fr 1fr}.cfs-ratings-tabs a{justify-content:center;padding-inline:8px}.cfs-ratings-panel,.cfs-results-panel{padding:18px}.cfs-ratings-heading{align-items:flex-start;flex-direction:column;gap:8px}.cfs-results-grid{grid-template-columns:1fr}.cfs-ratings-table thead{display:none}.cfs-ratings-table,.cfs-ratings-table tbody,.cfs-ratings-table tr,.cfs-ratings-table td{display:block;width:100%}.cfs-ratings-table tr{padding:12px 14px;border-top:1px solid #edf1f4}.cfs-ratings-table tr:first-child{border-top:0}.cfs-ratings-table td{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 0;border:0}.cfs-ratings-table td::before{content:attr(data-label);color:#667085;font-family:Montserrat,Inter,sans-serif;font-size:8px;font-weight:800;letter-spacing:.55px;text-transform:uppercase}.cfs-rating-player{min-width:0}.cfs-ratings-table td[data-label="Player"]{align-items:flex-start;flex-direction:column}.cfs-ratings-table td[data-label="Player"]::before{margin-bottom:5px}}

/* v2.0 on-site Chess-Results detail + round filtering */
.cfs-round-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 28px;padding-bottom:16px;border-bottom:1px solid var(--cfs-border)}
.cfs-round-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid var(--cfs-border);border-radius:5px;background:#fff;color:var(--cfs-navy);font:700 9px Montserrat,Inter,sans-serif;text-decoration:none}
.cfs-round-tabs a.is-active{background:var(--cfs-blue-dark);border-color:var(--cfs-blue-dark);color:#fff}
.cfs-results-subtitle{margin:0 0 16px;color:var(--cfs-navy);font:700 20px Montserrat,Inter,sans-serif}
.cfs-chess-results-table{min-width:720px}.cfs-chess-results-table td,.cfs-chess-results-table th{white-space:normal;vertical-align:top}
@media(max-width:767px){.cfs-round-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:12px}.cfs-round-tabs a{white-space:nowrap}.cfs-chess-results-table{min-width:680px}}

/* v2.1 — hardened tournament result presentation */
.cfs-tournament-detail .cfs-ratings-heading{align-items:flex-start}.cfs-tournament-detail .cfs-ratings-heading>div{min-width:0;max-width:calc(100% - 150px)}.cfs-tournament-detail .cfs-ratings-heading h2{max-width:900px;overflow-wrap:anywhere;word-break:normal;line-height:1.18}.cfs-chess-results-table{table-layout:auto;width:max-content;min-width:100%;max-width:none}.cfs-chess-results-table th{white-space:nowrap}.cfs-chess-results-table td{max-width:320px;white-space:normal;overflow-wrap:anywhere}.cfs-results-status a{color:var(--cfs-blue-dark);font-weight:700;text-decoration:none}
@media(max-width:700px){.cfs-tournament-detail .cfs-ratings-heading>div{max-width:100%}.cfs-tournament-detail .cfs-ratings-heading h2{font-size:22px}.cfs-chess-results-table{min-width:760px}}

/* v2.2.0 — clean Chess-Results tournament information restored. */
.cfs-tournament-info{
    margin:18px 0 20px;
    padding:20px;
    border:1px solid #dce5ec;
    border-radius:14px;
    background:#f8fafc;
}
.cfs-tournament-info__head span{
    display:block;
    color:#246a99;
    font-size:10px;
    font-weight:800;
    letter-spacing:1px;
}
.cfs-tournament-info__head h3{
    margin:4px 0 15px;
    color:#123e63;
    font-size:20px;
}
.cfs-tournament-info__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.cfs-tournament-info__grid>div{
    min-width:0;
    padding:12px 13px;
    border:1px solid #e3ebf1;
    border-radius:9px;
    background:#fff;
}
.cfs-tournament-info__grid span{
    display:block;
    margin-bottom:4px;
    color:#667085;
    font-size:9px;
    font-weight:800;
    letter-spacing:.5px;
    text-transform:uppercase;
}
.cfs-tournament-info__grid strong{
    display:block;
    color:#243b53;
    font-size:13px;
    line-height:1.4;
    overflow-wrap:anywhere;
}
@media(max-width:900px){.cfs-tournament-info__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.cfs-tournament-info__grid{grid-template-columns:1fr}}

/* v2.3 — all result views are preloaded; switching tabs is client-side and instant. */
.cfs-ratings-results-page [hidden]{display:none!important}
.cfs-round-tabs a[role="tab"]{cursor:pointer}
.cfs-round-tabs a:focus-visible,.cfs-ratings-tabs a:focus-visible{outline:3px solid rgba(36,106,153,.24);outline-offset:3px}
[data-cfs-round-panel]{animation:cfs-result-reveal .14s ease-out}
@keyframes cfs-result-reveal{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}
/* v2.3.0 final — no transition delay when switching preloaded result views. */
[data-cfs-round-panel]{animation:none!important}
