[hidden],.share-modal[hidden],.offline-badge[hidden],.pwa-banner[hidden],.home-reg-widget[hidden]{display:none!important}
button{font-family:inherit;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .15s cubic-bezier(0.16,1,0.3,1),background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease,opacity .15s ease}
button:active{transform:scale(0.97)}
.chips button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;height:38px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:12px;font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,0.12);transition:all .18s cubic-bezier(0.16,1,0.3,1)}
.chips button:hover{border-color:rgba(255,255,255,0.25);color:#fff}
.chips button.active{background:#eef5ff;color:#08111e;border-color:#eef5ff;box-shadow:0 3px 12px rgba(238,245,255,0.25);font-weight:800}
.chips button:active{transform:scale(0.95)}
.detail-back{display:inline-flex;align-items:center;gap:6px;margin:20px 0 12px;border:1px solid var(--line);border-radius:999px;background:rgba(16,29,45,0.85);backdrop-filter:blur(12px);color:#cbd5e1;padding:9px 16px;font-size:12px;font-weight:800;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(0,0,0,0.2)}
.detail-back:hover{background:rgba(35,75,127,0.45);color:#fff;border-color:#3b82f6;transform:translateX(-2px)}
.detail-back:active{transform:scale(0.96)}
.detail-tabs button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:11px;font-weight:800;cursor:pointer;transition:all .18s ease}
.detail-tabs button:hover{color:#fff;border-color:rgba(255,255,255,0.2)}
.detail-tabs button.active{background:#eef5ff;color:#07111f;box-shadow:0 3px 10px rgba(238,245,255,0.25)}
.detail-tabs button:active{transform:scale(0.95)}
.source-pill{cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .2s ease}
.source-pill:hover{background:rgba(255,255,255,0.1);color:#fff;border-color:rgba(255,255,255,0.2)}
.source-pill:active{transform:scale(0.96)}

/* Native App Segmented Control (iOS / Material) */
.segmented-control{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:rgba(11,23,38,0.95);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:4px;gap:4px;margin-bottom:12px;box-shadow:inset 0 2px 5px rgba(0,0,0,0.4)}
.segmented-control button{height:38px;border-radius:10px;border:0;background:transparent;color:#94a3b8;font-size:12.5px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(0.16,1,0.3,1);white-space:nowrap}
.segmented-control button:hover:not(.active){color:#fff}
.segmented-control button.active{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;font-weight:800;box-shadow:0 3px 12px rgba(37,99,235,0.4)}
.segmented-control button:active{transform:scale(0.96)}

/* Horizontal Filter Pills Row */
.filter-pills-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:12px}
.filter-pill-wrap{display:flex;flex-direction:column;background:rgba(16,29,45,0.8);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:6px 12px;position:relative;transition:all .18s ease;cursor:pointer}
.filter-pill-wrap:focus-within,.filter-pill-wrap:hover{border-color:rgba(59,130,246,0.5);background:rgba(23,44,72,0.9)}
.filter-pill-label{font-size:9px;font-weight:800;text-transform:uppercase;color:var(--muted);letter-spacing:.06em;margin-bottom:2px}
.filter-pill-wrap select{width:100%;border:0;background:transparent;color:#fff;font-size:12px;font-weight:700;padding:0;outline:none;cursor:pointer;text-overflow:ellipsis;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%2393c5fd' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;padding-right:16px}

/* iOS Settings Grouped Table View */
.link-stack{display:grid;background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,0.15)}
.link-stack button,.link-stack a{display:flex;align-items:center;justify-content:space-between;width:100%;color:inherit;text-align:left;padding:14px 18px;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,0.05);cursor:pointer;font:inherit;text-decoration:none;transition:background .15s ease}
.link-stack button:last-child,.link-stack a:last-child{border-bottom:0}
.link-stack button:hover,.link-stack a:hover{background:rgba(255,255,255,0.04)}
.link-stack button:active,.link-stack a:active{background:rgba(35,75,127,0.25)}
.link-stack span{display:grid;gap:2px}
.link-stack b{font-size:13.5px;font-weight:700;color:#fff}
.link-stack small{color:var(--muted);font-size:11px}
.link-stack strong{color:#60a5fa;font-size:15px}
.about-history{display:grid;gap:12px;color:#c1cedb;font-size:13px;line-height:1.7;margin:4px 2px 6px}
.quality-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 2px 8px}
.quality-chips span{padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:12px;font-weight:700;color:#dce8f4}
/* Медиацентр — видео и фотоальбомы */
.media-toolbar{margin-bottom:14px}
.media-search{margin-top:4px;margin-bottom:10px}
.media-filter{margin-bottom:14px}
.media-filter i{font-style:normal;opacity:.6;font-size:10px;margin-left:2px}
.video-feature{width:100%;aspect-ratio:16/9;border-radius:20px;border:1px solid rgba(255,255,255,0.12);background:#000;display:block;margin:10px 0 16px;box-shadow:0 10px 30px rgba(0,0,0,0.45)}
.media-list{display:grid;gap:12px}
.media-tournament-list{display:grid;gap:18px}
.media-tournament-group{padding:14px;border:1px solid rgba(96,165,250,.2);border-radius:22px;background:linear-gradient(145deg,rgba(20,42,72,.72),rgba(10,22,38,.82));box-shadow:0 10px 30px rgba(0,0,0,.18)}
.media-tournament-group.unlinked{border-color:rgba(255,255,255,.08);background:rgba(12,25,41,.62)}
.media-group-head{display:flex;align-items:center;gap:10px;margin:0 2px 13px}
.media-group-head>span{display:grid;gap:3px;min-width:0;flex:1}
.media-group-head small{font-size:9px;font-weight:900;letter-spacing:.08em;color:#60a5fa;text-transform:uppercase}
.media-group-head b{font-size:14px;line-height:1.3;color:#fff}
.media-group-head>i{display:grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:rgba(59,130,246,.16);color:#93c5fd;font-size:11px;font-style:normal;font-weight:900}
.media-group-head button{border:0;background:transparent;color:#93c5fd;font-size:11px;font-weight:800;padding:7px;white-space:nowrap}
.event-media-pane>h2{display:flex;align-items:center;gap:8px;margin:20px 0 12px;font-size:16px}
.event-materials-nav{display:flex;flex-direction:column;gap:14px;margin:0 0 18px;padding:18px;border:1px solid rgba(57,127,255,.28);border-radius:20px;background:radial-gradient(circle at 0 0,rgba(27,79,131,.24),transparent 55%),linear-gradient(145deg,#101f31,#0a1624);box-shadow:0 16px 40px rgba(0,0,0,.28)}
.event-materials-head{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.event-materials-head small{color:#60a5fa;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.event-materials-head b{font-size:18px;font-weight:700;color:#fff;line-height:1.25}
.event-materials-head span{font-size:12px;color:#8fa3b9}
.event-materials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.event-mat-card{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 11px;align-items:center;padding:12px 14px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:rgba(255,255,255,.04);color:#fff;text-align:left;cursor:pointer;transition:all .2s cubic-bezier(0.16,1,0.3,1)}
.event-mat-card:hover{border-color:rgba(90,150,255,.45);background:rgba(57,127,255,.14);transform:translateY(-2px)}
.event-mat-card .mat-icon{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(57,127,255,.16);font-size:18px}
.event-mat-card.photos .mat-icon{background:rgba(168,85,247,.16);color:#c084fc}
.event-mat-card.videos .mat-icon{background:rgba(239,68,68,.16);color:#f87171}
.event-mat-card.results .mat-icon{background:rgba(59,130,246,.16);color:#60a5fa}
.event-mat-card.athletes .mat-icon{background:rgba(16,185,129,.16);color:#34d399}
.event-mat-card.docs .mat-icon{background:rgba(245,158,11,.16);color:#f59e0b}
.event-mat-card .mat-info{display:flex;align-items:baseline;gap:6px;min-width:0}
.event-mat-card .mat-info strong{font-size:17px;font-weight:700;color:#fff}
.event-mat-card .mat-info small{font-size:10px;color:#9dafc2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-mat-card>b{font-size:11px;font-weight:750;color:#60a5fa}
.event-mat-card.photos>b{color:#c084fc}
.event-mat-card.videos>b{color:#f87171}
.event-mat-card.athletes>b{color:#34d399}
.event-mat-card.docs>b{color:#f59e0b}
.event-summary-passport{padding:18px 20px!important;border:1px solid rgba(255,255,255,.08)!important;background:rgba(15,28,46,.65)!important;backdrop-filter:blur(10px)!important;border-radius:18px!important;margin-bottom:16px!important}
.event-passport-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.passport-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.passport-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(59,130,246,.14);font-size:16px;flex-shrink:0}
.passport-item div{display:flex;flex-direction:column;gap:2px;min-width:0}
.passport-item small{font-size:9.5px;color:#8fa3b9;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.passport-item b{font-size:13px;color:#fff;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-materials-preview{display:none!important}
.event-card-actions i.photo-badge{color:#c084fc;border-color:rgba(192,132,252,.35);background:rgba(192,132,252,.12)}
.event-card-actions i.video-badge{color:#f87171;border-color:rgba(248,113,113,.35);background:rgba(248,113,113,.12)}
.desktop-event-materials{display:none}
.event-about-media{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border-color:rgba(59,130,246,.3);background:linear-gradient(145deg,rgba(18,49,83,.88),rgba(10,25,42,.92))}.event-about-media>div:first-child small{color:#7fb0ff;font-size:8px;font-weight:900;letter-spacing:.12em}.event-about-media h2{margin:5px 0 3px}.event-about-media p{margin:0!important}.event-about-covers{display:flex;flex-direction:row-reverse;padding-right:8px}.event-about-cover-btn{background:none;border:none;padding:0;margin:0;cursor:pointer;display:inline-flex;border-radius:14px}.event-about-cover-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.event-about-covers img,.event-about-cover-btn img{width:62px;height:62px;margin-right:-15px;border:3px solid #10233a;border-radius:14px;object-fit:cover;box-shadow:0 8px 20px #0005}.event-about-media>button{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 14px;border:1px solid rgba(147,197,253,.25);border-radius:12px;background:rgba(59,130,246,.15);color:#dbeafe;font-size:11px;font-weight:850}.event-about-media>button span{color:#7fb0ff}
@media(min-width:1024px){.event-about-media{grid-template-columns:minmax(0,1fr) auto auto}.event-about-media>button{grid-column:auto;min-width:190px}.event-about-covers img,.event-about-cover-btn img{width:72px;height:72px}}
.event-media-pane>h2:first-child{margin-top:2px}
.section-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:rgba(59,130,246,.16);color:#93c5fd;font-size:10px}
.event-album-list{display:grid;gap:12px}
.event-media-album{display:grid;grid-template-columns:110px 1fr;gap:13px;align-items:center;width:100%;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:17px;background:rgba(16,29,45,.75);color:inherit;text-align:left}
.event-media-album img{width:110px;aspect-ratio:16/10;object-fit:cover;border-radius:11px}
.event-media-album span{display:grid;gap:5px}.event-media-album b{font-size:13px;color:#fff}.event-media-album small{font-size:11px;color:var(--muted)}
@media(max-width:520px){.media-group-head{align-items:flex-start;flex-wrap:wrap}.media-group-head button{order:3;padding:3px 0}.media-tournament-group{padding:12px}.media-tournament-group .media-card{grid-template-columns:100px 1fr}.media-tournament-group .media-thumb-wrap{width:100px;height:64px}}
@media(min-width:900px){.media-tournament-group{padding:20px}.media-tournament-group .media-list{grid-template-columns:repeat(3,minmax(0,1fr))}.event-album-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tournament-results{display:grid;gap:14px;min-width:0;max-width:100%}
.result-explorer-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;border:1px solid rgba(96,165,250,.22);border-radius:17px;background:linear-gradient(135deg,rgba(29,78,216,.18),rgba(15,35,58,.82))}
.result-explorer-head span{display:grid;gap:4px}.result-explorer-head b{font-size:14px;color:#fff}.result-explorer-head small{font-size:11px;color:#9fb1c5}
.result-export-actions{display:flex;gap:8px;flex-shrink:0}.result-export-actions button{min-height:44px;padding:0 12px;border:1px solid rgba(147,197,253,.25);border-radius:11px;background:rgba(59,130,246,.12);color:#bfdbfe;font-size:10px;font-weight:850;cursor:pointer}.result-export-actions button:hover{background:rgba(59,130,246,.24);color:#fff}
.result-quick-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.result-filter-group{display:grid;gap:7px}.result-filter-group>small{color:#71879e;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.result-segments{display:flex;padding:4px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:#091522}.result-segments button{flex:1;min-height:44px;padding:0 9px;border:0;border-radius:9px;background:transparent;color:#8498ad;font-size:10px;font-weight:800;cursor:pointer}.result-segments button.active{background:#edf5ff;color:#07111f;box-shadow:0 5px 16px rgba(0,0,0,.25)}
.result-explorer-controls{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(160px,1fr));gap:10px;align-items:stretch}
.result-explorer-controls .search{margin:0}.result-explorer-controls .filter-pill-wrap{min-height:48px;justify-content:center}
.result-table-head{display:none}
.event-result-list{display:grid;gap:9px;min-width:0;max-width:100%}
.event-result-card{display:grid;grid-template-columns:minmax(78px,auto) minmax(0,1fr) minmax(100px,auto);gap:10px 14px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.075);border-radius:16px;background:rgba(15,29,47,.76);overflow:hidden;min-width:0;max-width:100%;box-sizing:border-box}
.event-result-card.rank-gold{border-color:rgba(234,179,8,.38);background:linear-gradient(135deg,rgba(234,179,8,.1),rgba(15,29,47,.85));box-shadow:0 4px 20px rgba(234,179,8,.08)}
.event-result-card.rank-silver{border-color:rgba(203,213,225,.35);background:linear-gradient(135deg,rgba(203,213,225,.08),rgba(15,29,47,.85));box-shadow:0 4px 18px rgba(203,213,225,.06)}
.event-result-card.rank-bronze{border-color:rgba(249,115,22,.35);background:linear-gradient(135deg,rgba(249,115,22,.08),rgba(15,29,47,.85));box-shadow:0 4px 18px rgba(249,115,22,.06)}
.result-rank.rank-gold strong{color:#fde047;font-weight:900}
.result-rank.rank-silver strong{color:#f1f5f9;font-weight:900}
.result-rank.rank-bronze strong{color:#fdba74;font-weight:900}
.result-group-header{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;margin:18px 0 8px;padding:11px 15px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(18,36,60,.65);backdrop-filter:blur(10px);flex-wrap:wrap}
.result-group-header:first-child{margin-top:2px}
.result-group-title{display:flex;align-items:center;gap:9px;min-width:0;flex:1 1 220px;flex-wrap:wrap}
.result-group-tag{font-size:8.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#60a5fa;padding:3px 8px;border-radius:6px;background:rgba(59,130,246,.14);border:1px solid rgba(96,165,250,.22);flex-shrink:0}
.result-group-title h3{margin:0;font-size:13.5px;font-weight:800;color:#fff;white-space:normal;word-break:break-word;line-height:1.35}
.result-group-count{font-size:10.5px;font-weight:700;color:#94a3b8;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.07);flex-shrink:0}
.result-complex-chips{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.complex-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:8px;background:rgba(30,58,95,.5);border:1px solid rgba(96,165,250,.2);font-size:10px;line-height:1.2}
.complex-chip .chip-name{color:#93c5fd;font-weight:600}
.complex-chip .chip-val{color:#fff;font-weight:800}
.load-more-results{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;margin-top:10px;padding:12px 20px;border:1px solid rgba(96,165,250,.25);border-radius:14px;background:rgba(59,130,246,.1);color:#bfdbfe;font-size:12px;font-weight:800;cursor:pointer;transition:all .2s ease}
.load-more-results:hover{background:rgba(59,130,246,.2);color:#fff;border-color:rgba(96,165,250,.4)}
.result-rank,.result-score{display:grid;gap:2px}.result-rank small,.result-score small{font-size:8.5px;line-height:1;text-transform:uppercase;letter-spacing:.1em;color:#6f849b}.result-rank strong{max-width:110px;overflow:hidden;text-overflow:ellipsis;color:#bfdbfe;font-size:12px;text-transform:capitalize;white-space:nowrap}.result-rank.empty-rank strong{color:#6f8195}.result-score{justify-items:end;text-align:right}.result-score strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:14px;white-space:nowrap}
.result-person{min-width:0;display:grid;gap:3px}.result-person b{color:#fff;font-size:13.5px;white-space:normal;word-break:break-word;line-height:1.3}.result-person small{color:#95a6ba;font-size:11px;line-height:1.35;white-space:normal;word-break:break-word}
.result-meta{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.result-meta span{display:inline-flex;gap:5px;align-items:center;max-width:100%;padding:5px 8px;border:1px solid rgba(147,197,253,.13);border-radius:8px;background:rgba(59,130,246,.07);color:#b8c7d8;font-size:10px;line-height:1.2;white-space:normal;word-break:break-word}.result-meta small{color:#71879e;font-size:8.5px;text-transform:uppercase;letter-spacing:.06em}
.result-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.result-actions>button{min-height:42px;padding:0;border:0;background:transparent;color:#93c5fd;font-size:10.5px;font-weight:800;white-space:nowrap}.result-actions>button span{margin-left:4px}.result-actions>small{color:#718398;font-size:10px}.result-details{min-width:0;color:#9eb0c3;font-size:10.5px}.result-details summary{min-height:42px;display:flex;align-items:center;cursor:pointer;font-weight:700;list-style:none}.result-details summary::-webkit-details-marker{display:none}.result-details summary:after{content:'＋';margin-left:5px;color:#60a5fa}.result-details[open]{width:100%}.result-details[open] summary:after{content:'−'}.result-details dl{display:grid;gap:0;margin:0 0 8px;padding:4px 0;border-top:1px solid rgba(255,255,255,.07)}.result-details dl div{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1fr);gap:12px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05)}.result-details dt{color:#71879e}.result-details dd{margin:0;color:#d5dfeb;text-align:right;overflow-wrap:anywhere}
.event-result-card-top{display:contents}
@media(max-width:800px){
  .result-explorer-head{align-items:flex-start;flex-direction:column;gap:10px}
  .result-quick-filters{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:8px;padding:2px 0 8px;scrollbar-width:none}
  .result-quick-filters::-webkit-scrollbar{display:none}
  .result-filter-group{flex-shrink:0;min-width:0}
  .result-filter-group>small{font-size:8px}
  .result-segments{padding:3px;border-radius:11px}
  .result-segments button{min-height:36px;padding:0 10px;font-size:10px;white-space:nowrap}
  .result-explorer-controls{grid-template-columns:1fr;gap:8px}
  .result-explorer-controls .search{grid-column:1/-1;min-height:44px}
  .result-explorer-controls .filter-pill-wrap{min-height:40px;width:100%;max-width:100%;box-sizing:border-box}
  .result-explorer-controls select{width:100%!important;max-width:100%!important}
  .tournament-results{overflow:hidden;max-width:100%;min-width:0}
  .event-result-list{max-width:100%;min-width:0}
  .result-export-actions{width:100%}
  .result-export-actions button{flex:1}
  .event-result-card{display:flex;flex-direction:column;gap:10px;padding:13px 14px;border-radius:16px}
  .event-result-card-top{display:flex;align-items:flex-start;gap:10px;width:100%}
  .result-rank{flex-shrink:0;min-width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
  .result-rank small{display:none}
  .result-rank strong{max-width:none;font-size:13.5px;font-weight:900;letter-spacing:-.02em}
  .result-person{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
  .result-person b{font-size:13.5px;line-height:1.25;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
  .result-person small{font-size:10.5px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .result-score{flex-shrink:0;text-align:right;padding:5px 9px;border-radius:9px;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.22)}
  .result-score small{font-size:7.5px;color:#93c5fd;text-transform:uppercase;letter-spacing:.05em}
  .result-score strong{max-width:none;font-size:12.5px;font-weight:800;color:#fff}
  .result-complex-chips{display:flex;flex-wrap:wrap;gap:5px;width:100%}
  .complex-chip{padding:3px 7px;font-size:9.5px;border-radius:6px}
  .result-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid rgba(255,255,255,.06);padding-top:4px}
  .result-details[open]+button{display:none}
}
@media(min-width:1000px){.result-table-head{position:sticky;top:174px;z-index:4;display:grid;grid-template-columns:110px minmax(240px,1fr) minmax(130px,auto);gap:14px;padding:10px 16px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#07121fee;backdrop-filter:blur(14px);color:#71879e;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.result-table-head span:last-child{text-align:right}.event-result-card{grid-template-columns:110px minmax(240px,1fr) minmax(130px,auto)}.result-person b{font-size:14px}.result-meta{grid-column:2}.result-actions{grid-column:3;grid-row:2;justify-content:flex-end}.result-details dl{position:absolute;z-index:5;width:min(420px,40vw);padding:10px 14px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#101f32;box-shadow:0 16px 40px rgba(0,0,0,.35)}}
@media(min-width:801px) and (max-width:1180px){.result-explorer-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.result-explorer-controls .search{grid-column:1/-1}}
@media print{body.printing-results{background:#fff!important;color:#111!important}.printing-results>*:not(main),.printing-results main>.screen:not([data-screen="event"]),.printing-results .detail-back,.printing-results .detail-hero,.printing-results .ics-export-btn,.printing-results .detail-tabs,.printing-results .detail-pane:not([data-pane-content="results"]),.printing-results .source-action,.printing-results .result-quick-filters,.printing-results .result-explorer-controls,.printing-results .result-export-actions,.printing-results .result-actions{display:none!important}.printing-results main#app{width:100%;margin:0;padding:0}.printing-results .screen[data-screen="event"],.printing-results .event-detail,.printing-results .detail-pane[data-pane-content="results"]{display:block!important}.printing-results .result-explorer-head,.printing-results .event-result-card,.printing-results .result-table-head{break-inside:avoid;border:1px solid #bbb;background:#fff!important;color:#111!important;box-shadow:none}.printing-results .result-explorer-head b,.printing-results .event-result-card b,.printing-results .result-rank strong,.printing-results .result-score strong{color:#111!important}.printing-results .result-explorer-head small,.printing-results .event-result-card small,.printing-results .result-meta span,.printing-results .result-table-head{color:#444!important}.printing-results .result-table-head{position:static;display:grid}.printing-results .event-result-list{gap:5px}.printing-results .result-meta span{border-color:#ccc;background:#fff}.printing-results .result-line{color:#111}}
.media-card{display:grid!important;grid-template-columns:130px minmax(0,1fr)!important;gap:14px!important;padding:12px!important;border-radius:18px!important;background:rgba(16,29,45,0.75)!important;border:1px solid rgba(255,255,255,0.08)!important;color:inherit!important;text-align:left!important;cursor:pointer!important;align-items:center!important;transition:all .2s cubic-bezier(0.16,1,0.3,1)!important;width:100%!important;box-sizing:border-box!important;overflow:hidden!important;min-height:86px!important;backdrop-filter:blur(8px)!important}
.media-card:hover{background:rgba(23,44,72,0.9)!important;border-color:rgba(59,130,246,0.35)!important;transform:translateY(-1px)!important}
.media-card:active{transform:scale(0.985)!important}
.media-card.playing{border-color:#3b82f6!important;background:rgba(23,54,93,0.65)!important;box-shadow:0 0 0 1px #3b82f6,0 4px 16px rgba(59,130,246,0.25)!important}
.media-thumb-wrap{position:relative!important;width:130px!important;height:80px!important;min-width:130px!important;max-width:130px!important;border-radius:12px!important;overflow:hidden!important;background:#17263a!important;flex-shrink:0!important}
.media-thumb-wrap img,.media-card img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;border-radius:12px!important}
.media-play-icon{position:absolute!important;inset:auto 6px 6px auto!important;width:22px!important;height:22px!important;border-radius:50%!important;background:rgba(0,0,0,0.75)!important;color:#fff!important;display:grid!important;place-items:center!important;font-size:9px!important;padding-left:2px!important;backdrop-filter:blur(4px)!important;border:1px solid rgba(255,255,255,0.25)!important}
.media-card span{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:5px!important;min-width:0!important;width:100%!important;overflow:hidden!important}
.media-card b{font-size:13px!important;font-weight:700!important;line-height:1.35!important;color:#fff!important;word-break:break-word!important;overflow-wrap:break-word!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
.media-card small{font-size:11px!important;color:var(--muted)!important;line-height:1.3!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.event-videos-pane .media-list{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;width:100%!important}
@media(min-width:700px){.event-videos-pane .media-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important;gap:14px!important}}
.album-list{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:520px){.album-list{grid-template-columns:1fr 1fr}}
.album-card{display:flex;flex-direction:column;border-radius:18px;background:rgba(16,29,45,0.75);border:1px solid rgba(255,255,255,0.08);overflow:hidden;color:inherit;text-align:left;cursor:pointer;padding:0;width:100%;transition:all .2s cubic-bezier(0.16,1,0.3,1);backdrop-filter:blur(8px)}
.album-card:hover{border-color:rgba(59,130,246,0.35);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.35)}
.album-card:active{transform:scale(0.985)}
.album-cover-wrap{position:relative;width:100%;aspect-ratio:16/10;background:#17263a;overflow:hidden}
.album-cover-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.album-count-badge{position:absolute;bottom:8px;right:8px;background:rgba(7,17,31,0.85);border:1px solid rgba(255,255,255,0.15);border-radius:8px;padding:3px 8px;font-size:10px;font-weight:800;color:#fff;backdrop-filter:blur(6px)}
.album-card span{padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.album-card b{font-size:14px;font-weight:700;line-height:1.35;color:#fff}
.album-card small{font-size:11.5px;color:var(--muted)}
.gallery-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px 18px;background:rgba(16,29,45,0.75);border:1px solid var(--line);border-radius:18px;backdrop-filter:blur(8px)}
.gallery-head b{font-size:15px;font-weight:700;color:#fff;display:block}
.gallery-head small{font-size:11.5px;color:var(--muted);margin-top:3px;display:block}
.gallery-head button{border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.06);color:#93c5fd;font-size:12px;font-weight:700;padding:9px 16px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:all .2s}
.gallery-head button:hover{background:rgba(59,130,246,0.2);color:#fff;border-color:rgba(59,130,246,0.4)}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media(min-width:520px){.photo-grid{grid-template-columns:repeat(4,1fr);gap:10px}}
.photo-item{border:0;background:#101d2d;padding:0;cursor:zoom-in;border-radius:14px;overflow:hidden;aspect-ratio:1/1;display:block;width:100%}
.photo-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.photo-item:hover img{transform:scale(1.06)}
.load-more{width:100%;margin:14px 0 4px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:#dce8f4;font-weight:700;cursor:pointer}
.event-card{position:relative}
.event-status{position:absolute;top:10px;left:10px;z-index:2;padding:5px 9px;border-radius:9px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.st-reg{background:#0e2418e6;color:#5fe0a3;border:1px solid #31c98766}
.st-past{background:#0b1726e6;color:#9fb0c2;border:1px solid var(--line)}
.st-up{background:#111f38e6;color:#8fb4ff;border:1px solid #4a90ff55}
.org-block{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--card);margin-bottom:10px}
.org-block h2{font:700 11px var(--display);color:#8fb4ff;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}
.org-person{padding:9px 0;border-top:1px solid var(--line)}.org-person:first-of-type{border-top:0}
.org-person{display:flex;align-items:center;gap:12px}.org-person img{width:64px;height:64px;border-radius:16px;object-fit:cover;object-position:top;background:#0b1726}
.org-person b{font-size:14px}.org-person small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.region-list{display:grid;gap:10px}
.region-card{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.region-card{width:100%;color:inherit;text-align:left}
.nearest-button{width:100%;height:48px;border:0;border-radius:14px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-weight:800;font-size:13px;margin-bottom:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 4px 16px rgba(37,99,235,0.3);transition:all .2s ease}
.nearest-button:hover{box-shadow:0 6px 20px rgba(37,99,235,0.45);transform:translateY(-1px)}
.nearest-button:active{transform:scale(0.98)}
.region-map{height:175px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#0c1b2c,#102a42);margin-bottom:12px;overflow:hidden}.region-map svg{width:100%;height:100%}.region-map path{fill:#173d5b;stroke:#3979a6;stroke-width:2}.region-map circle{fill:#ff565c;stroke:white;stroke-width:2;cursor:pointer}.region-detail-card{display:grid;grid-template-columns:90px 1fr;gap:15px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--card);margin-bottom:14px}.region-detail-card>img{width:90px;height:90px;border-radius:17px;object-fit:cover}.region-detail-card h2{margin:3px 0;font-size:17px}.region-detail-card p{color:var(--muted);font-size:12px}
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(2,6,13,0.92);display:none;align-items:center;justify-content:center;padding:56px 16px;backdrop-filter:blur(16px)}.lightbox.open{display:flex}.lightbox img{max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:12px;box-shadow:0 12px 36px rgba(0,0,0,0.5)}.lightbox button{position:absolute;border:1px solid rgba(255,255,255,0.15);background:rgba(255,255,255,0.1);color:#fff;border-radius:999px;width:48px;height:48px;font-size:26px;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(10px);transition:all .2s}.lightbox button:hover{background:rgba(255,255,255,0.2)}.lightbox [data-lightbox-close]{right:16px;top:16px}.lightbox [data-lightbox-prev]{left:16px}.lightbox [data-lightbox-next]{right:16px}.lightbox small{position:absolute;bottom:20px;color:#94a3b8;font-size:12px;font-weight:700;background:rgba(0,0,0,0.5);padding:4px 12px;border-radius:999px}
@media(prefers-reduced-motion:reduce){.lightbox,.lightbox *{animation:none!important;transition:none!important}}
.region-card>img{width:64px;height:64px;object-fit:cover;border-radius:12px;background:#0b1726}
.region-card b{font-size:13px;line-height:1.3}
.region-card small{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.4}
.region-card .reg-pres{color:#b8c6d5}
.region-actions{display:flex;gap:8px;margin-top:9px;align-items:center}
.region-actions a{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(11,23,38,0.8);color:#8fb4ff;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:all .18s ease}
.region-actions a:hover{background:#17365d;color:#fff;border-color:#3b82f6}
.region-actions a:active{transform:scale(0.95)}
.action-card i svg{width:20px;height:20px}
.record-avatar.rec-ic{display:grid;place-items:center;color:#8fb4ff}
.record-avatar.rec-ic svg{width:26px;height:26px}
.region-emblem{width:64px;height:64px;border-radius:12px;display:grid;place-items:center;font:800 20px var(--display);color:#8fb4ff;background:linear-gradient(145deg,#1c2f4a,#0e1a2b);border:1px solid var(--line)}
.discipline-list{display:grid;gap:12px}.discipline-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.discipline-card h2{font:700 17px var(--display);margin:0 0 10px}.discipline-card p{margin:0;color:#b9c8d7;font-size:12px;line-height:1.6}.history-timeline{display:grid;gap:0}.history-item{display:grid;grid-template-columns:46px 1fr;gap:12px}.history-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#17365d;color:#8fb4ff;font-size:10px;font-weight:900;position:relative}.history-item:not(:last-child) .history-dot:after{content:"";position:absolute;top:34px;bottom:-38px;width:1px;background:var(--line)}.history-copy{padding-bottom:24px}.history-copy b{font-size:14px}.history-copy p{color:#b9c8d7;font-size:12px;line-height:1.6;margin:6px 0 0}

/* PWA & Offline Badges */
.offline-badge{background:#f59e0b25;border:1px solid #f59e0b50;color:#fbbf24;padding:10px 14px;border-radius:14px;font-size:11px;margin:10px 16px 0;display:flex;align-items:center;gap:8px}
.pwa-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(135deg,#132845,#0c1a2e);border:1px solid #234b7f;border-radius:18px;padding:12px 14px;margin:10px 16px 0}
.pwa-banner-content{display:flex;align-items:center;gap:10px}
.pwa-banner-content img{width:36px;height:36px;border-radius:9px}
.pwa-banner-content b{font-size:13px;display:block}
.pwa-banner-content small{font-size:10px;color:#93afd6;display:block}
.pwa-btn{background:#ed1c24;color:white;border:0;border-radius:10px;padding:8px 14px;font-size:11px;font-weight:800;cursor:pointer}
.pwa-close{background:none;border:0;color:#93afd6;font-size:18px;cursor:pointer;padding:4px 8px}

/* Widget открытой регистрации на главной */
.home-reg-widget{background:linear-gradient(135deg,#1e3a1e,#112415);border:1px solid #2e6636;border-radius:20px;padding:16px;margin:14px 0 10px;display:grid;gap:10px}
.home-reg-head{display:flex;justify-content:space-between;align-items:center}
.home-reg-head span{color:#4ade80;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.home-reg-head strong{color:white;font-size:11px;background:#2e6636;padding:3px 8px;border-radius:999px}
.home-reg-card{background:#0c1a10;border:1px solid #244f2b;border-radius:14px;padding:12px;display:flex;align-items:center;justify-content:space-between;color:white;cursor:pointer}
.home-reg-card b{font-size:12px;line-height:1.3;display:block}
.home-reg-card small{font-size:10px;color:#86efac;margin-top:3px;display:block}
.home-reg-card strong{color:#4ade80;font-size:16px}

/* Фильтры городов и категорий */
.event-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.event-filter-row select{width:100%;height:44px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:white;padding:0 10px;font-size:12px}
.link-action{background:none;border:0;color:#8fb4ff;font-size:11px;font-weight:700;cursor:pointer;padding:0}

/* Калькулятор ступеней ГТО */
.calc-box{display:grid;gap:14px}
.calc-params{display:grid;gap:16px;background:rgba(16,29,45,0.75);border:1px solid rgba(255,255,255,0.08);border-radius:22px;padding:18px;box-shadow:0 4px 20px rgba(0,0,0,0.18);backdrop-filter:blur(8px)}
.calc-param-group{display:grid;gap:8px}
.calc-param-group label{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.calc-label-row{display:flex;justify-content:space-between;align-items:center}
.calc-label-row label{margin:0}
.calc-age-display{color:#38bdf8;font-size:14px;font-weight:800;font-family:var(--display)}
.calc-sex-toggle{margin-bottom:0!important}
#calc-age-range{width:100%;height:6px;border-radius:999px;background:#172a42;outline:none;accent-color:#2563eb;cursor:pointer;margin:8px 0 4px}
.calc-age-scale{display:flex;justify-content:space-between;color:#64748b;font-size:10px;font-weight:600;padding:0 2px}
.calc-stage-banner{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,rgba(23,54,93,0.45),rgba(16,38,66,0.3));border:1px solid rgba(59,130,246,0.3);border-radius:18px;padding:14px 18px;box-shadow:0 4px 16px rgba(0,0,0,0.15)}
.calc-stage-badge{padding:7px 14px;border-radius:12px;background:#17365d;color:#93c5fd;font:800 13px var(--display);border:1px solid rgba(147,197,253,0.25);white-space:nowrap;flex-shrink:0}
.calc-stage-info{display:grid;gap:3px;min-width:0}
.calc-stage-info b{font-size:14px;color:#fff}
.calc-stage-info small{font-size:11px;color:var(--muted);line-height:1.35}

/* Общий статус / Знак отличия */
.calc-badge-result{display:flex;align-items:center;gap:14px;border-radius:22px;padding:18px;border:1px solid var(--line);background:rgba(16,29,45,0.75);box-shadow:0 6px 20px rgba(0,0,0,0.2);transition:all .3s ease;backdrop-filter:blur(8px)}
.calc-badge-result.calc-gold,.calc-badge-result.badge-gold{background:linear-gradient(135deg,rgba(45,31,5,0.92) 0%,rgba(21,15,2,0.96) 100%);border-color:#d97706;box-shadow:0 8px 28px rgba(217,119,6,0.25)}
.calc-badge-result.calc-silver,.calc-badge-result.badge-silver{background:linear-gradient(135deg,rgba(30,41,59,0.92) 0%,rgba(15,23,42,0.96) 100%);border-color:#94a3b8;box-shadow:0 8px 28px rgba(148,163,184,0.22)}
.calc-badge-result.calc-bronze,.calc-badge-result.badge-bronze{background:linear-gradient(135deg,rgba(48,23,10,0.92) 0%,rgba(24,10,3,0.96) 100%);border-color:#b45309;box-shadow:0 8px 28px rgba(180,83,9,0.22)}
.calc-badge-result.calc-none,.calc-badge-result.badge-none{background:rgba(16,29,45,0.75);border-color:var(--line)}
.calc-badge-icon{font-size:32px;flex-shrink:0;display:grid;place-items:center}
.calc-badge-text{flex:1;min-width:0}
.calc-badge-text b{font:800 15px var(--display);display:block;margin-bottom:3px;color:#fff}
.calc-badge-text p{font-size:11.5px;color:#94a3b8;margin:0;line-height:1.4}
.calc-share-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;border-radius:999px;background:linear-gradient(135deg,#ff4a4f 0%,#d81f26 100%);border:1px solid rgba(255,255,255,0.18);color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(237,28,36,0.35);white-space:nowrap;align-self:center;flex-shrink:0;transition:all .2s cubic-bezier(0.16,1,0.3,1)}
.calc-share-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(237,28,36,0.5);filter:brightness(1.08)}
.calc-share-btn:active{transform:scale(0.95)}

/* Карточки испытаний */
.calc-tests-list{display:grid;gap:12px}
.calc-test-card{background:rgba(16,29,45,0.75);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:16px;display:grid;gap:12px;transition:all .25s cubic-bezier(0.16,1,0.3,1);backdrop-filter:blur(8px)}
.calc-test-card.grade-gold{border-color:rgba(245,158,11,0.5);box-shadow:0 4px 18px rgba(245,158,11,0.12)}
.calc-test-card.grade-silver{border-color:rgba(148,163,184,0.5);box-shadow:0 4px 18px rgba(148,163,184,0.12)}
.calc-test-card.grade-bronze{border-color:rgba(217,119,6,0.5);box-shadow:0 4px 18px rgba(217,119,6,0.12)}
.calc-test-header{display:flex;align-items:center;gap:12px}
.calc-test-icon{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.06);display:grid;place-items:center;font-size:20px;flex-shrink:0}
.calc-test-name{flex:1;min-width:0}
.calc-test-name b{font-size:14px;font-weight:700;color:#fff;display:block;margin-bottom:5px}
.calc-targets{display:flex;gap:6px;flex-wrap:wrap}
.calc-targets span{font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:6px;white-space:nowrap}
.calc-targets .t-bronze{color:#f59e0b;background:rgba(217,119,6,0.15);border:1px solid rgba(217,119,6,0.25)}
.calc-targets .t-silver{color:#cbd5e1;background:rgba(148,163,184,0.15);border:1px solid rgba(148,163,184,0.25)}
.calc-targets .t-gold{color:#fbbf24;background:rgba(251,191,36,0.15);border:1px solid rgba(251,191,36,0.25)}

/* Строка ввода и оценка */
.calc-test-input-row{display:flex;gap:10px;align-items:center}
.calc-test-input-row input{flex:1;height:46px;background:#07111f;border:1px solid rgba(255,255,255,0.12);border-radius:12px;color:#fff;font-size:15px;font-weight:700;padding:0 14px;outline:none;transition:all .2s ease;min-width:0}
.calc-test-input-row input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,0.25)}
.calc-test-input-row input::placeholder{color:#52637a;font-weight:500;font-size:12.5px}
.calc-grade-pill{height:46px;min-width:96px;padding:0 12px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;border:1px solid rgba(255,255,255,0.08);color:#64748b;background:rgba(255,255,255,0.04);text-align:center;white-space:nowrap;flex-shrink:0;transition:all .2s ease}
.calc-grade-pill.gold{background:linear-gradient(135deg,#d97706,#f59e0b);color:#000;border-color:#f59e0b;box-shadow:0 4px 14px rgba(245,158,11,0.3)}
.calc-grade-pill.silver{background:linear-gradient(135deg,#475569,#94a3b8);color:#fff;border-color:#94a3b8;box-shadow:0 4px 14px rgba(148,163,184,0.25)}
.calc-grade-pill.bronze{background:linear-gradient(135deg,#78350f,#b45309);color:#fff;border-color:#b45309;box-shadow:0 4px 14px rgba(180,83,9,0.25)}

.calc-benchmark-badge{background:rgba(14,27,43,0.8);border:1px solid rgba(59,130,246,0.2);border-radius:10px;padding:8px 12px;font-size:11px;color:#cbd5e1;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.calc-benchmark-badge b{color:#f59e0b}
.calc-benchmark-badge span:last-child{color:#38bdf8;font-weight:600}

/* Блок государственных льгот */
.calc-bonuses{background:linear-gradient(145deg,rgba(19,40,69,0.7),rgba(11,24,41,0.9));border:1px solid rgba(59,130,246,0.25);border-radius:20px;padding:18px;display:grid;gap:14px;margin-top:6px;backdrop-filter:blur(8px)}
.calc-bonuses h3{font:800 15px var(--display);color:#93c5fd;margin:0}
.bonus-item{display:grid;gap:5px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,0.06)}
.bonus-item:last-child{border-bottom:0;padding-bottom:0}
.bonus-item b{font-size:13px;color:#fff;display:flex;align-items:center;gap:6px}
.bonus-item p{font-size:11.5px;color:#94a3b8;margin:0;line-height:1.5}

/* Рекорды России — спортивный лидерборд */
.record-card{padding:12px 14px;border-radius:18px;background:#101d2d;border:1px solid rgba(255,255,255,0.07);display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;transition:all .2s cubic-bezier(0.16,1,0.3,1);cursor:pointer;user-select:none}
.record-card:hover{background:rgba(23,44,72,0.85);border-color:rgba(59,130,246,0.3);transform:translateY(-1px)}
.record-card:active{transform:scale(0.985);background:rgba(23,54,93,0.6)}
.record-avatar{width:44px;height:44px;border-radius:14px;object-fit:cover;background:linear-gradient(145deg,#1e3a5f,#0c1828);border:1px solid rgba(255,255,255,0.08)}
.record-avatar.rec-ic{display:grid;place-items:center;color:#60a5fa}
.record-avatar.rec-ic svg{width:22px;height:22px}
.record-info{min-width:0}
.record-info b{font-size:13.5px;font-weight:700;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.record-info small{color:var(--muted);font-size:11px;display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.record-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.record-num-col{display:flex;flex-direction:column;align-items:flex-end;justify-content:center}
.record-num-col strong{color:#fbbf24;font:800 15px var(--display);letter-spacing:-0.02em;line-height:1}
.record-sex-tag{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-top:3px;padding:2px 5px;border-radius:4px}
.record-sex-tag.sex-m{color:#93c5fd;background:rgba(59,130,246,0.15)}
.record-sex-tag.sex-w{color:#f472b6;background:rgba(244,114,182,0.15)}
.record-share-btn{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(59,130,246,0.12);border:1px solid rgba(96,165,250,0.28);color:#93c5fd;cursor:pointer;flex-shrink:0;transition:all .2s cubic-bezier(0.16,1,0.3,1);padding:0}
.record-share-btn svg{width:15px;height:15px;stroke:currentColor;display:block}
.record-share-btn:hover{background:rgba(59,130,246,0.3);border-color:#60a5fa;color:#fff;transform:scale(1.08);box-shadow:0 4px 12px rgba(59,130,246,0.35)}
.record-share-btn:active{transform:scale(0.9)}

/* Поиск атлета и Профиль спортсмена v68 */
.athlete-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:10px;margin-bottom:10px;text-align:left;color:inherit}
.athlete-card-head{display:flex;justify-content:space-between;align-items:center}
.athlete-card-head b{font-size:15px}
.athlete-card-meta{display:flex;gap:8px;font-size:11px;color:var(--muted)}
.athlete-profile-card{padding:0;overflow:hidden;background:linear-gradient(145deg,rgba(18,34,56,.94),rgba(10,22,37,.96))}
.athlete-profile-card>summary{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto 22px;align-items:center;gap:12px;min-height:82px;padding:14px;cursor:pointer;list-style:none}
.athlete-profile-card>summary::-webkit-details-marker{display:none}
.athlete-profile-card>summary:focus-visible{outline:2px solid #79adff;outline-offset:-3px;border-radius:17px}
.athlete-profile-photo{width:52px;height:52px;border-radius:15px;object-fit:cover;background:#14263d;border:1px solid rgba(255,255,255,.1)}
.athlete-profile-placeholder{display:grid;place-items:center;color:#8fb4ff;font:700 10px var(--display)}
.athlete-profile-main{display:grid;gap:5px;min-width:0}.athlete-profile-main b{overflow:hidden;text-overflow:ellipsis;font-size:14px;white-space:nowrap}.athlete-profile-main small{overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:10px;white-space:nowrap}
.athlete-profile-counts{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:2px 4px;color:#fff}.athlete-profile-counts b{font:700 12px var(--display);color:#f2b84b}.athlete-profile-counts small{font-size:9px;color:var(--muted)}
.athlete-profile-chevron{width:18px;height:18px;color:#7eaaf0;transition:transform .2s ease}.athlete-profile-card[open] .athlete-profile-chevron{transform:rotate(180deg)}
.athlete-profile-history{display:grid;gap:16px;padding:0 14px 16px;border-top:1px solid var(--line)}
.athlete-profile-history section{display:grid;gap:7px}.athlete-profile-history h3{margin:14px 0 2px;color:#91baff;font:700 11px var(--display);text-transform:uppercase;letter-spacing:.06em}
.athlete-profile-history article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.athlete-profile-history article:last-child{border-bottom:0}.athlete-profile-history article span{display:grid;gap:4px;min-width:0}.athlete-profile-history article b{font-size:11px;line-height:1.4}.athlete-profile-history article small{color:var(--muted);font-size:9px;line-height:1.45}.athlete-profile-history article strong{flex:none;color:#f2b84b;font:700 11px var(--display);text-align:right}
.athlete-profile-history>.share-sm-btn{justify-self:end;min-height:40px;padding:0 14px}
.athlete-medals{display:flex;gap:6px}
.ath-medal{padding:3px 7px;border-radius:6px;font-size:9px;font-weight:800}
.ath-medal.g{background:#fbbf2425;color:#fbbf24;border:1px solid #fbbf2440}
.ath-medal.s{background:#9ca3af25;color:#9ca3af;border:1px solid #9ca3af40}
.ath-medal.b{background:#d9770625;color:#d97706;border:1px solid #d9770640}
.athlete-events-list{display:grid;gap:6px;border-top:1px solid #ffffff12;padding-top:8px}
.athlete-event-row{display:flex;justify-content:space-between;font-size:11px;color:#cbd5e1}
.athlete-event-row small{color:var(--muted)}
.athlete-card-act{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,0.07)}
.share-sm-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px;border-radius:999px;background:rgba(59,130,246,0.12);border:1px solid rgba(96,165,250,0.35);color:#93c5fd;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,0.18);transition:all .2s ease}
.share-sm-btn svg{width:12px;height:12px;stroke:currentColor;flex-shrink:0}
.share-sm-btn:hover{background:rgba(59,130,246,0.26);color:#fff;border-color:#60a5fa;transform:translateY(-1px)}
.share-sm-btn:active{transform:scale(0.94)}

/* --- ДЕДИЦИРОВАННЫЙ ЭКРАН ПРОФИЛЯ СПОРТСМЕНА v68 --- */
.athlete-profile-container{display:grid;gap:18px;margin-top:14px;padding-bottom:30px}
.athlete-hero-card{background:linear-gradient(135deg,rgba(19,37,61,.95) 0%,rgba(10,21,35,.98) 100%);border:1px solid rgba(96,165,250,.25);border-radius:24px;padding:20px;display:grid;gap:16px;box-shadow:0 12px 36px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.1)}
.athlete-hero-top{display:flex;align-items:center;gap:16px}
.athlete-hero-avatar-wrap{position:relative;flex-shrink:0}
.athlete-hero-photo{width:76px;height:76px;border-radius:22px;object-fit:cover;background:#14263d;border:2px solid rgba(96,165,250,.4);box-shadow:0 6px 18px rgba(0,0,0,.4)}
.athlete-hero-avatar-placeholder{width:76px;height:76px;border-radius:22px;background:linear-gradient(135deg,#1e3a8a,#1e293b);border:2px solid rgba(96,165,250,.35);display:grid;place-items:center;color:#93c5fd;font:800 24px var(--display);letter-spacing:1px;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.athlete-hero-details{display:grid;gap:6px;min-width:0}
.athlete-id-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;background:rgba(59,130,246,.15);border:1px solid rgba(96,165,250,.3);color:#93c5fd;font:700 10.5px var(--display);letter-spacing:.04em;width:fit-content}
.athlete-hero-name{margin:0;font:800 20px/1.2 var(--display);color:#fff;word-break:break-word}
.athlete-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:#94a3b8}
.athlete-hero-meta b{color:#cbd5e1}
.athlete-hero-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.athlete-hero-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:12px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s ease}
.athlete-hero-btn.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:1px solid #60a5fa;color:#fff;box-shadow:0 4px 14px rgba(37,99,235,.35)}
.athlete-hero-btn.primary:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(37,99,235,.45)}
.athlete-hero-btn.secondary{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#cbd5e1}
.athlete-hero-btn.secondary:hover{background:rgba(255,255,255,.12);color:#fff}

/* Плашки-метрики (СТАРТЫ, ПОДИУМЫ, РЕКОРДЫ, ПОБЕДЫ) */
.athlete-metrics-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:480px){.athlete-metrics-strip{grid-template-columns:repeat(2,1fr)}}
.athlete-metric-card{background:linear-gradient(145deg,rgba(18,34,56,.7),rgba(10,22,37,.85));border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:12px 10px;display:grid;place-items:center;text-align:center;gap:3px;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.athlete-metric-card.gold{border-color:rgba(245,158,11,.3);background:linear-gradient(145deg,rgba(245,158,11,.1),rgba(10,22,37,.9))}
.athlete-metric-card.gold .athlete-metric-val{color:#fbbf24}
.athlete-metric-card.blue{border-color:rgba(59,130,246,.3);background:linear-gradient(145deg,rgba(59,130,246,.1),rgba(10,22,37,.9))}
.athlete-metric-card.blue .athlete-metric-val{color:#60a5fa}
.athlete-metric-card.green{border-color:rgba(16,185,129,.3);background:linear-gradient(145deg,rgba(16,185,129,.1),rgba(10,22,37,.9))}
.athlete-metric-card.green .athlete-metric-val{color:#34d399}
.athlete-metric-card.red{border-color:rgba(239,68,68,.3);background:linear-gradient(145deg,rgba(239,68,68,.1),rgba(10,22,37,.9))}
.athlete-metric-card.red .athlete-metric-val{color:#f87171}
.athlete-metric-val{font:800 22px/1 var(--display);color:#fff}
.athlete-metric-lbl{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}

/* Секции профиля */
.athlete-section{display:grid;gap:12px}
.athlete-section-title{display:flex;align-items:center;justify-content:space-between;margin:4px 0 0;font:700 13px var(--display);text-transform:uppercase;letter-spacing:.06em;color:#93c5fd}
.athlete-section-count{font:800 11px var(--display);background:rgba(59,130,246,.2);color:#60a5fa;border:1px solid rgba(96,165,250,.3);border-radius:999px;padding:2px 8px}

/* Карточки истории турниров */
.athlete-tourn-card{background:linear-gradient(145deg,rgba(17,32,53,.85),rgba(9,19,33,.92));border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:16px;display:grid;gap:12px;box-shadow:0 6px 18px rgba(0,0,0,.25);transition:border-color .2s ease}
.athlete-tourn-card:hover{border-color:rgba(96,165,250,.35)}
.athlete-tourn-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.athlete-tourn-title{margin:0;font:700 14.5px/1.3 var(--display);color:#fff}
.athlete-tourn-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;color:#94a3b8;margin-top:4px}
.athlete-tourn-body{display:grid;gap:8px}
.athlete-tourn-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.athlete-tourn-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:8px;font-size:11px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:#cbd5e1}
.athlete-badge-gold{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.4);color:#fbbf24;font:800 11.5px var(--display)}
.athlete-badge-silver{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;background:rgba(148,163,184,.15);border:1px solid rgba(148,163,184,.4);color:#e2e8f0;font:800 11.5px var(--display)}
.athlete-badge-bronze{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;background:rgba(217,119,6,.15);border:1px solid rgba(217,119,6,.4);color:#f97316;font:800 11.5px var(--display)}
.athlete-badge-rank{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.3);color:#93c5fd;font:700 11.5px var(--display)}
.athlete-badge-participant{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#94a3b8;font-size:11px}
.athlete-tourn-result-box{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:10px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.05);font-size:11.5px;color:#94a3b8}
.athlete-tourn-result-box strong{color:#fbbf24;font:700 13px var(--display)}
.athlete-tourn-events{margin-top:4px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:10px 12px;display:grid;gap:8px}
.athlete-tourn-events-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}
.athlete-tourn-events-list{display:grid;gap:6px}
.athlete-tourn-event-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;background:rgba(255,255,255,.03);border-radius:8px;border:1px solid rgba(255,255,255,.04)}
.athlete-tourn-event-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;color:#e2e8f0;line-height:1.3}
.athlete-tourn-event-idx{color:#60a5fa;font-weight:700;font-size:11px}
.athlete-tourn-event-sub{color:#94a3b8;font-size:11px}
.athlete-tourn-event-res{display:flex;align-items:center;gap:6px;white-space:nowrap}
.athlete-tourn-event-val{font-family:var(--mono);font-size:12px;font-weight:700;color:#fbbf24}
.athlete-tourn-event-rank{font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;background:rgba(255,255,255,.08);color:#cbd5e1}
.athlete-tourn-events-single{font-size:11.5px;color:#94a3b8;padding:4px 0}
.athlete-tourn-events-single b{color:#cbd5e1}
.athlete-protocol-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;background:rgba(59,130,246,.12);border:1px solid rgba(96,165,250,.3);color:#93c5fd;font-size:11.5px;font-weight:700;cursor:pointer;width:fit-content;transition:all .2s ease}
.athlete-protocol-btn:hover{background:rgba(59,130,246,.25);color:#fff;border-color:#60a5fa}

/* Карточки рекордов */
.athlete-records-grid{display:grid;gap:10px}
.athlete-record-card{background:linear-gradient(145deg,rgba(25,38,58,.8),rgba(12,21,35,.9));border:1px solid rgba(245,158,11,.25);border-radius:16px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.athlete-record-left{display:flex;align-items:center;gap:12px;min-width:0}
.athlete-record-icon{width:40px;height:40px;border-radius:12px;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.35);color:#fbbf24;display:grid;place-items:center;flex-shrink:0}
.athlete-record-icon svg{width:20px;height:20px}
.athlete-record-info{display:grid;gap:3px;min-width:0}
.athlete-record-title{font:700 13px/1.3 var(--display);color:#fff}
.athlete-record-meta{font-size:10.5px;color:#94a3b8}
.athlete-record-right{text-align:right;flex-shrink:0}
.athlete-record-val{font:800 18px var(--display);color:#fbbf24}
.athlete-record-tag{font-size:9px;color:#cbd5e1;text-transform:uppercase;letter-spacing:.04em}

/* Обновлённые карточки в результатах поиска */
.athlete-search-item{background:linear-gradient(145deg,rgba(17,32,53,.85),rgba(9,19,33,.92));border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;transition:all .2s ease;margin-bottom:10px}
.athlete-search-item:hover{border-color:rgba(96,165,250,.4);transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.athlete-search-item:active{transform:scale(.98)}
.athlete-search-item-left{display:flex;align-items:center;gap:12px;min-width:0}
.athlete-search-item-photo{width:48px;height:48px;border-radius:14px;object-fit:cover;background:#14263d;border:1px solid rgba(255,255,255,.1);flex-shrink:0}
.athlete-search-item-info{display:grid;gap:3px;min-width:0}
.athlete-search-item-info b{font:700 14px var(--display);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.athlete-search-item-info small{color:#94a3b8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.athlete-search-item-stats{display:flex;gap:8px;margin-top:2px}
.athlete-search-stat-pill{font-size:10px;font-weight:700;color:#93c5fd;background:rgba(59,130,246,.12);border:1px solid rgba(96,165,250,.25);border-radius:6px;padding:1px 6px}
.athlete-search-stat-pill.gold{color:#fbbf24;background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.25)}
.athlete-search-item-arrow{color:#60a5fa;font-weight:800;font-size:18px;flex-shrink:0;margin-right:4px;transition:transform .2s ease}
.athlete-search-item:hover .athlete-search-item-arrow{transform:translateX(3px)}


/* Модалка шеринга карточки */
.share-modal{position:fixed;inset:0;background:#000000bd;backdrop-filter:blur(10px);z-index:999;display:grid;place-items:center;padding:16px}
.share-dialog{background:linear-gradient(180deg,#0f2038 0%,#07111f 100%);border:1px solid rgba(59,130,246,0.3);border-radius:28px;width:100%;max-width:390px;padding:22px;position:relative;display:grid;gap:14px;box-shadow:0 24px 64px rgba(0,0,0,0.8),0 0 0 1px rgba(255,255,255,0.05)}
.share-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);color:#cbd5e1;cursor:pointer;display:grid;place-items:center;transition:all .2s ease}
.share-close:hover{background:rgba(255,255,255,0.16);color:#fff;transform:rotate(90deg)}
.share-close:active{transform:scale(0.92) rotate(90deg)}
.share-dialog h2{font:700 18px var(--display);margin:0}
.share-sub{font-size:11px;color:var(--muted);margin:0}
.canvas-wrap{width:100%;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:#07111f;border:1px solid rgba(255,255,255,0.12);box-shadow:0 8px 24px rgba(0,0,0,0.4)}
.canvas-wrap canvas{width:100%;height:100%;display:block}
.share-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.share-btn{height:48px;border-radius:14px;font-size:12.5px;font-weight:800;cursor:pointer;border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;letter-spacing:0.01em;transition:all .2s cubic-bezier(0.16,1,0.3,1)}
.share-btn svg{width:15px;height:15px;stroke:currentColor;flex-shrink:0}
.share-btn.primary{background:linear-gradient(135deg,#ff4a4f 0%,#d81f26 100%);color:#fff;box-shadow:0 6px 20px rgba(255,74,79,0.35);border:1px solid rgba(255,255,255,0.15)}
.share-btn.primary:hover{box-shadow:0 8px 24px rgba(255,74,79,0.5);transform:translateY(-1px);filter:brightness(1.06)}
.share-btn.primary:active{transform:scale(0.96);box-shadow:0 2px 8px rgba(255,74,79,0.3)}
.share-btn.secondary{background:rgba(23,54,93,0.65);color:#93afd6;border:1px solid rgba(59,130,246,0.3);backdrop-filter:blur(8px)}
.share-btn.secondary:hover{background:rgba(35,75,127,0.7);color:#fff;border-color:#60a5fa;transform:translateY(-1px)}
.share-btn.secondary:active{transform:scale(0.96)}

/* Разряды ЕВСК */
.evsk-box{margin-top:16px;display:grid;gap:12px}
.evsk-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:8px}
.evsk-card h3{font:700 15px var(--display);margin:0;color:#93afd6}
.evsk-table{width:100%;border-collapse:collapse;font-size:11px}
.evsk-table th{color:var(--muted);text-align:left;padding:6px 4px;border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase}
.evsk-table td{padding:7px 4px;border-bottom:1px solid #ffffff0d;color:#cbd5e1}
.evsk-table tr:last-child td{border-bottom:0}
.evsk-badge{display:inline-block;padding:2px 6px;border-radius:6px;font-weight:800;font-size:10px;background:#17365d;color:#8fb4ff}
.card-share-btn{background:none;border:0;color:#8fb4ff;font-size:10px;font-weight:700;cursor:pointer;padding:4px 0;margin-top:4px;display:inline-flex;align-items:center;gap:4px}

/* Таймер WOD & Intervals */
.timer-box{display:grid;gap:16px;margin-top:8px}
.timer-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:rgba(11,23,38,0.95);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:4px;box-shadow:inset 0 2px 5px rgba(0,0,0,0.4)}
.timer-mode-btn{height:38px;padding:0 4px;border:0;border-radius:10px;background:transparent;color:#94a3b8;font-size:11px;font-weight:800;cursor:pointer;text-align:center;display:grid;place-items:center;transition:all .2s cubic-bezier(0.16,1,0.3,1);white-space:nowrap}
.timer-mode-btn:hover{color:#fff}
.timer-mode-btn.active{background:linear-gradient(135deg,#ff4a4f,#d81f26);color:#fff;box-shadow:0 3px 12px rgba(255,74,79,0.4)}
.timer-mode-btn:active{transform:scale(0.95)}
.timer-display-card{background:radial-gradient(circle at center,#162b48 0%,#07111f 100%);border:2px solid #234b7f;border-radius:28px;padding:32px 16px;text-align:center;box-shadow:0 12px 36px #00000066;position:relative;overflow:hidden}
.timer-phase-badge{display:inline-block;padding:6px 16px;border-radius:999px;font:800 12px var(--display);letter-spacing:1px;text-transform:uppercase;margin-bottom:12px}
.phase-work{background:#10b98125;color:#34d399;border:1px solid #10b98150}
.phase-rest{background:#f59e0b25;color:#fbbf24;border:1px solid #f59e0b50}
.phase-countdown{background:#ed1c2425;color:#f87171;border:1px solid #ed1c2450}
.phase-finished{background:#3b82f625;color:#60a5fa;border:1px solid #3b82f650}
.timer-digits{font:900 80px/1 var(--display);letter-spacing:2px;color:#fff;text-shadow:0 4px 20px rgba(255,255,255,0.2);margin:8px 0}
.timer-round-info{font-size:14px;color:#94a3b8;font-weight:700}
.timer-round-info b{color:#38bdf8}
.timer-controls{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-top:8px}
.timer-btn{height:54px;border-radius:16px;font:800 15px var(--display);cursor:pointer;border:0;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 20px rgba(0,0,0,0.25);transition:all .2s cubic-bezier(0.16,1,0.3,1)}
.timer-btn.start{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 6px 20px rgba(16,185,129,0.35)}
.timer-btn.pause{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 6px 20px rgba(245,158,11,0.35)}
.timer-btn.reset{background:rgba(23,54,93,0.65);color:#93afd6;border:1px solid #234b7f}
.timer-btn:active{transform:scale(0.96)}
.timer-presets{display:grid;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px}
.timer-presets h3{font:700 13px var(--display);margin:0 0 6px;color:#cbd5e1}
.preset-chips{display:flex;flex-wrap:wrap;gap:6px}
.preset-chip{padding:7px 12px;border-radius:10px;background:#07111f;border:1px solid var(--line);color:#94a3b8;font-size:11px;font-weight:700;cursor:pointer;transition:all .18s ease}
.preset-chip:hover{border-color:#38bdf8;color:#fff}
.preset-chip:active{transform:scale(0.95);background:#17365d}

/* Timer Config & Steppers */
.timer-config-panel{background:rgba(16,29,45,.75);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:14px;display:grid;gap:12px;backdrop-filter:blur(10px)}
.timer-config-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.07)}
.timer-config-header span{font:700 12.5px var(--display);color:#fff}
.timer-config-header small{font-size:10.5px;color:#93c5fd;font-weight:600}
.timer-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.timer-stepper-item{display:flex;flex-direction:column;gap:5px;background:rgba(7,17,31,.6);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:8px 10px}
.timer-stepper-item label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8fa3b8;font-weight:700}
.timer-stepper{display:flex;align-items:center;justify-content:space-between;gap:6px}
.stepper-btn{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font:800 18px var(--display);display:grid;place-items:center;cursor:pointer;transition:all .15s ease}
.stepper-btn:active{transform:scale(.9);background:#3b82f6;border-color:#3b82f6}
.stepper-val{font:800 15px var(--display);color:#38bdf8;text-align:center;min-width:48px}
.timer-countdown-row{display:flex;flex-direction:column;gap:6px;padding-top:4px}
.timer-countdown-row label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8fa3b8;font-weight:700}
.timer-countdown-chips{display:flex;flex-wrap:wrap;gap:6px}
.countdown-chip{padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#94a3b8;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s ease}
.countdown-chip.active{background:#ff4a4f;border-color:#ff4a4f;color:#fff;box-shadow:0 2px 8px rgba(255,74,79,.3)}
.countdown-chip:active{transform:scale(.95)}

/* Athlete Search Top Nav & Banner */
.events-top-nav{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 12px;padding:4px;background:rgba(11,23,38,.9);border:1px solid rgba(255,255,255,.08);border-radius:14px}
.events-nav-tab{display:flex;align-items:center;justify-content:center;gap:7px;height:40px;border:0;border-radius:10px;background:transparent;color:#94a3b8;font-size:12px;font-weight:750;cursor:pointer;transition:all .18s ease}
.events-nav-tab.active{background:linear-gradient(135deg,#ff4a4f,#d81f26);color:#fff;box-shadow:0 3px 10px rgba(255,74,79,.3)}
.events-nav-tab:active{transform:scale(.97)}
.athlete-search-banner{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 14px;padding:12px 14px;border:1px solid rgba(59,130,246,.3);border-radius:16px;background:radial-gradient(circle at 0 0,rgba(59,130,246,.2),transparent 60%),linear-gradient(145deg,rgba(16,29,45,.85),rgba(9,19,33,.92));color:inherit;text-align:left;cursor:pointer;transition:all .2s ease}
.athlete-search-banner:hover{border-color:rgba(96,165,250,.5);transform:translateY(-1px)}
.athlete-search-banner:active{transform:scale(.98)}
.athlete-search-banner.records-theme{border-color:rgba(234,179,8,.3);background:radial-gradient(circle at 0 0,rgba(234,179,8,.18),transparent 60%),linear-gradient(145deg,rgba(16,29,45,.85),rgba(9,19,33,.92))}
.asb-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(59,130,246,.18);color:#60a5fa;flex-shrink:0}
.records-theme .asb-icon{background:rgba(234,179,8,.18);color:#facc15}
.asb-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.asb-text b{font-size:12.5px;color:#fff;line-height:1.3}
.asb-text small{font-size:10.5px;color:#93a6be;line-height:1.3}
.asb-arrow{font-size:11.5px;font-weight:800;color:#60a5fa;flex-shrink:0}
.records-theme .asb-arrow{color:#facc15}

/* Unified SVG Event Icon Badges (no text) */
.event-icon-badges{display:flex;align-items:center;gap:5px;margin-left:auto}
.event-icon-badge{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;flex-shrink:0;transition:transform .15s ease}
.event-icon-badge:hover{transform:scale(1.1)}
.event-icon-badge.badge-results{background:rgba(59,130,246,.16);border:1px solid rgba(96,165,250,.35);color:#60a5fa}
.event-icon-badge.badge-photos{background:rgba(168,85,247,.16);border:1px solid rgba(192,132,252,.35);color:#c084fc}
.event-icon-badge.badge-videos{background:rgba(239,68,68,.16);border:1px solid rgba(248,113,113,.35);color:#f87171}
.event-icon-badge.badge-reg{background:rgba(16,185,129,.16);border:1px solid rgba(52,211,153,.35);color:#34d399}

/* Quick Athlete Guide Suggestions */
.athlete-search-guide{display:grid;gap:14px;margin-top:8px}
.asg-card{padding:16px;border-radius:16px;background:rgba(16,29,45,.7);border:1px solid rgba(255,255,255,.08);display:grid;gap:6px;text-align:center;place-items:center}
.asg-icon{font-size:28px}
.asg-card b{font-size:14px;color:#fff}
.asg-card p{font-size:12px;color:#94a3b8;margin:0;max-width:380px;line-height:1.45}
.asg-suggestions{display:grid;gap:8px}
.asg-suggestions small{font-size:10.5px;color:#71879e;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.asg-chips{display:flex;flex-wrap:wrap;gap:6px}
.asg-chip{padding:7px 12px;border-radius:10px;background:rgba(59,130,246,.1);border:1px solid rgba(96,165,250,.25);color:#bfdbfe;font-size:11.5px;font-weight:700;cursor:pointer;transition:all .15s ease}
.asg-chip:hover{background:rgba(59,130,246,.25);color:#fff}
.asg-chip:active{transform:scale(.95)}

/* Судейские стандарты */
.standards-list{display:grid;gap:14px;margin-top:12px}
.standard-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;display:grid;gap:12px}
.standard-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.standard-card-head h2{font:700 16px var(--display);margin:0;color:#fff}
.standard-tag{padding:4px 8px;border-radius:8px;font-size:10px;font-weight:800;background:#17365d;color:#8fb4ff}
.std-equip{font-size:11px;color:var(--muted);margin:0}
.std-block{border-radius:12px;padding:12px}
.std-block.rep{background:#10b98110;border-left:4px solid #10b981}
.std-block.rep b{color:#34d399;display:block;margin-bottom:6px;font-size:12px}
.std-block.no-rep{background:#ed1c2410;border-left:4px solid #ed1c24}
.std-block.no-rep b{color:#f87171;display:block;margin-bottom:6px;font-size:12px}
.std-block ul{margin:0;padding-left:18px;font-size:11px;color:#cbd5e1;line-height:1.6}
.std-tip{background:#07111f;border:1px dashed #38bdf850;border-radius:12px;padding:10px 12px;font-size:11px;color:#7dd3fc}
.std-tip b{color:#38bdf8}

/* Кнопка экспорта в календарь */
.ics-export-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:14px;background:linear-gradient(135deg,#17365d 0%,#0d223c 100%);color:#93c5fd;border:1px solid rgba(59,130,246,0.35);font-size:12px;font-weight:800;cursor:pointer;margin:10px 0;width:100%;box-shadow:0 4px 14px rgba(0,0,0,0.2);transition:all .2s ease}
.ics-export-btn svg{width:15px;height:15px;stroke:currentColor;flex-shrink:0}
.ics-export-btn:hover{background:linear-gradient(135deg,#1e4272 0%,#132f52 100%);color:#fff;border-color:#60a5fa;transform:translateY(-1px)}
.ics-export-btn:active{transform:scale(0.98)}
.route-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:28px;padding:0 12px;border-radius:999px;background:rgba(245,158,11,0.14);color:#fbbf24;border:1px solid rgba(245,158,11,0.35);font-size:11px;font-weight:700;text-decoration:none;box-shadow:0 2px 6px rgba(0,0,0,0.15);transition:all .18s ease}
.route-btn svg{width:12px;height:12px;stroke:currentColor;flex-shrink:0}
.route-btn:hover{background:rgba(245,158,11,0.25);color:#fef08a;border-color:#fbbf24;transform:translateY(-1px)}
.route-btn:active{transform:scale(0.95)}


.calc-badge-icon svg{width:42px;height:42px}
.calc-badge-icon .m-gold{color:#f4c95a}.calc-badge-icon .m-silver{color:#d7e0ea}.calc-badge-icon .m-bronze{color:#e0a56a}.calc-badge-icon .m-none{color:#8fb4ff}
.bonus-item b svg{width:17px;height:17px;flex-shrink:0;color:#93c5fd}
.home-reg-badge svg{width:12px;height:12px;vertical-align:-1px}
.region-logo{padding:0;background:linear-gradient(145deg,#16283f,#0b1626)}
.region-logo svg{width:54px;height:54px}
.region-coat{background:#f4f7fb;padding:5px}
.region-coat img{width:100%;height:100%;object-fit:contain}
.news-card,.event-card,.story,.rcard,.link-action,.media-card,.album-card{text-align:left}
.article-hero{position:relative;height:300px;border-radius:22px;overflow:hidden;background:var(--card);margin-bottom:4px}
.article-hero>img{width:100%;height:100%;object-fit:cover}
.article-hero:after{content:"";position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#07111f)}
.article-hero>div{position:absolute;z-index:1;inset:auto 18px 18px}
.article-hero time{color:#ff777b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.article-hero h1{font:800 22px/1.26 var(--display);margin:8px 0 0}
.article-body{padding:20px 4px;color:#c8d3e0;font-size:14px;line-height:1.72}
.article-body p{margin:0 0 14px}
.article-body li{margin:0 0 10px 18px}
.article-body img{width:100%;height:auto;border-radius:14px;margin:6px 0 16px}

/* Athlete Clickability & Link Buttons */
.athlete-name-btn{background:none;border:none;padding:0;margin:0;color:#fff;font:inherit;text-align:left;cursor:pointer;display:inline-flex;align-items:baseline;gap:5px;transition:color .2s ease;vertical-align:baseline}
.athlete-name-btn b{transition:color .2s ease}
.athlete-name-btn:hover{color:#60a5fa}
.athlete-name-btn:hover b{color:#60a5fa;text-decoration:underline;text-underline-offset:2px}
.athlete-name-btn:hover .athlete-link-icon{color:#93c5fd;transform:translate(1.5px,-1.5px);opacity:1}
.athlete-name-btn.inline{color:#93c5fd;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.athlete-link-icon{font-size:11px;color:#60a5fa;opacity:.65;transition:all .2s ease;display:inline-block;font-style:normal;line-height:1}
.athlete-table-link{background:none;border:none;padding:0;margin:0;color:#fff;font:inherit;text-align:left;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:color .2s ease}
.athlete-table-link:hover{color:#60a5fa}
.athlete-table-link:hover b{text-decoration:underline;text-underline-offset:2px}
.athlete-profile-btn{min-height:42px;padding:0;border:0;background:transparent;color:#93c5fd;font-size:10.5px;font-weight:800;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;transition:color .2s ease}
.athlete-profile-btn:hover{color:#bfdbfe;text-decoration:underline}
.athlete-profile-btn span{margin-left:4px;transition:transform .2s ease}
.athlete-profile-btn:hover span{transform:translateX(3px)}

/* Detail Sections List & Typography */
.detail-list{margin:10px 0 14px 20px;padding:0;display:grid;gap:6px;color:#cbd5e1;font-size:13.5px;line-height:1.55}
.detail-list li{position:relative}

/* Tournament Podium Widget in About Pane */
.event-podium-section{border-color:rgba(234,179,8,.3);background:linear-gradient(145deg,rgba(234,179,8,.08),rgba(15,29,47,.92));box-shadow:0 12px 36px rgba(0,0,0,.25)}
.event-podium-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.event-podium-head small{color:#fde047;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.event-podium-head h2{margin:3px 0 0;font-size:16.5px}
.podium-view-all{background:none;border:none;padding:0;color:#93c5fd;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.podium-view-all:hover{color:#bfdbfe;text-decoration:underline}
.event-podium-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.podium-card{display:grid;gap:6px;padding:14px;border-radius:16px;background:rgba(12,25,41,.85);border:1px solid rgba(255,255,255,.09);transition:transform .2s ease,box-shadow .2s ease}
.podium-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.podium-card.rank-gold{border-color:rgba(234,179,8,.4);background:linear-gradient(135deg,rgba(234,179,8,.14),rgba(15,29,47,.9))}
.podium-card.rank-silver{border-color:rgba(203,213,225,.35);background:linear-gradient(135deg,rgba(203,213,225,.1),rgba(15,29,47,.9))}
.podium-card.rank-bronze{border-color:rgba(249,115,22,.35);background:linear-gradient(135deg,rgba(249,115,22,.1),rgba(15,29,47,.9))}
.podium-medal-badge{font-size:9.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#fde047;display:inline-block}
.podium-card.rank-silver .podium-medal-badge{color:#f1f5f9}
.podium-card.rank-bronze .podium-medal-badge{color:#fdba74}
.podium-card .athlete-name-btn{font-size:14.5px}
.podium-card-sub{display:flex;flex-direction:column;gap:2px}
.podium-card-sub small{color:#94a3b8;font-size:11px}
.podium-card-sub span{color:#60a5fa;font-size:10.5px;font-weight:700}
.podium-res{margin-top:4px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);font-size:12.5px;color:#fff}

/* Athletes Tab (event-athletes) */
.event-athletes-pane{display:grid;gap:14px}
.event-athletes-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid rgba(96,165,250,.2);border-radius:18px;background:linear-gradient(135deg,rgba(20,45,77,.65),rgba(11,23,38,.85))}
.event-athletes-stats{display:flex;gap:16px}
.stat-pill{display:grid;gap:2px}
.stat-pill small{color:#71879e;font-size:8.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.stat-pill strong{color:#fff;font:700 17px var(--display)}
.event-athletes-search-wrap{margin:0;min-width:240px;flex:1;max-width:380px}
.event-athletes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.event-athlete-card{display:grid;gap:10px;padding:14px 16px;border-radius:16px;background:rgba(15,29,47,.75);border:1px solid rgba(255,255,255,.08);transition:all .2s ease}
.event-athlete-card:hover{border-color:rgba(96,165,250,.35);background:rgba(20,40,65,.85);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.event-athlete-card.gold-athlete{border-color:rgba(234,179,8,.35);background:linear-gradient(135deg,rgba(234,179,8,.08),rgba(15,29,47,.8))}
.event-athlete-card.silver-athlete{border-color:rgba(203,213,225,.3);background:linear-gradient(135deg,rgba(203,213,225,.06),rgba(15,29,47,.8))}
.event-athlete-card.bronze-athlete{border-color:rgba(249,115,22,.3);background:linear-gradient(135deg,rgba(249,115,22,.06),rgba(15,29,47,.8))}
.athlete-card-top{display:flex;align-items:flex-start;gap:11px}
.athlete-avatar-circle{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#1e3a5f,#0f2137);border:1px solid rgba(96,165,250,.3);display:grid;place-items:center;color:#93c5fd;font:800 11px var(--display);flex-shrink:0}
.athlete-name-wrap{display:grid;gap:2px;min-width:0;flex:1}
.athlete-name-wrap .athlete-name-btn{font-size:13.5px}
.athlete-region{color:#94a3b8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.athlete-rank-tag{font-size:9px;font-weight:900;letter-spacing:.05em;padding:3px 7px;border-radius:6px;white-space:nowrap;flex-shrink:0}
.athlete-rank-tag.gold{background:rgba(234,179,8,.18);color:#fde047;border:1px solid rgba(234,179,8,.35)}
.athlete-rank-tag.silver{background:rgba(203,213,225,.18);color:#f1f5f9;border:1px solid rgba(203,213,225,.35)}
.athlete-rank-tag.bronze{background:rgba(249,115,22,.18);color:#fdba74;border:1px solid rgba(249,115,22,.35)}
.athlete-rank-tag.top{background:rgba(59,130,246,.15);color:#93c5fd;border:1px solid rgba(59,130,246,.25)}
.athlete-rank-tag.normal{background:rgba(255,255,255,.06);color:#94a3b8;border:1px solid rgba(255,255,255,.08)}
.athlete-card-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.athlete-cat-badge{font-size:10px;padding:3px 8px;border-radius:7px;background:rgba(59,130,246,.1);border:1px solid rgba(96,165,250,.18);color:#93c5fd}
.athlete-res-badge{font-size:10.5px;color:#d1d5db;display:inline-flex;gap:4px;align-items:baseline}
.athlete-res-badge small{color:#64748b;font-size:9px;text-transform:uppercase}
.athlete-res-badge b{color:#fff;font-weight:700}
.athlete-card-foot{display:flex;justify-content:flex-end;padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}
.athlete-profile-link-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:0;color:#60a5fa;font-size:11px;font-weight:800;cursor:pointer;transition:color .2s ease}
.athlete-profile-link-btn:hover{color:#93c5fd}
.athlete-profile-link-btn strong{transition:transform .2s ease}
.athlete-profile-link-btn:hover strong{transform:translateX(3px)}

/* Режим видеозаписи с таймером (WODProof / WeTime) */
.timer-subnav{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px;background:rgba(11,23,38,.9);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:4px}
.timer-subnav-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:40px;border:0;border-radius:10px;background:transparent;color:#94a3b8;font-size:12px;font-weight:750;cursor:pointer;transition:all .2s ease}
.timer-subnav-btn.active{background:linear-gradient(135deg,#ff4a4f,#d81f26);color:#fff;box-shadow:0 3px 10px rgba(255,74,79,.3)}
.timer-subnav-btn:active{transform:scale(.97)}

.camera-recorder-wrap{display:grid;gap:14px}
.camera-meta-card{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:rgba(16,29,45,.75);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:12px 14px}
@media (max-width:600px){.camera-meta-card{grid-template-columns:1fr}}
.camera-input-group{display:flex;flex-direction:column;gap:5px}
.camera-input-group label{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#93c5fd}
.camera-input-group input{height:38px;padding:0 12px;border-radius:10px;background:rgba(7,17,31,.8);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:13px;font-family:inherit}
.camera-input-group input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56,189,248,.25)}

/* Чек-лист готовности к отборочной видеозаписи */
.camera-checklist-card{background:rgba(16,29,45,.82);border:1px solid rgba(96,165,250,.24);border-radius:14px;padding:12px 14px;display:grid;gap:8px}
.camera-checklist-header{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;color:#93c5fd;text-transform:uppercase;letter-spacing:.04em}
.camera-checklist-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
@media (max-width:600px){.camera-checklist-grid{grid-template-columns:1fr}}
.camera-check-item{font-size:12px;color:#cbd5e1;font-weight:600;line-height:1.35}

/* Предупреждения */
.camera-audio-notice{background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.4);border-radius:12px;padding:9px 14px;margin-bottom:12px;color:#fbbf24;font-size:12px;font-weight:700;text-align:center}
.camera-minimized-alert{background:rgba(239,68,68,.18);border:1px solid rgba(239,68,68,.5);border-radius:12px;padding:10px 14px;color:#fca5a5;font-size:12px;font-weight:700;line-height:1.4}

.camera-top-tools{display:flex;justify-content:flex-end;align-items:center;margin-bottom:2px}
.camera-switch-tool-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:rgba(16,29,45,.85);backdrop-filter:blur(8px);color:#cbd5e1;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s ease}
.camera-switch-tool-btn:hover{background:rgba(30,58,138,.5);color:#fff;border-color:#3b82f6}
.camera-switch-tool-btn:active{transform:scale(.96)}

.camera-viewfinder-card{position:relative;background:#000;border:2px solid #234b7f;border-radius:20px;overflow:hidden;box-shadow:0 12px 36px rgba(0,0,0,.5);aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;transition:all .3s ease}
.camera-viewfinder-card.is-fullscreen{position:fixed!important;inset:0!important;width:100%!important;height:100svh!important;max-height:100svh!important;z-index:99999!important;border-radius:0!important;border:none!important;aspect-ratio:auto!important;overscroll-behavior:none!important}
@media (orientation: landscape){
  .camera-orient-hint{display:none!important}
}
@media (max-width:600px) and (orientation: portrait){
  .camera-viewfinder-card{aspect-ratio:auto;height:min(56svh,460px);max-height:56svh;width:100%}
}
.camera-viewfinder-card.is-portrait{aspect-ratio:9/16;max-width:460px;margin:0 auto;width:100%}
@media (max-width:600px){
  .camera-viewfinder-card.is-portrait{aspect-ratio:9/16;height:auto;max-height:72svh}
}
.camera-hidden-video{position:absolute;width:1px;height:1px;opacity:0.01;pointer-events:none;top:0;left:0}
.camera-live-canvas{width:100%;height:100%;object-fit:cover;display:block}
.camera-debug-badge{display:none!important}

.camera-orient-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;background:rgba(30,58,138,.25);border:1px dashed rgba(96,165,250,.4);border-radius:12px;color:#93c5fd;font-size:11.5px;font-weight:600;text-align:center;line-height:1.4}
.camera-orient-hint svg{flex-shrink:0;color:#60a5fa}

.camera-placeholder-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;text-align:center;background:radial-gradient(circle at center,#162b48 0%,#07111f 100%);z-index:5}
.camera-placeholder-icon{width:56px;height:56px;border-radius:18px;background:rgba(59,130,246,.18);border:1px solid rgba(96,165,250,.3);color:#60a5fa;display:grid;place-items:center}
.camera-placeholder-title{font:800 15px var(--display);color:#fff}
.camera-placeholder-desc{font-size:12px;color:#94a3b8;max-width:320px;line-height:1.4}
.camera-activate-btn{height:46px;padding:0 22px;border-radius:14px;border:0;background:linear-gradient(135deg,#ff4a4f,#d81f26);color:#fff;font:800 13.5px var(--display);cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 14px rgba(255,74,79,.35);transition:all .18s ease}
.camera-activate-btn:active{transform:scale(.96)}
.camera-activate-btn.is-starting{opacity:.7;pointer-events:none;cursor:wait}

/* Оверлей элементов управления (ТЗ v67.1, v67.3, v78) */
.camera-controls-overlay{position:absolute;inset:0;pointer-events:none;z-index:20}

.cam-ctrl-btn{
  border:0;
  font:800 15px var(--display);
  letter-spacing:.02em;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  user-select:none;
  touch-action:manipulation;
  transition:transform .15s ease,background .2s ease,box-shadow .2s ease;
  box-sizing:border-box;
  text-transform:uppercase;
  white-space:nowrap;
}
.cam-ctrl-btn:active{transform:scale(.96)}
.cam-ctrl-btn.rec-start{
  background:linear-gradient(135deg,#ef4444,#b91c1c);
  color:#fff;
  box-shadow:0 6px 20px rgba(239,68,68,.45);
}
.cam-ctrl-btn.rec-start.is-starting{opacity:.75;cursor:wait;pointer-events:none}
.cam-ctrl-btn.rec-stop{
  background:linear-gradient(135deg,#ef4444,#b91c1c);
  color:#fff;
  box-shadow:0 6px 22px rgba(239,68,68,.55);
}
.cam-ctrl-btn.rec-stop.is-starting{opacity:.75;cursor:wait;pointer-events:none}
.cam-ctrl-btn.timer-start{
  background:linear-gradient(135deg,#10b981,#059669);
  color:#fff;
  box-shadow:0 6px 22px rgba(16,185,129,.45);
}
.cam-ctrl-btn.rep-add{
  background:linear-gradient(135deg,#10b981,#059669);
  color:#fff;
  box-shadow:0 6px 20px rgba(16,185,129,.5);
  font-weight:900;
  font-size:16px;
  min-width:54px;
}
.cam-ctrl-btn.norep-add{
  background:linear-gradient(135deg,#f59e0b,#d97706);
  color:#fff;
  box-shadow:0 6px 20px rgba(245,158,11,.45);
  font-weight:800;
  font-size:13px;
  min-width:68px;
}
.cam-ctrl-btn.sec{
  background:rgba(15,23,42,.78);
  border:1px solid rgba(255,255,255,.22);
  color:#cbd5e1;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.cam-ctrl-btn.sec:hover{background:rgba(30,58,138,.6);color:#fff;border-color:#3b82f6}

.cam-countdown-pill,.cam-finished-pill,.cam-rec-status-pill{
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font:800 13px var(--display);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-sizing:border-box;
}
.cam-countdown-pill{background:rgba(30,41,59,.88);color:#fbbf24;border:1px solid rgba(251,191,36,.4)}
.cam-finished-pill{background:rgba(245,158,11,.25);color:#fbbf24;border:1px solid rgba(245,158,11,.5)}
.cam-rec-status-pill{background:rgba(15,23,42,.85);color:#ef4444;border:1px solid rgba(239,68,68,.4)}
.cam-rec-dot{width:10px;height:10px;border-radius:50%;background:#ef4444;animation:camPulse 1s infinite alternate}
@keyframes camPulse{from{opacity:.4}to{opacity:1}}

/* ---------------------------------------------------- */
/* PORTRAIT LAYOUT: компактные кнопки 48px в одну строку */
/* ---------------------------------------------------- */
@media (orientation: portrait){
  .camera-controls-overlay{
    left:calc(14px + env(safe-area-inset-left,0px));
    right:calc(14px + env(safe-area-inset-right,0px));
    bottom:calc(12px + env(safe-area-inset-bottom,0px));
    top:auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
  }
  .camera-corner-left{
    position:static;
    display:flex;
    align-items:center;
    gap:8px;
    flex:1;
    max-width:calc(50% - 5px);
    pointer-events:auto;
  }
  .camera-corner-right{
    position:static;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex:1;
    max-width:calc(50% - 5px);
    pointer-events:auto;
  }
  .cam-ctrl-btn{
    height:48px;
    min-height:48px;
    padding:0 14px;
    border-radius:14px;
    font-size:14.5px;
    width:100%;
    min-width:0;
  }
  .cam-ctrl-btn.sec{
    width:auto;
    flex:1;
    padding:0 10px;
    font-size:12px;
  }
  .cam-countdown-pill,
  .cam-finished-pill,
  .cam-rec-status-pill{
    height:48px;
    padding:0 10px;
    font-size:12px;
    width:100%;
    justify-content:center;
  }
}

/* ---------------------------------------------------- */
/* LANDSCAPE LAYOUT: разнесенные по углам кнопки         */
/* ---------------------------------------------------- */
@media (orientation: landscape){
  .camera-controls-overlay{
    inset:0;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
  }
  .camera-corner-left{
    position:absolute;
    left:calc(18px + env(safe-area-inset-left,0px));
    bottom:calc(12px + env(safe-area-inset-bottom,0px));
    display:flex;
    align-items:center;
    gap:10px;
    pointer-events:auto;
    z-index:25;
  }
  .camera-corner-right{
    position:absolute;
    right:calc(18px + env(safe-area-inset-right,0px));
    bottom:calc(12px + env(safe-area-inset-bottom,0px));
    display:flex;
    align-items:center;
    gap:10px;
    pointer-events:auto;
    z-index:25;
  }
  .cam-ctrl-btn{
    height:50px;
    min-height:50px;
    padding:0 20px;
    border-radius:14px;
    font-size:16px;
    width:auto;
  }
  .cam-ctrl-btn.timer-start{
    min-width:165px;
  }
  .cam-ctrl-btn.rec-stop{
    min-width:155px;
  }
  .cam-ctrl-btn.sec{
    height:46px;
    min-height:46px;
    padding:0 16px;
    font-size:14px;
  }
  .cam-countdown-pill,
  .cam-finished-pill,
  .cam-rec-status-pill{
    height:50px;
    padding:0 16px;
    font-size:14px;
  }
}

/* Drawer / Modal настроек таймера комплекса (ТЗ v67.1, v67.3) */
.camera-timer-drawer-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  z-index:100010;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  box-sizing:border-box;
  animation:drawerFadeIn .2s ease;
}
@keyframes drawerFadeIn{from{opacity:0}to{opacity:1}}
.camera-timer-drawer-content{
  background:#0d1b2e;
  border:1px solid rgba(96,165,250,.35);
  border-radius:20px;
  width:100%;
  max-width:540px;
  max-height:90dvh;
  display:flex;
  flex-direction:column;
  box-shadow:0 20px 50px rgba(0,0,0,.8);
  overflow:hidden;
}
.camera-timer-drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  border-bottom:1px solid rgba(255,255,255,.1);
  background:rgba(16,29,45,.9);
}
.camera-timer-drawer-header b{font:800 14px var(--display);color:#fff;letter-spacing:.03em}
.camera-drawer-close-btn{
  background:rgba(255,255,255,.08);
  border:0;
  color:#94a3b8;
  min-width:44px;
  min-height:44px;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:20px;
  font-weight:800;
  cursor:pointer;
  display:grid;
  place-items:center;
  touch-action:manipulation;
}
.camera-drawer-close-btn:hover{background:rgba(255,255,255,.18);color:#fff}
.camera-drawer-close-btn:active{transform:scale(.92)}
.camera-drawer-body{padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.camera-drawer-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:500px){.camera-drawer-meta{grid-template-columns:1fr}}
.camera-drawer-footer{padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);background:rgba(16,29,45,.9)}
.camera-drawer-done-btn{
  width:100%;
  height:48px;
  border-radius:12px;
  border:0;
  background:linear-gradient(135deg,#10b981,#059669);
  color:#fff;
  font:800 14px var(--display);
  cursor:pointer;
  box-shadow:0 4px 14px rgba(16,185,129,.35);
  transition:all .18s ease;
}
.camera-drawer-done-btn:active{transform:scale(.97)}

/* Модалка результатов записи (ТЗ v67.3 Preview) */
#camera-preview-slot:not(:empty),
#hero-preview-slot:not(:empty){
  position:fixed;
  inset:0;
  z-index:100000;
  background:rgba(0,0,0,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:env(safe-area-inset-top,14px) env(safe-area-inset-right,14px) env(safe-area-inset-bottom,14px) env(safe-area-inset-left,14px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
}
.camera-preview-modal{
  background:rgba(16,29,45,.98);
  border:1px solid rgba(96,165,250,.35);
  border-radius:20px;
  padding:16px;
  display:grid;
  gap:12px;
  width:100%;
  max-width:680px;
  max-height:92dvh;
  overflow-y:auto;
  box-shadow:0 20px 50px rgba(0,0,0,.8);
  margin:0 auto;
  box-sizing:border-box;
}
.camera-preview-modal.is-portrait{
  max-width:min(84vw, 420px);
}
.camera-preview-modal.is-landscape{
  max-width:min(94vw, 840px);
}
.camera-preview-title{display:flex;justify-content:space-between;align-items:center;position:relative;padding-right:44px}
.camera-preview-title b{font:700 15px var(--display);color:#fff}
.camera-preview-title small{color:#34d399;font-weight:700;font-size:12px}
.camera-preview-close-btn{position:absolute;top:50%;right:0;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;line-height:1}
.camera-preview-close-btn:hover,.camera-preview-close-btn:active{background:rgba(239,68,68,.85);border-color:#ef4444}

/* Preview Frame & Video (HOTFIX v80: no-crop contain preview, priority: show whole file) */
.preview-frame{
  position:relative;
  width:100%;
  max-height:68svh;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#000;
  border-radius:14px;
  overflow:hidden;
  box-sizing:border-box;
}
.preview-frame.is-portrait,.preview-frame.portrait{
  aspect-ratio:9/16;
  width:min(82vw, 380px);
  max-height:65svh;
}
.preview-frame.is-landscape,.preview-frame.landscape{
  aspect-ratio:16/9;
  width:min(94vw, 800px);
  max-height:56svh;
}
.camera-preview-player,
.recording-preview-video,
.preview-frame video{
  width:100%!important;
  height:100%!important;
  max-height:68svh!important;
  object-fit:contain!important;
  background:#000!important;
  border-radius:14px;
  display:block;
  margin:0 auto;
  box-sizing:border-box;
  transform:none!important;
  zoom:1!important;
}
.camera-preview-player.is-landscape{aspect-ratio:16/9;max-height:56svh}
.camera-preview-player.is-portrait{aspect-ratio:9/16;max-height:65svh;max-width:min(82vw, 380px);margin:0 auto}
.camera-stats-strip{display:flex;gap:12px;flex-wrap:wrap;background:rgba(7,17,31,.85);padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.1)}
.camera-stat-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#93c5fd}
.camera-stat-badge b{color:#fff}
.camera-preview-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.camera-save-primary-btn{grid-column:1/-1;height:50px;border-radius:14px;border:0;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font:800 14px var(--display);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 20px rgba(16,185,129,.35);transition:all .2s ease}
.camera-save-primary-btn:active{transform:scale(.96)}
.camera-download-sec-btn{height:44px;border-radius:12px;border:1px solid rgba(96,165,250,.4);background:rgba(23,54,93,.8);color:#93c5fd;font:700 12.5px var(--display);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:all .2s ease}
.camera-download-sec-btn:active{transform:scale(.96)}
.camera-retry-btn{grid-column:1/-1;height:42px;border-radius:12px;background:none;border:1px solid rgba(255,255,255,.16);color:#94a3b8;font-size:12.5px;font-weight:750;cursor:pointer;transition:all .2s ease}
.camera-retry-btn:hover{color:#fff;border-color:rgba(255,255,255,.3)}
.camera-retry-btn:active{transform:scale(.96)}

/* Карточка настроек таймера комплекса (ТЗ v67) */
.camera-timer-config-card{background:rgba(16,29,45,.85);border:1px solid rgba(96,165,250,.25);border-radius:16px;padding:14px;display:grid;gap:12px}
.camera-config-head{display:flex;justify-content:space-between;align-items:center}
.camera-config-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#93c5fd;text-transform:uppercase;letter-spacing:.04em}
.camera-sound-toggle-label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#cbd5e1;cursor:pointer;user-select:none}
.camera-mode-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
@media (max-width:600px){.camera-mode-tabs{grid-template-columns:1fr 1fr}}
.cam-mode-btn{height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:rgba(7,17,31,.7);color:#94a3b8;font-size:12px;font-weight:750;cursor:pointer;transition:all .18s ease;display:flex;align-items:center;justify-content:center;gap:4px}
.cam-mode-btn:hover{background:rgba(30,58,138,.4);color:#fff}
.cam-mode-btn.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#60a5fa;box-shadow:0 2px 8px rgba(37,99,235,.35)}
.cam-mode-btn:active{transform:scale(.97)}

.camera-presets-row{display:flex;flex-direction:column;gap:6px}
.camera-config-sublabel{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}
.camera-preset-chips,.camera-prestart-chips{display:flex;flex-wrap:wrap;gap:6px}
.cam-chip{padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(7,17,31,.6);color:#cbd5e1;font-size:11.5px;font-weight:700;cursor:pointer;transition:all .15s ease}
.cam-chip:hover{background:rgba(30,58,138,.4);color:#fff}
.cam-chip.active{background:rgba(16,185,129,.25);border-color:#10b981;color:#34d399;font-weight:800}
.cam-chip:active{transform:scale(.96)}

.camera-steppers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.cam-stepper-item{display:flex;flex-direction:column;gap:4px}
.cam-stepper-item label{font-size:11px;font-weight:700;color:#93c5fd}
.cam-stepper{display:flex;align-items:center;background:rgba(7,17,31,.8);border:1px solid rgba(255,255,255,.14);border-radius:10px;height:38px;overflow:hidden}
.cam-step-btn{width:38px;height:38px;border:0;background:transparent;color:#93c5fd;font-size:16px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}
.cam-step-btn:hover{background:rgba(255,255,255,.08)}
.cam-step-btn:active{background:rgba(59,130,246,.2)}
.cam-step-val{flex:1;text-align:center;font-size:13px;font-weight:800;color:#fff;font-family:monospace}
.camera-countdown-select-row{display:flex;flex-direction:column;gap:6px}

/* ==================================================== */
/* LANDSCAPE-FIRST 16:9 ПОЛНОЭКРАННЫЙ РЕЖИМ (ТЗ v67.1) */
/* ==================================================== */
@media (orientation: landscape) {
  /* Фиксированный вьюпорт на весь экран: 100% x 100svh */
  .camera-recorder-wrap {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100svh !important;
    max-width: 100% !important;
    max-height: 100svh !important;
    z-index: 99999 !important;
    background: #000 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
    display: block !important;
  }

  /* Скрываем карточки страницы, оставляем чистый видоискатель */
  .camera-recorder-wrap .camera-meta-card,
  .camera-recorder-wrap .camera-checklist-card,
  .camera-recorder-wrap .camera-orient-hint,
  .camera-recorder-wrap > .camera-timer-config-card {
    display: none !important;
  }

  /* Видоискатель занимает 100% экрана в горизонте */
  .camera-recorder-wrap .camera-viewfinder-card {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    aspect-ratio: auto !important;
    background: #000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Холст покрывает экран без черных полос или искажений */
  .camera-recorder-wrap .camera-live-canvas {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Полное скрытие навигации и заголовков сайта при нахождении камеры в landscape */
  body:has(#camera-recorder-wrap) {
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
  body:has(#camera-recorder-wrap) .app-header,
  body:has(#camera-recorder-wrap) .desktop-site-header,
  body:has(#camera-recorder-wrap) .desktop-subnav,
  body:has(#camera-recorder-wrap) .desktop-site-footer,
  body:has(#camera-recorder-wrap) .bottom-nav,
  body:has(#camera-recorder-wrap) .page-title,
  body:has(#camera-recorder-wrap) .timer-subnav,
  body:has(#camera-recorder-wrap) .pwa-banner,
  body:has(#camera-recorder-wrap) .offline-badge {
    display: none !important;
  }
}

/* При активной записи (и в портрете, и в горизонте) скрываем весь сайт */
body.camera-recording-active .app-header,
body.camera-recording-active .desktop-site-header,
body.camera-recording-active .desktop-subnav,
body.camera-recording-active .desktop-site-footer,
body.camera-recording-active .bottom-nav,
body.camera-recording-active .page-title,
body.camera-recording-active .timer-subnav,
body.camera-recording-active .hero-tabs-nav,
body.camera-recording-active .hero-hero-banner,
body.camera-recording-active .camera-meta-card,
body.camera-recording-active .camera-timer-config-card,
body.camera-recording-active .camera-checklist-card,
body.camera-recording-active .camera-orient-hint,
body.camera-recording-active .offline-badge,
body.camera-recording-active .pwa-banner,
body.recorder-fullscreen .app-header,
body.recorder-fullscreen .desktop-site-header,
body.recorder-fullscreen .desktop-subnav,
body.recorder-fullscreen .desktop-site-footer,
body.recorder-fullscreen .bottom-nav,
body.recorder-fullscreen .page-title,
body.recorder-fullscreen .timer-subnav,
body.recorder-fullscreen .hero-tabs-nav,
body.recorder-fullscreen .hero-hero-banner,
body.recorder-fullscreen .camera-meta-card,
body.recorder-fullscreen .camera-timer-config-card,
body.recorder-fullscreen .camera-checklist-card,
body.recorder-fullscreen .camera-orient-hint,
body.recorder-fullscreen .offline-badge,
body.recorder-fullscreen .pwa-banner {
  display: none !important;
}

body.camera-recording-active,
body.recorder-fullscreen {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  background: #000 !important;
}

body.camera-recording-active .camera-recorder-wrap,
body.recorder-fullscreen .camera-recorder-wrap {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100svh !important;
  max-width: 100% !important;
  max-height: 100svh !important;
  z-index: 99999 !important;
  background: #000 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

body.camera-recording-active .camera-viewfinder-card,
body.recorder-fullscreen .camera-viewfinder-card {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  border: none !important;
  border-radius: 0 !important;
  aspect-ratio: auto !important;
  background: #000 !important;
}

/* Кнопка постоянного выхода из камеры (ТЗ v67.4) */
.camera-exit-btn {
  position: absolute;
  top: calc(12px + env(safe-area-inset-top, 0px));
  left: calc(12px + env(safe-area-inset-left, 0px));
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.75);
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #ffffff;
  font-size: 20px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 35;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
  transition: transform 0.15s ease, background 0.2s ease, border-color 0.2s ease;
  padding: 0;
  line-height: 1;
  user-select: none;
  touch-action: manipulation;
}
.camera-exit-btn:hover,
.camera-exit-btn:active {
  background: rgba(239, 68, 68, 0.85);
  border-color: #ef4444;
  transform: scale(0.94);
}

/* Диалог подтверждения выхода / отмены записи (ТЗ v67.4) */
.camera-confirm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 1000000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.camera-confirm-card {
  background: #111827;
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  border-radius: 22px;
  max-width: 360px;
  width: 100%;
  padding: 24px 20px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.85);
  text-align: center;
  animation: confirmPopIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes confirmPopIn {
  0% { transform: scale(0.92); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}
.camera-confirm-icon {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(239, 68, 68, 0.18);
  color: #ef4444;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px auto;
  font-size: 26px;
}
.camera-confirm-title {
  font: 800 18px var(--display, inherit);
  color: #ffffff;
  margin-bottom: 8px;
}
.camera-confirm-desc {
  font-size: 13.5px;
  color: #94a3b8;
  line-height: 1.45;
  margin-bottom: 22px;
}
.camera-confirm-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.camera-confirm-btn {
  width: 100%;
  padding: 13px 18px;
  border-radius: 14px;
  font: 800 13.5px var(--display, inherit);
  letter-spacing: .02em;
  cursor: pointer;
  border: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  touch-action: manipulation;
}
.camera-confirm-btn:active {
  transform: scale(0.97);
}
.camera-confirm-btn.keep {
  background: #2563eb;
  color: #ffffff;
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.4);
}
.camera-confirm-btn.discard {
  background: rgba(239, 68, 68, 0.15);
  color: #f87171;
  border: 1.5px solid rgba(239, 68, 68, 0.4);
}
.camera-confirm-btn.discard:hover,
.camera-confirm-btn.discard:active {
  background: rgba(239, 68, 68, 0.28);
}

/* ====================================================
   v75: FULLSCREEN GYM TIMER (LANDSCAPE MODE)
   ==================================================== */
.timer-fs-trigger-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 10px auto 0;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  color: #93c5fd;
  font: 700 12.5px var(--display);
  cursor: pointer;
  transition: all 0.2s ease;
}
.timer-fs-trigger-btn:hover,
.timer-fs-trigger-btn:active {
  background: rgba(59, 130, 246, 0.2);
  border-color: #60a5fa;
  color: #ffffff;
}

body.timer-fullscreen-active,
body.camera-recording-active,
body.camera-mode-active {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  touch-action: none;
}

.timer-fullscreen-overlay {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100svh;
  max-height: 100svh;
  background: #050a14;
  z-index: 999999;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: env(safe-area-inset-top, 14px) env(safe-area-inset-right, 24px) env(safe-area-inset-bottom, 14px) env(safe-area-inset-left, 24px);
  box-sizing: border-box;
  overflow: hidden;
  overscroll-behavior: none;
  user-select: none;
  -webkit-user-select: none;
}

.timer-fs-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 48px;
}

.timer-fs-mode-pill {
  font-family: var(--display);
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #94a3b8;
  background: rgba(255, 255, 255, 0.06);
  padding: 6px 14px;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.timer-fs-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.timer-fs-btn-icon {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #e2e8f0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
}

.timer-fs-btn-icon:active {
  transform: scale(0.95);
  background: rgba(255, 255, 255, 0.18);
}

.timer-fs-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  text-align: center;
  margin: auto 0;
}

.timer-fs-phase {
  font-family: var(--display);
  font-size: clamp(22px, 4.5vw, 40px);
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 2px;
  transition: color 0.2s ease;
}

.timer-fs-phase.phase-work {
  color: #10b981;
  text-shadow: 0 0 25px rgba(16, 185, 129, 0.45);
}

.timer-fs-phase.phase-rest {
  color: #f59e0b;
  text-shadow: 0 0 25px rgba(245, 158, 11, 0.45);
}

.timer-fs-phase.phase-countdown {
  color: #38bdf8;
  text-shadow: 0 0 25px rgba(56, 189, 248, 0.45);
}

.timer-fs-phase.phase-finished {
  color: #ef4444;
  text-shadow: 0 0 25px rgba(239, 68, 68, 0.45);
}

.timer-fs-digits {
  font-family: var(--mono);
  font-size: clamp(96px, 18vw, 220px);
  font-weight: 900;
  line-height: 0.95;
  color: #ffffff;
  letter-spacing: -0.04em;
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.8), 0 0 40px rgba(255, 255, 255, 0.15);
  margin: 6px 0;
}

.timer-fs-round {
  font-family: var(--display);
  font-size: clamp(15px, 2.8vw, 24px);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #cbd5e1;
  background: rgba(255, 255, 255, 0.05);
  padding: 6px 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.timer-fs-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 100%;
  height: 60px;
}

.timer-fs-ctrl-btn {
  height: 52px;
  min-height: 52px;
  max-height: 52px;
  padding: 0 32px;
  border-radius: 16px;
  font-family: var(--display);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  transition: transform 0.1s ease, filter 0.15s ease;
}

.timer-fs-ctrl-btn:active {
  transform: scale(0.96);
}

.timer-fs-ctrl-btn.fs-start {
  background: linear-gradient(135deg, #10b981, #059669);
  color: #ffffff;
  box-shadow: 0 4px 20px rgba(16, 185, 129, 0.4);
  flex: 2;
  max-width: 280px;
}

.timer-fs-ctrl-btn.fs-pause {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #ffffff;
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.4);
  flex: 2;
  max-width: 280px;
}

.timer-fs-ctrl-btn.fs-reset {
  background: rgba(255, 255, 255, 0.1);
  color: #e2e8f0;
  border: 1px solid rgba(255, 255, 255, 0.15);
  flex: 1;
  max-width: 140px;
}

/* Fullscreen Settings Drawer */
.timer-fs-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100000;
}

.timer-fs-drawer-content {
  width: min(500px, 92vw);
  max-height: 88vh;
  background: #0f172a;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 20px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.85);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.timer-fs-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  font-family: var(--display);
  font-size: 15px;
  font-weight: 800;
  color: #fff;
}

.timer-fs-drawer-body {
  padding: 16px 20px;
  overflow-y: auto;
  display: grid;
  gap: 14px;
}

.timer-fs-drawer-footer {
  padding: 12px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: flex-end;
}

.timer-fs-drawer-done-btn {
  background: #2563eb;
  color: #fff;
  font: 800 13px var(--display);
  padding: 10px 22px;
  border-radius: 12px;
  border: none;
  cursor: pointer;
}

.timer-fs-drawer-done-btn:active {
  transform: scale(0.97);
}

/* ==================================================== */
/* v82 — ИНТЕРАКТИВНАЯ КАРТА РОССИИ ПО РЕГИОНАМ        */
/* ==================================================== */

.russia-map-wrapper {
  display: grid;
  gap: 14px;
  margin-bottom: 24px;
}

/* Сводная полоса показателей (География многоборья ГТО) */
.map-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

@media (max-width: 640px) {
  .map-summary-strip {
    grid-template-columns: repeat(2, 1fr);
  }
}

.map-summary-card {
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(14, 25, 41, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 2px;
  backdrop-filter: blur(10px);
}

.map-summary-card b {
  font-family: var(--display);
  font-size: 19px;
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
}

.map-summary-card span {
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  letter-spacing: 0.02em;
}

.map-summary-card.red b { color: #f87171; }
.map-summary-card.blue b { color: #60a5fa; }
.map-summary-card.amber b { color: #fbbf24; }
.map-summary-card.emerald b { color: #34d399; }

/* Панель управления картой */
.map-controls-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.map-mode-chips {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(11, 23, 38, 0.9);
  padding: 4px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.map-mode-chips button {
  height: 32px;
  padding: 0 13px;
  border-radius: 999px;
  border: 0;
  background: transparent;
  color: #94a3b8;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all .18s ease;
  white-space: nowrap;
}

.map-mode-chips button:hover:not(.active) {
  color: #fff;
}

.map-mode-chips button.active {
  background: linear-gradient(135deg, #1d4ed8, #2563eb);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.4);
}

.map-search-wrap {
  position: relative;
  flex: 1;
  min-width: 220px;
  max-width: 380px;
}

.map-search-wrap input {
  width: 100%;
  height: 38px;
  padding: 0 14px 0 34px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(16, 29, 45, 0.85);
  color: #fff;
  font-size: 12.5px;
  font-weight: 600;
  outline: none;
  transition: all .2s ease;
}

.map-search-wrap input:focus {
  border-color: #3b82f6;
  background: rgba(22, 42, 68, 0.95);
  box-shadow: 0 0 12px rgba(59, 130, 246, 0.35);
}

.map-search-wrap i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  font-style: normal;
  font-size: 14px;
  pointer-events: none;
}

/* Компактная карточка активного субъекта над картой */
.map-selected-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 74px;
  padding: 10px 16px;
  background: rgba(13, 25, 42, 0.92);
  border: 1px solid rgba(56, 189, 248, 0.28);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
  margin-bottom: 8px;
  contain: layout;
}

.map-selected-card.is-active {
  border-color: rgba(56, 189, 248, 0.55);
  background: linear-gradient(135deg, rgba(16, 32, 54, 0.95), rgba(10, 20, 36, 0.92));
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45), 0 0 16px rgba(56, 189, 248, 0.2);
}

.msc-content {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}

.msc-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.25);
  display: grid;
  place-items: center;
  font-size: 18px;
  flex-shrink: 0;
}

.msc-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.msc-title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.msc-title b {
  font-family: var(--display);
  font-size: 14px;
  font-weight: 800;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: none;
}

.msc-district {
  font-size: 10px;
  font-weight: 800;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.15);
  padding: 2px 7px;
  border-radius: 6px;
  text-transform: uppercase;
  border: 1px solid rgba(56, 189, 248, 0.3);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.msc-stats {
  font-size: 12px;
  color: #94a3b8;
  line-height: 1.35;
  font-weight: 500;
  word-break: normal;
  overflow-wrap: break-word;
}

.msc-stats b {
  color: #e2e8f0;
  font-weight: 700;
}

.msc-action {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  border: 1px solid #60a5fa;
  color: #fff;
  font-family: var(--display);
  font-size: 12px;
  font-weight: 800;
  padding: 8px 16px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.4);
  transition: all .15s ease;
  flex-shrink: 0;
}

.msc-action:hover {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(37, 99, 235, 0.55);
}

.msc-action:active {
  transform: scale(0.96);
}

@media (max-width: 640px) {
  .map-selected-card {
    flex-direction: column;
    align-items: stretch;
    padding: 12px 14px;
    gap: 10px;
    min-height: auto;
  }
  .msc-content {
    width: 100%;
    align-items: flex-start;
  }
  .msc-action {
    width: 100%;
    justify-content: center;
    padding: 10px 16px;
    margin-top: 4px;
  }
}

/* Floating индикатор в левом верхнем углу карты */
.map-floating-indicator {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 12;
  background: rgba(9, 17, 30, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(56, 189, 248, 0.35);
  border-radius: 999px;
  padding: 6px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
  pointer-events: none;
  max-width: calc(100% - 24px);
  animation: mfi-pop .2s ease-out;
}

@keyframes mfi-pop {
  0% { transform: translateY(-4px) scale(0.95); opacity: 0; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

.mfi-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #38bdf8;
  box-shadow: 0 0 8px #38bdf8;
  animation: mfi-pulse 1.8s infinite ease-in-out;
  flex-shrink: 0;
}

@keyframes mfi-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.75; }
}

.mfi-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

#mfi-name {
  font-family: var(--display);
  font-size: 12px;
  font-weight: 800;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#mfi-district {
  font-size: 9.5px;
  color: #94a3b8;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Контейнер интерактивной карты */
.russia-map-container {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  height: clamp(260px, 72vw, 340px);
  min-height: 260px;
  max-height: 340px;
  aspect-ratio: auto;
  background: radial-gradient(circle at 50% 40%, #0d1b2e 0%, #07101c 100%);
  border: 1px solid rgba(96, 165, 250, 0.2);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05);
  user-select: none;
  contain: layout paint;
}

.russia-map-svg-wrap {
  width: 100%;
  height: 100%;
  transform-origin: 0 0;
  transition: transform .12s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

.russia-map {
  width: 100%;
  height: 100%;
  display: block;
}

/* Стили регионов на SVG */
.russia-region {
  fill: #152336;
  stroke: #253952;
  stroke-width: 0.6;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  transition: fill .16s ease, stroke .16s ease, filter .16s ease, opacity .16s ease;
  cursor: pointer;
  outline: none;
}

/* Heatmap уровни активности */
.russia-region[data-heat="0"] { fill: #131d2c; }
.russia-region[data-heat="1"] { fill: #183152; stroke: #2a4970; }
.russia-region[data-heat="2"] { fill: #1d4576; stroke: #315b91; }
.russia-region[data-heat="3"] { fill: #225a9c; stroke: #3d72b5; }
.russia-region[data-heat="4"] { fill: #2563eb; stroke: #60a5fa; }

.russia-region:hover,
.russia-region.is-hovered {
  fill: #38bdf8 !important;
  stroke: #bae6fd !important;
  stroke-width: 1.6 !important;
  filter: brightness(1.3) drop-shadow(0 0 8px rgba(56, 189, 248, 0.75)) !important;
}

/* Выбранный субъект: сохраняет heatmap fill, получает яркий stroke и blue/cyan glow */
.russia-region.is-selected {
  stroke: #38bdf8 !important;
  stroke-width: 2.5 !important;
  filter: brightness(1.28) drop-shadow(0 0 10px rgba(56, 189, 248, 0.8)) drop-shadow(0 0 22px rgba(37, 99, 235, 0.5)) !important;
}

.region-hit-area {
  cursor: pointer;
  pointer-events: all;
  outline: none;
  transition: all .16s ease;
}

.region-hit-area.is-selected {
  stroke: #38bdf8 !important;
  stroke-width: 3 !important;
  fill: #38bdf8 !important;
  filter: brightness(1.35) drop-shadow(0 0 12px rgba(56, 189, 248, 0.95)) !important;
}

/* Подсветка округа */
.russia-region.is-district-match {
  stroke: #93c5fd !important;
  stroke-width: 1.2 !important;
  filter: brightness(1.15);
}

.russia-region.is-district-dim {
  opacity: 0.38;
}

/* Кнопки масштабирования Zoom / Pan */
.map-zoom-controls {
  position: absolute;
  right: 14px;
  bottom: 14px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  z-index: 10;
}

.map-zoom-btn {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(10, 20, 35, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
  backdrop-filter: blur(10px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
  transition: all .15s ease;
}

.map-zoom-btn:hover {
  background: rgba(37, 99, 235, 0.5);
  border-color: #3b82f6;
  transform: scale(1.05);
}

.map-zoom-btn:active {
  transform: scale(0.95);
}

/* Легенда интенсивности Heatmap */
.map-legend-bar {
  position: absolute;
  left: 14px;
  bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(10, 20, 35, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 6px 12px;
  backdrop-filter: blur(10px);
  font-size: 10.5px;
  font-weight: 700;
  color: #94a3b8;
  z-index: 10;
}

.legend-swatches {
  display: flex;
  gap: 3px;
}

.legend-swatches span {
  width: 14px;
  height: 10px;
  border-radius: 2px;
}

.legend-swatches span:nth-child(1) { background: #131d2c; }
.legend-swatches span:nth-child(2) { background: #183152; }
.legend-swatches span:nth-child(3) { background: #1d4576; }
.legend-swatches span:nth-child(4) { background: #225a9c; }
.legend-swatches span:nth-child(5) { background: #2563eb; }

/* Desktop Tooltip */
.region-map-tooltip {
  position: fixed;
  pointer-events: none;
  z-index: 2000;
  transform: translate(-50%, -100%);
  margin-top: -12px;
  background: rgba(7, 15, 29, 0.95);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(96, 165, 250, 0.4);
  border-radius: 14px;
  padding: 10px 14px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.65);
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 190px;
  max-width: 280px;
  animation: tooltipFadeIn .15s ease-out;
}

@keyframes tooltipFadeIn {
  from { opacity: 0; transform: translate(-50%, -90%); }
  to { opacity: 1; transform: translate(-50%, -100%); }
}

.tooltip-title {
  font-size: 13px;
  font-weight: 800;
  color: #fff;
  line-height: 1.25;
}

.tooltip-district {
  font-size: 9.5px;
  font-weight: 800;
  color: #60a5fa;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.tooltip-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 11px;
  font-weight: 700;
  color: #cbd5e1;
}

.tooltip-hint {
  font-size: 10px;
  font-weight: 700;
  color: #f87171;
  margin-top: 2px;
}

/* Mobile Bottom Sheet */
.region-bottom-sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 1200;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

.region-bottom-sheet-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

.region-bottom-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: 44svh;
  background: rgba(10, 20, 35, 0.98);
  backdrop-filter: blur(20px);
  border-top: 1px solid rgba(96, 165, 250, 0.35);
  border-radius: 22px 22px 0 0;
  z-index: 1300;
  box-shadow: 0 -10px 36px rgba(0, 0, 0, 0.75);
  padding: 14px 20px calc(24px + env(safe-area-inset-bottom));
  transform: translateY(105%);
  transition: transform .28s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
}

.region-bottom-sheet.active {
  transform: translateY(0);
}

.bottom-sheet-drag-handle {
  width: 42px;
  height: 4.5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.25);
  margin: 0 auto 4px;
}

.bottom-sheet-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.bottom-sheet-head > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.bottom-sheet-head h3 {
  font-family: var(--display);
  font-size: 17px;
  font-weight: 800;
  color: #fff;
  margin: 0;
  line-height: 1.25;
}

.bottom-sheet-head span {
  font-size: 10px;
  font-weight: 800;
  color: #60a5fa;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.bottom-sheet-close {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  color: #94a3b8;
  font-size: 17px;
  cursor: pointer;
  transition: all .15s ease;
}

.bottom-sheet-close:active {
  transform: scale(0.92);
}

.bottom-sheet-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.bottom-sheet-stat {
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(16, 30, 48, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.bottom-sheet-stat b {
  font-family: var(--display);
  font-size: 15px;
  font-weight: 800;
  color: #fff;
}

.bottom-sheet-stat small {
  font-size: 10px;
  font-weight: 700;
  color: #94a3b8;
}

.bottom-sheet-open-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 46px;
  border-radius: 14px;
  border: 0;
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #fff;
  font-family: var(--display);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(239, 68, 68, 0.4);
  transition: transform .15s ease;
}

.bottom-sheet-open-btn:active {
  transform: scale(0.98);
}

/* ==================================================== */
/* СТРАНИЦА РЕГИОНА (#region/:id)                       */
/* ==================================================== */
.region-page-container {
  display: grid;
  gap: 20px;
  margin-top: 10px;
}

.region-hero-card {
  padding: 16px;
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(20, 38, 64, 0.85), rgba(11, 22, 38, 0.95));
  border: 1px solid rgba(96, 165, 250, 0.25);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}

.region-hero-top {
  display: contents;
}

.region-hero-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.region-hero-district {
  font-size: 13px;
  font-weight: 700;
  color: #60a5fa;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin: 0;
}

.region-hero-name {
  font-family: var(--display);
  font-size: 26px;
  font-weight: 800;
  color: #fff;
  margin: 0 0 6px;
  line-height: 1.05;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.region-hero-capital {
  font-size: 14px;
  line-height: 1.3;
  color: #94a3b8;
  margin: 0;
}

.region-hero-badge {
  display: grid;
  place-items: center;
  min-width: 52px;
  height: 52px;
  border-radius: 16px;
  background: rgba(37, 99, 235, 0.2);
  border: 1px solid rgba(59, 130, 246, 0.4);
  color: #93c5fd;
  font-family: var(--display);
  font-size: 18px;
  font-weight: 800;
}

.region-stats-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

@media (max-width: 600px) {
  .region-stats-strip {
    grid-template-columns: repeat(2, 1fr);
  }
}

.region-stat-box {
  padding: 12px;
  border-radius: 14px;
  background: rgba(14, 25, 41, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.region-stat-box b {
  font-family: var(--display);
  font-size: 20px;
  font-weight: 800;
  color: #fff;
}

.region-stat-box span {
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
}

/* Карточка отделения Федерации */
.region-federation-card {
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(16, 30, 48, 0.75);
  border: 1px solid rgba(96, 165, 250, 0.2);
  display: grid;
  gap: 10px;
}

.region-federation-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.region-federation-head b {
  font-size: 14px;
  color: #fff;
}

.region-federation-details {
  display: grid;
  gap: 6px;
  font-size: 12.5px;
  color: #cbd5e1;
}

.region-federation-contacts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.region-contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  transition: all .15s ease;
}

.region-contact-btn:hover {
  background: rgba(37, 99, 235, 0.3);
  border-color: #3b82f6;
}

/* Секции карточки региона */
.region-section-block {
  display: grid;
  gap: 12px;
}

.region-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2px;
}

.region-section-head h3 {
  font-family: var(--display);
  font-size: 16px;
  font-weight: 800;
  color: #fff;
  margin: 0;
}

.region-athletes-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media (min-width: 769px) {
  .region-athletes-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  }
}

.region-athlete-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(14, 25, 41, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: all .18s ease;
}

.region-athlete-card:hover {
  background: rgba(24, 44, 72, 0.9);
  border-color: rgba(59, 130, 246, 0.4);
  transform: translateY(-2px);
}

.region-athlete-avatar {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  object-fit: cover;
  background: #111d2e;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.region-athlete-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.region-athlete-info b {
  font-size: 13.5px;
  color: #fff;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.region-athlete-info span {
  font-size: 11px;
  color: #94a3b8;
}

.region-athlete-badges {
  display: flex;
  gap: 5px;
}

.reg-badge-win {
  padding: 2px 7px;
  border-radius: 6px;
  background: rgba(239, 68, 68, 0.2);
  color: #fca5a5;
  font-size: 10.5px;
  font-weight: 800;
}

.reg-badge-rec {
  padding: 2px 7px;
  border-radius: 6px;
  background: rgba(245, 158, 11, 0.2);
  color: #fde68a;
  font-size: 10.5px;
  font-weight: 800;
}
