.program-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:24px; }
.program-types button { min-width:0; min-height:90px; display:flex; align-items:center; justify-content:flex-start; text-align:left; gap:12px; padding:17px 16px; border:1px solid var(--line); border-radius:12px; color:var(--text); background:var(--panel-raised,var(--panel,#17171b)); font:inherit; cursor:pointer; transition:border-color .2s,background .2s,transform .2s; }
.program-types button:hover { border-color:color-mix(in srgb,var(--text) 25%,transparent); transform:translateY(-1px); }
.program-types button[aria-pressed=true] { border-color:color-mix(in srgb,var(--accent) 60%,var(--line)); background:color-mix(in srgb,var(--accent) 6%,var(--panel,var(--bg))); }
.program-types button strong { display:block; font-size:14px; font-weight:600; line-height:1.4; letter-spacing:-.2px; }
.program-types button small { display:block; font-size:10px; line-height:1.6; margin-top:4px; color:var(--muted); }
.program-types button[aria-pressed=true] strong { color:var(--text); }
.program-types button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.program-type-symbol { flex-shrink:0; display:grid; place-items:center; width:27px; height:32px; font-size:22px; line-height:1; color:var(--muted); }
.program-types button[aria-pressed=true] .program-type-symbol { color:var(--accent); }
.challenge-layout > *, .platform .checkout-grid > * { min-width:0; }
.program-table-scroll { width:100%; max-width:100%; overflow:auto; overscroll-behavior-inline:contain; margin:22px 0 0; border:1px solid var(--line); border-radius:12px; scrollbar-width:thin; scrollbar-color:var(--muted) transparent; }
.program-table-scroll:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.program-stage-table { width:100%; min-width:520px; border-collapse:separate; border-spacing:0; font-size:12px; line-height:1.5; background:var(--panel,var(--bg)); }
.program-stage-table caption { text-align:left; padding:15px 17px; border-bottom:1px solid var(--line); background:var(--panel-raised,var(--panel)); font-size:10px; color:var(--muted); line-height:1.8; }
.program-stage-table th,.program-stage-table td { text-align:center; padding:19px 12px; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums; font-weight:500; }
.program-stage-table thead th { padding-block:13px; font-size:9px; font-weight:450; color:var(--muted); letter-spacing:0; text-transform:none; }
.program-stage-table th:first-child { position:sticky; left:0; z-index:1; text-align:left; padding-left:17px; background:var(--panel,var(--bg)); border-right:1px solid var(--line); }
.program-stage-table tbody th { color:var(--text); font-weight:550; }
.program-stage-table tbody tr:last-child th { color:var(--accent); }
.program-stage-table tbody tr:hover td { background:color-mix(in srgb,var(--text) 2%,var(--panel,var(--bg))); }
.program-stage-table tbody tr:last-child th,.program-stage-table tbody tr:last-child td { border-bottom:0; }
.program-stage-table small { display:block; font-size:9px; line-height:1.6; margin-top:5px; color:var(--muted); font-weight:400; }
.program-terms-note { font-size:10px; line-height:1.9; color:var(--muted); margin:17px 0 0; }
.program-format-note { color:var(--muted); font-size:11px; line-height:1.8; margin:-8px 0 29px; }
.purchase-options { border-block:1px solid var(--line); margin:22px 0; padding:6px 0; }
.purchase-option { display:grid; grid-template-columns:17px minmax(0,1fr) auto; align-items:start; gap:9px; padding:16px 0; cursor:pointer; font-size:11px; line-height:1.6; }
.purchase-option input { margin:3px 0 0; accent-color:var(--accent); width:15px; height:15px; min-height:0; }
.purchase-option:has(input:focus-visible) { outline:2px solid var(--accent); outline-offset:5px; border-radius:5px; }
.purchase-option strong { display:block; font-weight:500; }
.purchase-option small { display:block; margin-top:6px; font-size:10px; line-height:1.7; color:var(--muted); }
.purchase-option b { font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.purchase-share { font-size:11px; color:var(--muted); margin:0 0 12px; }
.purchase-share strong { color:var(--accent); }
.purchase-protection { grid-column:1/-1; margin:20px 0; border:1px solid var(--line); border-radius:9px; padding:18px; font-size:12px; line-height:1.8; }
.purchase-protection p { color:var(--muted); margin:6px 0 0; }
.platform .stage-progress { margin-bottom:22px; }
.platform .stage-track { display:flex; gap:10px; list-style:none; padding:0; margin:0 0 20px; }
.platform .stage-track li { flex:1; min-width:0; padding:12px; border-top:2px solid var(--line); color:var(--muted); font-size:12px; }
.platform .stage-track li[aria-current=step] { color:var(--accent); border-color:var(--accent); }
.platform .stage-track small { display:block; margin-top:4px; font-size:10px; }
.platform .stage-advance { display:flex; justify-content:space-between; align-items:center; gap:22px; }
.platform .stage-advance p { color:var(--muted); font-size:12px; margin-bottom:8px; }
.platform .stage-advance h2 { margin-bottom:10px; }
.platform .stage-progress .button { flex-shrink:0; }
.platform .stage-progress [role=status] { font-size:12px; color:var(--accent); margin-top:12px; }
.platform .admin-stage-editor { padding:18px 0; border-top:1px solid var(--line); }
@media(max-width:1050px) { .challenge-page .program-types button { padding:14px 11px; flex-direction:column; align-items:flex-start; gap:5px; } .challenge-page .program-types button strong { font-size:12px; } .challenge-page .program-type-symbol { width:23px; height:25px; } }
@media(max-width:650px) { .program-types { gap:7px; } .program-types button { padding:14px 10px; min-height:96px; gap:8px; flex-direction:column; align-items:flex-start; } .program-types button strong { font-size:12px; } .program-types button small { font-size:10px; } .program-type-symbol { font-size:20px; width:24px; height:25px; } .platform .stage-advance { flex-direction:column; align-items:stretch; } .platform .stage-track { gap:5px; } .platform .stage-track li { padding-inline:6px; } }
@media(max-width:380px) { .challenge-page .program-types { gap:5px; } .challenge-page .program-types button { padding:11px 8px; border-radius:9px; } .challenge-page .program-types button strong { font-size:11px; } .challenge-page .program-types button small { font-size:9px; } }
@media(prefers-reduced-motion:reduce) { .program-types button { transition:none; } }
@media(max-width:650px) {
  .program-table-scroll::after { content:'Прокрутите таблицу вправо →'; display:block; position:sticky; left:0; padding:12px 16px; font-size:10px; color:var(--muted); }
  html[lang=en] .program-table-scroll::after { content:'Scroll right to see all conditions →'; }
}
