@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap');
:root{--paper:#ECEAE4;--paper2:#F5F4F0;--ink:#17191E;--ink2:#3C4048;--mut:#777C88;--line:#D8D5CC;--line2:#C9C5BA;
 --coral:#E2474B;--teal:#2A9A8C;--must:#E0A826;--blue:#2E6FB5;--acc:var(--coral);--pos:#1F8A5B;--neg:#D23A3E;--r:4px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.5 "IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:tabular-nums;min-height:100vh;position:relative}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.55;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
 background:radial-gradient(260px 120px at 8% 12%,rgba(23,25,30,.07),transparent 70%),radial-gradient(180px 90px at 92% 88%,rgba(23,25,30,.08),transparent 70%),radial-gradient(90px 60px at 78% 6%,rgba(23,25,30,.06),transparent 70%)}
header,main{position:relative;z-index:1}
a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.d{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:.95}

/* шапка */
.top{display:flex;align-items:center;gap:22px;padding:12px 22px;border-bottom:2px solid var(--ink);background:var(--paper)}
.brand{font-family:"Oswald",sans-serif;font-weight:700;font-size:26px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);line-height:1}.brand b{color:var(--acc);font-weight:700}
.top nav{display:flex;gap:2px}.top nav a{font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:15px;padding:6px 12px;color:var(--ink2)}
.top nav a.on{background:var(--ink);color:var(--paper)}.top nav a:hover{text-decoration:none;color:var(--ink)}.top nav a.on:hover{color:var(--paper)}
.who{margin-left:auto;color:var(--mut);font-size:14px}
main{padding:18px 22px 70px;max-width:1360px;margin:0 auto}
h2{font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;font-size:34px;line-height:1;margin:4px 0 8px;letter-spacing:.005em}
h3{font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.05em;font-size:16px;margin:0 0 10px;color:var(--ink2)}

/* панели */
.panel{background:var(--paper2);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:16px;box-shadow:2px 2px 0 var(--line2)}
.muted{color:var(--mut)}.small{font-size:13px}.pos{color:var(--pos)}.neg{color:var(--neg)}.nowrap{white-space:nowrap}
.note{color:var(--mut);font-size:13px;margin:10px 0 14px;max-width:900px}

/* формы */
label{display:block;margin:8px 0;color:var(--ink2);font-size:13px}
input,select,button{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:var(--r);padding:8px 11px}
input:focus,select:focus{outline:none;border-color:var(--ink)}
button{background:var(--ink);border-color:var(--ink);color:var(--paper);font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}button:hover{background:var(--acc);border-color:var(--acc)}
button.quiet{background:#fff;color:var(--ink)}button.quiet:hover{background:var(--ink);color:var(--paper)}button.danger{background:#fff;border-color:var(--neg);color:var(--neg)}button.danger:hover{background:var(--neg);color:#fff}
.col label input{width:100%}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.num{width:84px}
.login{max-width:380px;margin:70px auto}.login button{width:100%;margin-top:8px}.err{color:var(--neg);margin:0 0 8px}
.msg{background:#E3F2E8;border:1px solid #9CCFB0;color:#19613C;padding:10px 14px;border-radius:var(--r);margin-bottom:14px}

/* фильтры-чипы */
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.sortrow{display:none}.chiplabel{flex:none;align-self:center;color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin-right:2px}.chips+.chips{margin-bottom:12px}
.chip{font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.05em;font-size:14px;padding:5px 12px;border:1px solid var(--ink);color:var(--ink);background:transparent}
.chip.on{background:var(--ink);color:var(--paper)}.chip:hover{text-decoration:none;background:var(--acc);border-color:var(--acc);color:#fff}
.chip.s-basketball.on{background:var(--coral);border-color:var(--coral)}.chip.s-soccer.on{background:var(--teal);border-color:var(--teal)}.chip.s-handball.on{background:var(--must);border-color:var(--must);color:var(--ink)}.chip.s-icehockey.on{background:var(--blue);border-color:var(--blue)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}.filters .inl{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--ink2)}.filters .q{min-width:220px;flex:1}

/* фильтры: сворачивание на телефоне */
.fdet>summary{display:none}.help{margin:4px 0 8px}.help>summary{cursor:pointer;color:var(--mut);font-size:13px;list-style:none}.help>summary::before{content:"? ";font-weight:700}.help .note{margin:6px 0 0}
.count{color:var(--mut);font-size:13px;margin:0 0 10px}
/* таблица */
.tablewrap{overflow-x:auto;background:var(--paper2);border:1px solid var(--line);border-radius:var(--r);box-shadow:2px 2px 0 var(--line2)}
table.m{width:100%;border-collapse:collapse}table.m th,table.m td{padding:11px 12px;border-top:1px solid var(--line);text-align:left;vertical-align:middle}
table.m thead th{border-top:0;border-bottom:2px solid var(--ink);line-height:1.2;font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:13px;color:var(--ink2);white-space:normal;max-width:120px}
table.m th a{color:var(--ink2)}table.m th a.on{color:var(--ink)}table.m th a.on::after{content:" ▾";color:var(--acc)}
table.m tbody tr:hover td{background:rgba(23,25,30,.03)}
table.m tr.pass td{background:rgba(224,168,38,.14)}table.m tr.pass:hover td{background:rgba(224,168,38,.2)}
table.m td.match a{font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;font-size:19px;line-height:1.05;letter-spacing:.005em}
table.m td.match .lg{display:block;color:var(--mut);font-size:12.5px;margin-top:3px}
table.m td.bet{font-weight:600}table.m td.bet .bk{display:block;color:var(--mut);font-size:12px;font-weight:400}
table.small td,table.small th{padding:5px 8px;font-size:13px}
.sp{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.sp-basketball{background:var(--coral)}.sp-soccer{background:var(--teal)}.sp-handball{background:var(--must)}.sp-icehockey{background:var(--blue)}

/* рейтинг */
.rt{display:flex;align-items:center;gap:10px;min-width:120px}
.rt .n{font-family:"Oswald",sans-serif;font-weight:700;font-size:22px;min-width:44px;text-align:right;line-height:1}
.rt .bar{position:relative;flex:1;height:10px;background:#DCD9D0;overflow:hidden}
.rt .bar i{position:absolute;left:0;top:0;bottom:0;background:#9A9A94}.rt.hot .bar i{background:var(--acc)}.rt.hot .n{color:var(--acc)}
.rt .bar b{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--ink)}
.rt.neg .n{color:var(--mut)}

/* бейджи */
.badge{display:inline-block;padding:2px 9px;font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:12px;background:var(--ink);color:var(--paper);white-space:nowrap}
.badge.ok{background:var(--pos)}.badge.bad{background:var(--neg);color:#fff}.badge.amb{background:var(--acc);color:#fff}

/* столбики формы */
.spark{display:inline-flex;align-items:flex-end;gap:3px;height:28px;vertical-align:middle}
.spark i{display:block;width:7px;background:var(--pos);min-height:3px}.spark i.miss{background:var(--neg)}
.hit{display:inline-flex;gap:10px;align-items:center}

/* история игр: дата | матч | счёт */
table.hist td,table.hist th{padding:8px 8px;font-size:14px}table.hist td.date{color:var(--mut);white-space:nowrap;font-size:13px}
table.hist td.teams .own{color:var(--blue);font-weight:600}table.hist td.teams .lg{display:block;color:var(--mut);font-size:12px}
table.hist td.score{font-family:"Oswald",sans-serif;font-weight:700;font-size:17px;white-space:nowrap}table.hist td.num{white-space:nowrap}table.hist td.num .l{display:none}
/* карточка матча: афиша */
.poster{position:relative;overflow:hidden;background:var(--ink);color:var(--paper);padding:26px 24px 22px;margin-bottom:16px;border-radius:var(--r)}
.poster::before{content:"";position:absolute;right:-6%;top:-30%;width:46%;height:160%;background:var(--acc);transform:skewX(-14deg);opacity:.95}
.poster::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(300px 100px at 70% 110%,rgba(0,0,0,.35),transparent 70%)}
.poster>*{position:relative;z-index:1}
.poster .meta{font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:13px;opacity:.8;margin-bottom:8px}
.poster .teams{font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;line-height:.92;font-size:clamp(34px,6vw,76px);letter-spacing:-.005em}
.poster .teams .vs{display:block;font-size:.38em;letter-spacing:.2em;opacity:.7;margin:6px 0}
.poster .score{font-family:"Oswald",sans-serif;font-weight:700;font-size:44px;margin-top:6px}
.poster .kv{margin-top:16px;color:var(--paper)}.poster .kv div{color:rgba(245,244,240,.7)}.poster .kv div b{color:var(--paper)}
.poster.s-basketball{--acc:var(--coral)}.poster.s-soccer{--acc:var(--teal)}.poster.s-handball{--acc:var(--must)}.poster.s-icehockey{--acc:var(--blue)}

.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 24px;margin-top:8px}.kv div{color:var(--mut);font-size:13px}
.kv div b{display:block;color:var(--ink);font-family:"Oswald",sans-serif;font-weight:700;font-size:24px;line-height:1.1}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.stat{border-top:4px solid var(--ink)}.stat .big{font-family:"Oswald",sans-serif;font-weight:700;font-size:56px;line-height:1;letter-spacing:-.01em}.stat .big.pos{color:var(--pos)}.stat .big.neg{color:var(--neg)}
.actions{display:flex;gap:8px;flex-wrap:wrap}.actions form{display:flex;gap:4px}.actions input{width:120px}
.empty{padding:30px;text-align:center;color:var(--mut)}

@media(max-width:860px){
  .grid2,.grid3{grid-template-columns:1fr}main{padding:12px 12px 50px}.top{padding:8px 12px;gap:10px}.who{display:none}.brand{font-size:22px}
  .top nav{overflow-x:auto;white-space:nowrap;flex:1;scrollbar-width:none}.top nav::-webkit-scrollbar{display:none}.top nav a{font-size:13px;padding:5px 9px}
  .sortrow{display:flex}.chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;margin-bottom:6px}.chips::-webkit-scrollbar{display:none}.chip{flex:none;font-size:13px;padding:4px 10px}
  .fdet>summary{display:list-item;cursor:pointer;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:13px;color:var(--ink2);margin:2px 0 8px}
  .filters{gap:6px}.filters select,.filters input{padding:6px 8px;font-size:14px}.filters .q{min-width:0;width:100%}.filters .inl{font-size:13px}
  table.hist{display:block}table.hist thead{display:none}table.hist tbody,table.hist tr{display:block}
  table.hist tr{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:2px 10px;padding:8px 0;border-top:1px solid var(--line);align-items:center}
  table.hist td{display:block;padding:0;border:0}table.hist td.date{grid-row:1/3;font-size:12px;line-height:1.3;white-space:normal}table.hist td.teams{grid-column:2}table.hist td.score{grid-column:3;grid-row:1/3;text-align:right}
  table.hist td.num{grid-column:2;font-size:12.5px;color:var(--mut);display:inline}table.hist td.num.pos{color:var(--pos)}table.hist td.num.neg{color:var(--neg)}table.hist td.num .l{display:inline}
  table.hist tr{grid-template-areas:"d t s" "d n s"}table.hist td.date{grid-area:d}table.hist td.teams{grid-area:t}table.hist td.score{grid-area:s}
  table.hist td.num{grid-area:n;margin-right:10px}table.hist td.num:last-child{display:none}
  .kv{grid-template-columns:1fr 1fr}.kv div b{font-size:20px}.poster{padding:18px 14px}.poster .teams{font-size:30px}
  .rt .n{font-size:19px;min-width:40px}table.m.list td.match a{font-size:16px}table.m.list td.bet{font-size:14px}
  table.m.list{display:block}table.m.list thead{display:none}table.m.list tbody,table.m.list tr{display:block}
  table.m.list tr{padding:10px 12px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:2px 12px}
  table.m.list td{display:block;padding:0;border:0;background:transparent!important}
  table.m.list td.time{grid-column:1;color:var(--mut);font-size:12.5px}table.m.list td.sport{display:none}
  table.m.list td.match{grid-column:1}table.m.list td.bet{grid-column:1;margin-top:2px}
  table.m.list td.rating{grid-column:2;grid-row:1/4;align-self:center}table.m.list td.odd{grid-column:1;color:var(--mut);font-size:13px}
  table.m.list td.extra{grid-column:1/3;color:var(--mut);font-size:12.5px;margin-top:4px}table.m.list td.botcol{grid-column:1/3;margin-top:4px}
  table.m.list td.extra-d{display:none}table.m.list td.odd::before{content:'кэф '}table.m.list td.rating .rt{min-width:0;gap:6px;justify-content:flex-end}table.m.list td.rating .bar{width:60px;flex:none}
  table.m.list tr.pass{background:rgba(224,168,38,.14)}
}
@media(max-width:860px){
  table.m.mk{display:block}table.m.mk thead{display:none}table.m.mk tbody,table.m.mk tr{display:block}
  table.m.mk tr{padding:10px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:3px 10px;align-items:center}
  table.m.mk td{display:block;padding:0;border:0;background:transparent!important}
  table.m.mk td.bet{grid-column:1}table.m.mk td.bk{grid-column:1;font-size:12.5px}table.m.mk td.bk::after{content:""}
  table.m.mk td.odd{grid-column:1;font-size:13px;color:var(--mut)}table.m.mk td.odd::before{content:'кэф '}
  table.m.mk td.rating{grid-column:2;grid-row:1/4}table.m.mk td.rating .rt{min-width:0;gap:6px;justify-content:flex-end}table.m.mk td.rating .bar{width:56px;flex:none}
  table.m.mk td.em,table.m.mk td.ef,table.m.mk td.eh{display:inline-block;font-size:13px;grid-column:1/3}
  table.m.mk td.em::before{content:'модель ';color:var(--mut)}table.m.mk td.ef::before{content:'форма ';color:var(--mut)}table.m.mk td.eh::before{content:'очные ';color:var(--mut)}
  table.m.mk td.hit{grid-column:1/3;margin-top:4px}table.m.mk td.botcol{grid-column:1/3}
  table.m.mk tr.pass{background:rgba(224,168,38,.14);padding:10px 8px}
}
@media(min-width:861px){table.m.list td.extra{display:none}table.m.list td.match .lg{display:none}table.m.list td.rating{min-width:150px}table.m.list td.match{min-width:200px}table.m.list td.sport{max-width:140px}table.m.list td.match a{font-size:17px}table.m.list td.bet{max-width:260px}table.m.list td.time{width:92px}}
