/* Стили публичной части — из утверждённого макета «Главная ФТСО».
   Вынесены из <style> в отдельный файл: строгий CSP (style-src 'self')
   инлайновые стили заблокировал бы. Значения не менялись. */

:root{
  --primary:#0e7a52; --primary-hover:#0a6543;
  --accent:#123d68; --accent-soft:#dfeaf6;
  --bg:#f5f7f9; --surface:#eaeff4; --surface-2:#eef3f7;
  --border:#d8e0e8; --text:#14212b; --muted:#5f6e7b;
  --shadow-sm:0 1px 2px rgba(18,61,104,.06), 0 2px 8px rgba(18,61,104,.05);
  --shadow-md:0 6px 24px rgba(18,61,104,.08), 0 2px 6px rgba(18,61,104,.05);
  --shadow-lg:0 18px 48px rgba(18,61,104,.12), 0 6px 16px rgba(18,61,104,.07);
  --noise-op:.16; --texture-op:.07;
  --tex-line:rgba(18,61,104,.55);
  --cta-grad:linear-gradient(135deg,#123d68,#0f5b79);
  --photo-filter:none;
  --card-hover-bg:linear-gradient(160deg,#eef6f1,#e7f0f8);
  --page-bg:#b3bcc4;
}
html[data-theme="dark"]{
  --primary:#27b377; --primary-hover:#1f8f60;
  --accent:#69a7e4; --accent-soft:#16293d;
  --bg:#0d141a; --surface:#111c25; --surface-2:#15222d;
  --border:#263644; --text:#edf3f7; --muted:#9eb0bf;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);
  --shadow-md:0 6px 24px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.3);
  --shadow-lg:0 20px 52px rgba(0,0,0,.55), 0 8px 18px rgba(0,0,0,.4);
  --noise-op:.2; --texture-op:.06;
  --tex-line:rgba(120,182,236,.6);
  --cta-grad:linear-gradient(135deg,#16293d,#123d68);
  --photo-filter:brightness(.9);
  --card-hover-bg:linear-gradient(160deg,#16232f,#182b3b);
  --page-bg:#15222d;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--page-bg); color:var(--text);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  font-size:clamp(1rem,.96rem + .2vw,1.125rem); line-height:1.6;
  -webkit-font-smoothing:antialiased; position:relative; overflow-x:hidden;
}
body::before{
  content:''; position:fixed; inset:0; pointer-events:none; z-index:0;
  opacity:var(--noise-op);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body>*{position:relative; z-index:1;}
h1,h2,h3,h4{font-family:'Manrope','Inter',sans-serif; line-height:1.12; margin:0; letter-spacing:-.01em; font-weight:800;}
p{margin:0;}
a{color:var(--primary); text-decoration:none;}
a:hover{color:var(--primary-hover);}
img{max-width:100%; display:block;}
:focus-visible{outline:3px solid var(--primary); outline-offset:3px; border-radius:6px;}

body, .site-header, section, footer, .card, .btn, .badge, .status, .stat, .photo, table, th, td, .hero-panel, .info-card, .reg-card, .news-card, .theme-toggle, .brand-mark, .nav-menu, .nav-menu a{
  transition:background-color 4.8s ease, color 4.8s ease, border-color 4.8s ease, box-shadow 4.8s ease, fill 4.8s ease, stroke 4.8s ease;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important; animation:none !important;}
}

.container{width:100%; max-width:1200px; margin:0 auto; padding:0 clamp(1rem,3vw,2rem);}
.eyebrow{font-family:'Manrope',sans-serif; font-weight:700; font-size:clamp(.8rem,.75rem + .2vw,.9rem); letter-spacing:.04em; text-transform:uppercase; color:var(--primary);}
.lead{font-size:clamp(1.125rem,1.05rem + .5vw,1.5rem); color:var(--muted); line-height:1.5;}
.section-head{max-width:56ch; margin-bottom:clamp(1.5rem,4vw,2.5rem);}
.section-head h2{font-size:clamp(1.5rem,1.2rem + 1.6vw,2.25rem); margin-bottom:.6rem;}
.section-pad{padding:clamp(3rem,7vw,5.5rem) 0;}
/* было инлайном style="padding-top:0" */
.section-pad--tight{padding-top:0;}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:.5rem; font-family:'Manrope',sans-serif; font-weight:700; font-size:1rem; border-radius:999px; padding:.8rem 1.5rem; border:1.5px solid transparent; cursor:pointer; text-decoration:none; line-height:1; position:relative;}
.btn::after{content:''; position:absolute; inset:0; border-radius:inherit; padding:1.5px; background:linear-gradient(135deg,#27b377,#69a7e4,#123d68); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:.55; filter:drop-shadow(0 0 4px rgba(39,179,119,.45)); transition:opacity .3s ease, filter .3s ease; pointer-events:none;}
.btn:hover::after{opacity:1; filter:drop-shadow(0 0 8px rgba(39,179,119,.6));}
.btn--primary{background:var(--primary); color:#fff;}
.btn--primary:hover{background:var(--primary-hover); color:#fff;}
.btn--secondary{background:var(--surface); color:var(--text); border-color:var(--border); box-shadow:var(--shadow-sm);}
.btn--secondary:hover{border-color:var(--primary); color:var(--primary);}
.btn--white{background:#fff; color:var(--accent);}
.btn--white:hover{background:#eef3f7; color:var(--accent);}
.btn--outline-white{background:transparent; color:#fff; border-color:rgba(255,255,255,.6);}
.btn--outline-white:hover{background:rgba(255,255,255,.12); color:#fff; border-color:#fff;}
.link-more{display:inline-flex; align-items:center; gap:.35rem; font-family:'Manrope',sans-serif; font-weight:700; color:var(--primary);}
.link-more:hover{gap:.6rem;}

/* header */
.site-header{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--surface) 86%, transparent); backdrop-filter:saturate(1.4) blur(12px); border-bottom:1px solid var(--border);}
.header-inner{display:flex; align-items:center; gap:1rem; min-height:72px;}
.brand{display:flex; align-items:center; gap:.7rem; color:var(--text); font-family:'Manrope',sans-serif;}
.brand:hover{color:var(--text);}
.brand-mark{width:44px; height:44px; border-radius:13px; background:linear-gradient(135deg,#0e7a52,#123d68); display:grid; place-items:center; box-shadow:var(--shadow-sm); flex:none;}
.brand-mark svg{width:26px; height:26px;}
.brand-name{font-weight:800; font-size:1.05rem; letter-spacing:-.01em; line-height:1.05;}
.brand-sub{display:block; font-family:'Inter',sans-serif; font-weight:500; font-size:.72rem; color:var(--muted); letter-spacing:.01em;}
/* Разделов 12 (по договору), а не 6 как в макете: шесть основных — пилюлями в ряд,
   как в дизайне, остальные — под «Ещё». nowrap держит ОДИН ряд высотой 72px. */
.nav-menu{display:flex; align-items:center; gap:.25rem; margin:0 auto; list-style:none; padding:0; flex-wrap:nowrap;}
.nav-menu a{font-family:'Manrope',sans-serif; font-weight:600; color:var(--text); padding:.5rem .8rem; border-radius:999px; font-size:.95rem; white-space:nowrap; display:block;}
.nav-menu a:hover{color:var(--primary); background:var(--surface-2);}
.nav-menu a[aria-current="page"]{color:var(--primary); background:var(--accent-soft);}

/* «Ещё» — выпадающий список остальных разделов */
.nav-more{position:relative;}
.nav-more-btn{display:inline-flex; align-items:center; gap:.25rem; font-family:'Manrope',sans-serif;
  font-weight:600; font-size:.95rem; color:var(--text); background:transparent; border:0;
  padding:.5rem .8rem; border-radius:999px; cursor:pointer; white-space:nowrap;}
.nav-more-btn svg{width:15px; height:15px; transition:transform .2s ease;}
.nav-more-btn:hover{color:var(--primary); background:var(--surface-2);}
.nav-more.is-current>.nav-more-btn{color:var(--primary); background:var(--accent-soft);}
.nav-more.is-open>.nav-more-btn svg{transform:rotate(180deg);}
.nav-more-list{position:absolute; top:calc(100% + .5rem); right:0; min-width:14rem; list-style:none;
  margin:0; padding:.4rem; background:var(--surface); border:1px solid var(--border);
  border-radius:1rem; box-shadow:var(--shadow-md); flex-direction:column; gap:.1rem; display:none; z-index:60;}
.nav-more.is-open>.nav-more-list{display:flex;}
.nav-more-list a{font-size:.95rem; padding:.5rem .75rem; border-radius:.7rem;}
.header-actions{display:flex; align-items:center; gap:.6rem; margin-left:auto;}
.theme-toggle{width:42px; height:42px; border-radius:999px; border:1.5px solid var(--border); background:var(--surface); color:var(--text); display:grid; place-items:center; cursor:pointer; flex:none;}
.theme-toggle:hover{border-color:var(--primary); color:var(--primary);}
.theme-toggle svg{width:20px; height:20px;}
.theme-toggle .i-moon{display:none;}
html[data-theme="dark"] .theme-toggle .i-sun{display:none;}
html[data-theme="dark"] .theme-toggle .i-moon{display:block;}
.burger{display:none; width:42px; height:42px; border-radius:12px; border:1.5px solid var(--border); background:var(--surface); color:var(--text); cursor:pointer; padding:0;}
.burger svg{width:22px; height:22px; margin:auto;}

/* меню сайта многостраничное и длиннее макетного — в бургер уходим раньше */
@media (max-width:1180px){
  .nav-menu{position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; gap:.15rem; margin:0; padding:.75rem clamp(1rem,3vw,2rem) 1.25rem; background:var(--surface); border-bottom:1px solid var(--border); box-shadow:var(--shadow-md); transform:translateY(-8px); opacity:0; pointer-events:none; visibility:hidden; transition:opacity .2s ease, transform .2s ease;}
  .nav-menu.is-open{opacity:1; transform:none; pointer-events:auto; visibility:visible;}
  .nav-menu a{padding:.7rem .9rem; font-size:1.05rem;}
  .burger{display:grid;}
  /* В бургере «Ещё» не нужно: все 12 разделов показываем плоским списком */
  .nav-more-btn{display:none;}
  .nav-more{position:static;}
  .nav-more-list{position:static; display:flex; min-width:0; margin:0; padding:0;
    background:none; border:0; border-radius:0; box-shadow:none; gap:.15rem;}
  .nav-more-list a{font-size:1.05rem; padding:.7rem .9rem; border-radius:999px;}
}

/* hero */
.hero{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5rem); position:relative; overflow:hidden;}
.court-watermark{position:absolute; pointer-events:none;}
.hero .court-watermark{top:-6%; right:-8%; width:min(56%,620px); opacity:var(--texture-op); color:var(--accent);}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.75rem,4vw,3.5rem); align-items:center; position:relative;}
.hero h1{font-size:clamp(2rem,1.3rem + 3vw,3.5rem); margin:1.1rem 0; text-wrap:balance;}
.hero .lead{max-width:44ch;}
.hero-cta{display:flex; flex-wrap:wrap; gap:.8rem; margin:1.75rem 0 2rem;}
.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;}
.stat{background:var(--surface); border:1px solid var(--border); border-radius:1.1rem; padding:1.1rem 1.25rem; box-shadow:var(--shadow-sm);}
.stat b{display:block; font-family:'Manrope',sans-serif; font-size:clamp(1.6rem,1.2rem + 1.4vw,2.1rem); font-weight:800; color:var(--text); line-height:1;}
.stat span{font-size:.9rem; color:var(--muted); display:block; margin-top:.35rem;}
.hero-panel{display:flex; flex-direction:column; gap:1rem;}
.photo{aspect-ratio:4/3; border-radius:1.5rem; overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--border); position:relative; background:var(--surface-2); filter:var(--photo-filter);}
.photo .ph-stripes{position:absolute; inset:0; background:repeating-linear-gradient(135deg, var(--surface-2), var(--surface-2) 14px, color-mix(in srgb,var(--accent) 8%, var(--surface-2)) 14px, color-mix(in srgb,var(--accent) 8%, var(--surface-2)) 28px);}
.photo .ph-label{position:absolute; inset:0; display:grid; place-items:center; text-align:center;}
.photo .ph-label span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.8rem; color:var(--muted); background:color-mix(in srgb,var(--surface) 80%, transparent); padding:.5rem .9rem; border-radius:999px; border:1px solid var(--border);}
.info-card{background:var(--surface); border:1px solid var(--border); border-radius:1.25rem; padding:1.1rem 1.25rem; box-shadow:var(--shadow-md); display:flex; align-items:center; gap:1rem; flex-wrap:wrap;}
.info-card .ic-item{display:flex; flex-direction:column; gap:.15rem;}
.info-card .ic-item small{font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; font-weight:600;}
.info-card .ic-item b{font-family:'Manrope',sans-serif; font-size:1.05rem;}
.info-card .ic-sep{width:1px; align-self:stretch; background:var(--border);}

/* badges & status */
.badge{display:inline-flex; align-items:center; font-family:'Manrope',sans-serif; font-weight:700; font-size:.82rem; padding:.28rem .7rem; border-radius:999px; letter-spacing:.01em;}
.badge--a{background:var(--accent); color:#fff;}
.badge--b{background:var(--primary); color:#fff;}
.status{display:inline-flex; align-items:center; gap:.45rem; font-weight:600; font-size:.88rem; padding:.3rem .75rem; border-radius:999px;}
.status::before{content:''; width:8px; height:8px; border-radius:50%;}
.status--open{background:color-mix(in srgb,var(--primary) 14%, transparent); color:var(--primary);}
.status--open::before{background:var(--primary);}
.status--announce{background:var(--accent-soft); color:var(--accent);}
.status--announce::before{background:var(--accent);}

/* tables */
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:1.25rem; border:1px solid var(--border); background:var(--surface); box-shadow:var(--shadow-md);}
table{width:100%; border-collapse:collapse; min-width:520px;}
thead th{text-align:left; font-family:'Manrope',sans-serif; font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:700; padding:1rem 1.25rem; border-bottom:1px solid var(--border); background:var(--surface-2);}
tbody td{padding:1rem 1.25rem; border-bottom:1px solid var(--border); vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr{cursor:pointer;}
tbody tr:hover{background:var(--surface-2);}
.t-date{font-family:'Manrope',sans-serif; font-weight:700; white-space:nowrap;}
.t-name a{color:var(--text); font-weight:600;}
.t-name a:hover{color:var(--primary);}
.rank{font-family:'Manrope',sans-serif; font-weight:800; font-size:1.1rem; color:var(--accent); width:2.5rem;}
.player{font-weight:600; color:var(--text);}
.pts{font-family:'Manrope',sans-serif; font-weight:700;}
.chg{font-weight:700; white-space:nowrap;}
.chg--up{color:var(--primary);} .chg--down{color:var(--muted);} .chg--flat{color:var(--muted);}
.chg--new{color:var(--accent);} .chg--none{color:var(--muted);}

/* tournaments layout */
.tourn-grid{display:grid; grid-template-columns:1.6fr 1fr; gap:clamp(1.25rem,3vw,2rem); align-items:start;}
/* без min-width:0 grid-элемент раздувается до min-content таблицы (520px) и
   вместо внутреннего скролла уезжает за экран — на мобильном это ломает вёрстку */
.tourn-grid>*{min-width:0;}
.table-foot{margin-top:1rem;}
.reg-card{background:var(--surface); border:1px solid var(--border); border-radius:1.5rem; padding:clamp(1.5rem,3vw,2rem); box-shadow:var(--shadow-md); position:sticky; top:96px;}
.reg-card h3{font-size:1.4rem; margin-bottom:.75rem;}
/* было инлайном style="color:var(--muted); margin-bottom:1.25rem" */
.reg-card-lead{color:var(--muted); margin-bottom:1.25rem;}
.reg-card ul{list-style:none; padding:0; margin:0 0 1.5rem; display:flex; flex-direction:column; gap:.85rem;}
.reg-card li{display:flex; gap:.65rem; align-items:flex-start; color:var(--muted); font-size:.98rem;}
.reg-card li svg{width:20px; height:20px; color:var(--primary); flex:none; margin-top:2px;}
.reg-card .btn{width:100%; justify-content:center;}

/* rating meta */
.rating-meta{display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-top:.5rem;}
.tag{display:inline-flex; align-items:center; font-family:'Manrope',sans-serif; font-weight:700; font-size:.8rem; padding:.28rem .7rem; border-radius:999px; background:var(--surface-2); color:var(--muted); border:1px solid var(--border);}
.rules-note{font-size:.92rem; color:var(--muted); max-width:70ch; margin-top:1rem;}

/* interactive cards — 3D tilt + surface-2 fill + court outline + glowing ring */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.25rem,3vw,1.75rem); perspective:1000px;}
.fx-card{position:relative; overflow:hidden; transform-style:preserve-3d; will-change:transform;
  transition:transform .18s ease-out, box-shadow .3s ease, background-color .45s ease, border-color .45s ease;}
.fx-card>*{position:relative; z-index:2; transform:translateZ(30px);}
.fx-card:hover{box-shadow:var(--shadow-lg), 0 0 22px rgba(14,122,82,.28); background:var(--surface-2); border-color:transparent;}
.fx-card::after{content:''; position:absolute; inset:0; border-radius:inherit; padding:1.6px; background:linear-gradient(135deg,#27b377,#69a7e4,#123d68); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .35s ease; z-index:4; pointer-events:none; transform:translateZ(34px);}
.fx-card:hover::after{opacity:1;}
/* декоративный SVG корта ОБЯЗАН быть absolute, иначе распухает высота карточки */
.fx-court{position:absolute; z-index:0; right:-10%; bottom:-16%; width:min(62%,260px); color:var(--accent); opacity:0; transform:translateZ(4px); transition:opacity .4s ease; pointer-events:none;}
.fx-card:hover .fx-court{opacity:var(--texture-op);}
.fx-card .court-watermark{position:absolute; transform:none; z-index:0;}
.fx-card h3, .fx-card b{transition:color .3s ease;}
.fx-card:hover h3, .fx-card:hover b{color:var(--accent);}
/* news card specifics */
.news-card{background:var(--surface); border:1px solid var(--border); border-radius:1.5rem; padding:clamp(1.4rem,2.5vw,1.75rem); box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:.7rem; text-decoration:none; color:inherit;}
.news-date{font-size:.85rem; color:var(--muted); font-weight:600; transition:color .3s ease;}
.news-card:hover .news-date{color:var(--primary);}
.news-card h3{font-size:1.2rem;}
.news-card p{color:var(--muted); font-size:.98rem; flex:1; transition:color .3s ease;}
.news-card:hover p{color:var(--text);}
.news-card .link-more{transition:color .3s ease, gap .3s ease;}
.news-card:hover .link-more{gap:.6rem;}

/* parallax + section watermarks */
[data-parallax]{will-change:transform;}
.section-wm{position:relative; overflow:hidden;}
.section-wm>.wm{position:absolute; pointer-events:none; opacity:var(--texture-op); color:var(--accent); z-index:0;}
.section-wm>.container{position:relative; z-index:1;}
/* были инлайном на .wm */
.wm--tourn{top:-8%; left:-6%; width:min(42%,460px);}
.wm--news{bottom:-14%; right:-6%; width:min(44%,480px);}

/* cta */
.cta-inner{position:relative; overflow:hidden; border-radius:2rem; background:var(--cta-grad); color:#fff; padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem); box-shadow:var(--shadow-lg);}
.cta-inner.fx-card:hover{background:var(--cta-grad); box-shadow:var(--shadow-lg), 0 0 26px rgba(39,179,119,.4);}
.cta-inner .court-watermark{bottom:-30%; right:-6%; width:min(50%,520px); opacity:.06; color:#fff;}
.cta-inner h2{font-size:clamp(1.6rem,1.2rem + 2vw,2.5rem); color:#fff; max-width:22ch; margin-bottom:1rem; text-wrap:balance;}
.cta-inner p{color:rgba(255,255,255,.85); max-width:50ch; margin-bottom:2rem; font-size:1.1rem;}
.cta-actions{display:flex; flex-wrap:wrap; gap:.9rem; position:relative;}

/* footer */
.site-footer{background:var(--surface); border-top:1px solid var(--border); padding:clamp(3rem,6vw,4.5rem) 0 2rem; margin-top:clamp(2rem,5vw,4rem);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:clamp(1.5rem,4vw,3rem);}
.footer-brand .brand{margin-bottom:1rem;}
.footer-about{color:var(--muted); font-size:.95rem; max-width:34ch;}
.footer-col h4{font-family:'Manrope',sans-serif; font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:1rem; font-weight:700;}
.footer-col ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.65rem;}
.footer-col a{color:var(--text); font-weight:500; font-size:.98rem;}
.footer-col a:hover{color:var(--primary);}
.footer-col address{font-style:normal; color:var(--muted); font-size:.95rem; line-height:1.7;}
.footer-bottom{margin-top:clamp(2rem,5vw,3rem); padding-top:1.5rem; border-top:1px solid var(--border); display:flex; flex-wrap:wrap; gap:1rem 1.5rem; align-items:center; justify-content:space-between; color:var(--muted); font-size:.9rem;}
.footer-legal{display:flex; gap:1.5rem; flex-wrap:wrap;}
.footer-legal a{color:var(--muted);}
.footer-legal a:hover{color:var(--primary);}

@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-panel{order:2;}
  .tourn-grid{grid-template-columns:1fr;}
  .reg-card{position:static;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .news-grid{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .info-card .ic-sep{display:none;}
}
@media (max-width:480px){
  .btn--register .btn-label{display:none;}
  .btn--register{padding:.75rem;}
  .brand-sub{display:none;}
}
/* mobile performance — тушим тяжёлые для телефона эффекты */
@media (max-width:960px){
  body::before{display:none;}
  .site-header{backdrop-filter:none; background:var(--surface);}
  .section-wm>.wm{display:none;}
  .fx-card{will-change:auto;}
  .fx-card::after, .fx-court{display:none;}
  .stat, .info-card, .reg-card, .news-card, .table-scroll{box-shadow:var(--shadow-sm);}
}

/* ------------------------------------------------------------------ */
/* Внутренние страницы каркаса: заглушки разделов, /rating, 404/500,   */
/* вход, правовые страницы. Дизайн внутренних страниц — отдельный шаг; */
/* здесь используются те же токены, чтобы вид был единым.              */
/* ------------------------------------------------------------------ */
.page-head{padding:clamp(2rem,5vw,3.5rem) 0 clamp(1rem,3vw,1.5rem);}
.page-head h1{font-size:clamp(1.8rem,1.3rem + 2vw,2.75rem); margin:.6rem 0;}
.panel{background:var(--surface); border:1px solid var(--border); border-radius:1.5rem; padding:clamp(1.4rem,3vw,2rem); box-shadow:var(--shadow-sm);}
.panel + .panel{margin-top:1.25rem;}
.muted{color:var(--muted);}
.notice{background:var(--surface-2); border:1px solid var(--border); border-radius:1rem; padding:1rem 1.25rem; color:var(--muted);}
.notice--warn{border-color:color-mix(in srgb,var(--accent) 35%, var(--border)); color:var(--text);}

.filters{display:flex; flex-wrap:wrap; gap:.75rem; align-items:flex-end; margin-bottom:1.25rem;}
.field{display:flex; flex-direction:column; gap:.35rem; min-width:0;}
.field label{font-family:'Manrope',sans-serif; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);}
.field input, .field select{font-family:'Inter',sans-serif; font-size:1rem; color:var(--text); background:var(--surface); border:1.5px solid var(--border); border-radius:.8rem; padding:.6rem .85rem; min-width:11rem;}
.field input:focus, .field select:focus{border-color:var(--primary); outline:none;}
.field--wide input{min-width:18rem;}
.filters .btn{padding:.65rem 1.25rem;}

.rating-summary{display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin:0 0 1rem;}
.rating-table tbody tr{cursor:default;}
.empty-state{text-align:center; padding:clamp(2rem,6vw,3.5rem) 1rem;}
.empty-state h2{font-size:1.4rem; margin-bottom:.6rem;}

.error-page{min-height:52vh; display:grid; place-items:center; text-align:center;}
.error-code{font-family:'Manrope',sans-serif; font-size:clamp(3.5rem,10vw,7rem); font-weight:800; color:var(--accent); line-height:1;}

.auth-wrap{min-height:70vh; display:grid; place-items:center; padding:2rem 0;}
.auth-card{width:min(420px,100%);}
.auth-card h1{font-size:1.6rem; margin-bottom:1.25rem;}
.form-grid{display:flex; flex-direction:column; gap:1rem;}
.form-grid .field input, .form-grid .field select{width:100%;}
.form-error{background:color-mix(in srgb,#b23b3b 12%, transparent); border:1px solid color-mix(in srgb,#b23b3b 40%, transparent); color:#b23b3b; border-radius:.8rem; padding:.75rem 1rem; font-size:.95rem;}
html[data-theme="dark"] .form-error{color:#ff9b9b;}

/* админка — временная простая вёрстка, её дизайн отдельным шагом */
.admin-shell{padding:clamp(1.5rem,4vw,2.5rem) 0 4rem;}
.admin-bar{display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-bottom:1.5rem;}
.admin-bar a{font-family:'Manrope',sans-serif; font-weight:600; color:var(--text); background:var(--surface); border:1px solid var(--border); border-radius:999px; padding:.45rem .95rem; font-size:.92rem;}
.admin-bar a:hover, .admin-bar a[aria-current="page"]{color:var(--primary); border-color:var(--primary);}
.admin-bar form{margin-left:auto;}
.admin-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; margin-bottom:1.5rem;}
.flash{border-radius:.9rem; padding:.85rem 1.15rem; margin-bottom:1.25rem; font-size:.95rem;}
.flash--ok{background:color-mix(in srgb,var(--primary) 14%, transparent); color:var(--primary); border:1px solid color-mix(in srgb,var(--primary) 35%, transparent);}
.flash--error{background:color-mix(in srgb,#b23b3b 12%, transparent); color:#b23b3b; border:1px solid color-mix(in srgb,#b23b3b 35%, transparent);}
html[data-theme="dark"] .flash--error{color:#ff9b9b;}
.inline-form{display:flex; flex-wrap:wrap; gap:.6rem; align-items:flex-end;}
.inline-form .btn{padding:.6rem 1.1rem;}
.btn--danger{background:transparent; color:#b23b3b; border-color:color-mix(in srgb,#b23b3b 45%, transparent);}
.btn--danger::after{display:none;}
.btn--danger:hover{background:color-mix(in srgb,#b23b3b 10%, transparent); color:#b23b3b;}
.btn--small{padding:.4rem .85rem; font-size:.85rem;}
.admin-table{min-width:640px;}
.admin-table tbody tr{cursor:default;}
/* строки-редакторы: поля компактнее обычных, чтобы таблица не расползалась */
.admin-table--edit{min-width:860px;}
.admin-table--edit td{padding:.6rem .75rem;}
.admin-table--edit input, .admin-table--edit select{min-width:0; width:100%; padding:.45rem .6rem; font-size:.92rem;}
.admin-table--edit .inline-form{gap:.4rem; flex-wrap:nowrap;}
.stack{display:flex; flex-direction:column; gap:1.5rem;}
.log-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; font-size:.9rem;}
.log-list li{color:var(--muted); border-bottom:1px solid var(--border); padding-bottom:.5rem;}
.log-list code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--text);}
.legal-body{max-width:70ch; display:flex; flex-direction:column; gap:1rem;}
.legal-body h2{font-size:1.2rem; margin-top:.75rem;}
.legal-body h3{font-size:1.02rem; margin-top:.25rem;}
.legal-body ul{margin:0; padding-left:1.35rem; display:flex; flex-direction:column; gap:.5rem;}
.legal-body li{padding-left:.15rem;}
/* --- публичные формы (регистрация) --- */
.form-panel{max-width:44rem;}
.stacked-form{display:flex; flex-direction:column; gap:1.1rem;}
.stacked-form .field{display:flex; flex-direction:column; gap:.35rem;}
.stacked-form input[type=text], .stacked-form input[type=email], .stacked-form select{
  width:100%; padding:.6rem .75rem; border:1px solid var(--border); border-radius:.6rem;
  background:var(--surface); color:var(--text); font:inherit;}
.stacked-form input:focus-visible, .stacked-form select:focus-visible{outline:2px solid var(--primary); outline-offset:1px;}
.field-hint{font-size:.85rem; color:var(--muted); margin:0;}
.req{color:var(--primary);}
.form-errors{border:1px solid var(--primary); border-radius:.75rem; padding:.9rem 1rem; margin-bottom:1.2rem;}
.form-errors ul{margin:.5rem 0 0; padding-left:1.2rem;}
/* Приманка для ботов: убрана из потока и с клавиатуры, но существует в разметке. */
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
/* min-inline-size:0 — у fieldset она по умолчанию min-content, и длинное
   содержимое (поле выбора файла) распирает страницу на узком экране. */
.consent-box{border:1px solid var(--border); border-radius:.75rem; padding:1rem; display:flex; flex-direction:column; gap:.85rem; min-inline-size:0;}
.stacked-form input[type=file]{max-width:100%; width:100%;}
.consent-box legend{padding:0 .4rem; font-weight:600;}
.check{display:flex; gap:.6rem; align-items:flex-start;}
.check input{margin-top:.25rem; flex:0 0 auto; width:1.05rem; height:1.05rem;}
.check label{font-size:.93rem; line-height:1.45;}
/* --- модерация заявок --- */
.reg-item{border-top:1px solid var(--border); padding:1rem 0; display:flex; flex-direction:column; gap:.5rem;}
.reg-item:first-of-type{border-top:0;}
.reg-head{display:flex; gap:.75rem; align-items:baseline; flex-wrap:wrap;}
.reg-meta{margin:0; font-size:.88rem;}
.reg-warn{border-left:3px solid var(--primary); padding:.5rem 0 .5rem .85rem;}
.reg-warn p{margin:0 0 .35rem;}
.reg-warn ul{margin:0; padding-left:1.2rem;}
.reg-actions{display:flex; gap:1.5rem; flex-wrap:wrap; align-items:flex-end;}
.consent-note{display:block; font-size:.78rem; margin-top:.25rem;}
.consent-proof{margin-top:.3rem; font-size:.82rem;}
.cabinet-steps{margin:0; padding-left:1.35rem; display:flex; flex-direction:column; gap:.5rem;}

/* --- несовершеннолетние и законный представитель --- */
/* Отметка «за участника отвечает представитель» — не украшение: она объясняет,
   почему у кабинета другой набор действий и другой контакт. */
.badge-line{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:.5rem 0 0;}
.badge--minor{background:var(--accent); color:#fff;}
/* Список подопечных: строка = участник + кнопка «открыть его кабинет». */
.cabinet-wards{list-style:none; margin:1rem 0 0; padding:0; display:flex; flex-direction:column;}
.ward-item{
  border-top:1px solid var(--border); padding:.85rem 0;
  display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between;
}
.ward-item:first-child{border-top:0;}
.ward-item .muted{display:block; font-size:.85rem;}
/* Колонка представителя в таблице игроков: форма замены раскрывается по месту,
   чтобы не уводить секретаря на отдельный экран ради трёх полей. */
.birth-input{min-width:9.5rem;}
.guardian-cell{min-width:14rem; font-size:.85rem;}
.guardian-cell details{margin-top:.4rem;}
.guardian-cell summary{cursor:pointer; color:var(--primary);}
.guardian-cell .stacked-form{margin-top:.5rem; gap:.5rem;}

/* --- доступность и адаптив (единый проход) --- */

/* Заголовок таблицы для скринридера: виден программе чтения, не занимает места.
   display:none тут не годится — скринридер его тоже не прочитает. */
.visually-hidden{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;
}
.doc-list{margin:0; padding-left:1.35rem; display:flex; flex-direction:column; gap:.6rem;}
.doc-list li{padding-left:.15rem;}
.news-card-title{font-size:1.15rem;}
.news-card-title a{color:var(--text);}
.news-card-title a:hover{color:var(--primary);}
.stacked-form textarea{
  width:100%; padding:.6rem .75rem; border:1px solid var(--border); border-radius:.6rem;
  background:var(--surface); color:var(--text); font:inherit; resize:vertical; min-height:6rem;}
.stacked-form textarea:focus-visible{outline:2px solid var(--primary); outline-offset:1px;}

/* Длинные значения (адреса, ссылки, имена файлов) на узком экране переносятся,
   а не растягивают страницу горизонтально. */
.legal-dl dd, .doc-list li, .reg-meta, address{overflow-wrap:anywhere;}

@media (max-width:760px){
  /* Служебные полосы админки и формы в строку — в колонку: иначе на телефоне
     они уезжают за край, и появляется горизонтальный скролл. */
  .admin-bar{flex-wrap:wrap; gap:.5rem;}
  .inline-form{flex-wrap:wrap;}
  .reg-actions{flex-direction:column; align-items:stretch; gap:1rem;}
  .form-panel{max-width:none;}
}

@media (max-width:400px){
  /* 360px — нижняя граница проверки. Кнопки не должны выходить за контейнер. */
  .btn{padding:.7rem 1.1rem; font-size:.95rem;}
  .hero-cta, .cta-actions{flex-direction:column; align-items:stretch;}
  .hero-cta .btn, .cta-actions .btn{justify-content:center;}
}
.player--anonymized{color:var(--muted); font-style:italic;}
.legal-statement{border-left:3px solid var(--primary); padding:.15rem 0 .15rem 1rem; margin:0;}
.legal-dl{margin:0; display:grid; grid-template-columns:minmax(9rem,auto) 1fr; gap:.5rem 1rem;}
.legal-dl dt{color:var(--muted);}
.legal-dl dd{margin:0;}
@media (max-width:520px){.legal-dl{grid-template-columns:1fr; gap:.15rem;} .legal-dl dd{margin-bottom:.6rem;}}
.skip-link{position:absolute; left:-9999px; top:0;}
.skip-link:focus{left:1rem; top:1rem; z-index:100; background:var(--surface); padding:.6rem 1rem; border-radius:.6rem; border:1px solid var(--primary);}

/* ── Баннер режима разработки ──────────────────────────────────────────────
   Правовое уведомление, а не промо: не закрывается, всегда первым в потоке.
   В потоке, а не position:fixed — иначе перекрывал бы контент на мобильном
   и ломал прокрутку к якорям. Тёмно-синяя полоса из палитры сайта: заметна,
   но не спорит с зелёным акцентом кнопок. */
.dev-notice{background:#123d68; color:#eaf2fa; border-bottom:3px solid var(--primary);}
html[data-theme="dark"] .dev-notice{background:#16293d; color:#dce8f2;}
.dev-notice__inner{display:flex; align-items:flex-start; gap:.7rem; padding:.7rem 0;}
.dev-notice__icon{flex:0 0 auto; width:1.25rem; height:1.25rem; margin-top:.12rem; color:#ffc961;}
.dev-notice__text{margin:0; font-size:.9375rem; line-height:1.45;}
.dev-notice__text strong{color:#ffd98a; font-weight:700;}
@media (max-width:520px){
  .dev-notice__inner{padding:.6rem 0; gap:.55rem;}
  .dev-notice__text{font-size:.875rem;}
}
