:root{
  --bg:#0a0a10; --bg2:#0e1220; --panel:#141a2e; --panel2:#1a2038;
  --line:#2a3352; --gold:#d4af37; --gold-lt:#f3da7d; --gold-dk:#8a6b1f;
  --txt:#e9dfc0; --muted:#9aa3c0; --blue:#3d6bd4; --blue-lt:#6fa3ff;
  --green:#36c275; --red:#ff6b6b;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--txt);font-family:Georgia,'Times New Roman',serif;}
a{color:var(--gold-lt)}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}

/* ---- шапка ---- */
header.site{
  background:linear-gradient(160deg,#12121a 0%,#0a0a10 60%,#0e1220 100%);
  border-bottom:1px solid var(--gold-dk);
  position:sticky;top:0;z-index:100;
}
header.site .bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;max-width:1180px;margin:0 auto}
header.site .brand{display:flex;align-items:center;gap:10px;text-decoration:none}
header.site .brand img{height:36px;width:auto}
header.site .brand span{color:var(--gold-lt);font-weight:bold;letter-spacing:.04em;font-size:15px}
nav.site{display:flex;gap:4px;flex-wrap:wrap}
nav.site a{
  color:var(--muted);text-decoration:none;font-size:13px;padding:8px 12px;border-radius:6px;
  border:1px solid transparent;letter-spacing:.02em;
}
nav.site a:hover{color:var(--gold-lt);border-color:var(--gold-dk);background:#161a2c}
nav.site a.active{color:var(--gold-lt);border-color:var(--gold-dk);background:#181c30}
.nav-auth{display:flex;gap:8px;align-items:center}
.btn{
  display:inline-block;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:bold;
  text-decoration:none;cursor:pointer;border:1px solid var(--gold-dk);
  background:linear-gradient(180deg,#232a44,#141a2e);color:var(--gold-lt);
}
.btn:hover{border-color:var(--gold)}
.btn.gold{background:linear-gradient(135deg,#8a6b1f,#d4af37);color:#14101a;border-color:#5c4a17}
.btn.small{padding:6px 12px;font-size:12px}

/* ---- боковые баннеры каналов (детектор/сканер) ---- */
.side-banner{position:fixed;top:90px;width:180px;z-index:50;display:none}
.side-banner img{width:100%;display:block;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.6);transition:transform .15s}
.side-banner:hover img{transform:scale(1.02)}
.side-banner.left{left:16px}
.side-banner.right{right:16px}
@media (min-width:1580px){.side-banner{display:block}}

/* ---- герой/баннер ---- */
.hero{text-align:center;padding:48px 20px 30px}
.hero.page-hero{padding:0 0 22px}
.hero img.banner{max-width:100%;width:640px;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.hero p{color:var(--muted);max-width:640px;margin:18px auto 0;line-height:1.6}

/* ---- карточки разделов ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:36px 0}
a.card{
  display:block;text-decoration:none;color:var(--txt);
  background:linear-gradient(160deg,#161a2c,#0e1120);
  border:1px solid var(--line);border-radius:12px;padding:22px 20px;
  transition:transform .15s,border-color .15s;
}
a.card:hover{transform:translateY(-3px);border-color:var(--gold-dk)}
a.card img.icon{width:56px;height:56px;margin-bottom:12px}
a.card .name{color:var(--gold-lt);font-size:1.1rem;font-weight:bold;margin-bottom:6px;display:block}
a.card .desc{font-size:.88rem;line-height:1.4;color:var(--muted)}

/* ---- контентные блоки ---- */
main.page{padding:36px 0 60px}
h1.page-title{color:var(--gold-lt);font-size:1.8rem;margin:0 0 8px}
p.page-sub{color:var(--muted);margin:0 0 30px}
.panel{
  background:linear-gradient(160deg,#161a2c,#0e1120);
  border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:20px;
}
.panel h2{color:var(--gold-lt);font-size:1.15rem;margin:0 0 14px;border-bottom:1px solid var(--gold-dk);padding-bottom:8px}
.tool-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.tool-list .item{background:#12162660;border:1px solid var(--line);border-radius:10px;padding:18px}
.tool-list .item .t{color:var(--gold-lt);font-weight:bold;margin-bottom:6px}
.tool-list .item .d{color:var(--muted);font-size:.86rem;line-height:1.4;margin-bottom:12px}

/* ---- формы ---- */
.form-box{max-width:420px;margin:0 auto}
.form-box label{display:block;font-weight:bold;color:var(--gold-lt);margin:14px 0 6px;font-size:.9rem}
.form-box input,.form-box textarea{
  width:100%;padding:10px 12px;border-radius:6px;border:1px solid var(--line);
  background:#0e1120;color:var(--txt);font-family:inherit;font-size:14px;
}
.form-box input:focus,.form-box textarea:focus{outline:none;border-color:var(--gold)}
.form-box button{width:100%;margin-top:20px}
.form-msg{margin-top:12px;font-size:.88rem;min-height:20px}
.form-msg.err{color:var(--red)}
.form-msg.ok{color:var(--green)}

/* ---- вкладки (Видео/Линия) ---- */
.tabbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.tabbar button{
  padding:9px 16px;border-radius:6px;border:1px solid var(--line);background:#12162660;
  color:var(--muted);cursor:pointer;font-family:inherit;font-size:13px;
}
.tabbar button.active{color:var(--gold-lt);border-color:var(--gold-dk);background:#181c30}
.tabpane{display:none}
.tabpane.active{display:block}
.video-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:10px;border:1px solid var(--line);margin-bottom:16px}
.video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
.widget-frame{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:8px}
.widget-frame iframe{display:block;width:100%;border:0}

/* ---- таблица игр (Линия) ---- */
.games-meta{color:var(--muted);font-size:.82rem;margin-bottom:12px}
.games-table{width:100%;border-collapse:collapse;font-size:.88rem}
.games-table th{text-align:left;color:var(--gold-lt);font-weight:bold;padding:8px 10px;border-bottom:1px solid var(--gold-dk);white-space:nowrap}
.games-table td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.games-table tr:hover td{background:#12162660}
.games-table tr.game-row{cursor:pointer}
.games-table .league-row td{color:var(--muted);font-size:.8rem;padding:14px 10px 6px;border-bottom:none;text-transform:uppercase;letter-spacing:.03em}
.games-table .live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px;box-shadow:0 0 6px var(--green)}
.games-table .minute{color:var(--green);font-weight:bold}
.odds-group{display:flex;gap:3px}
.games-table .odds{display:inline-block;min-width:34px;text-align:center;padding:3px 5px;border-radius:5px;background:#12162660;border:1px solid var(--line);color:var(--gold-lt);font-size:.82rem}
.games-table .no-odds{color:var(--muted);font-size:.8rem}
.games-table .score{font-weight:bold;color:var(--txt)}

@media (max-width:480px){
  .games-table th,.games-table td{padding:6px 5px}
  .odds-group{gap:2px}
  .games-table .odds{min-width:0;padding:2px 3px;font-size:.68rem;border-radius:4px}
}
.games-empty{color:var(--muted);text-align:center;padding:24px}

/* ---- карточка матча ---- */
.match-back{color:var(--muted);text-decoration:none;font-size:.85rem;display:inline-block;margin-bottom:16px}
.match-back:hover{color:var(--gold-lt)}
.match-breadcrumb{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:18px}
.match-breadcrumb a{color:var(--muted)}
.match-header{display:flex;align-items:center;justify-content:center;gap:28px;padding:26px 10px 30px;text-align:center}
.match-header .team{display:flex;flex-direction:column;align-items:center;gap:10px;width:150px}
.match-header .team img{width:64px;height:64px;object-fit:contain}
.match-header .team .name{color:var(--txt);font-weight:bold;font-size:.95rem;line-height:1.25}
.match-header .mid{min-width:90px}
.match-header .score{font-size:2.1rem;font-weight:bold;color:var(--gold-lt)}
.match-header .vs{font-size:1.3rem;color:var(--muted)}
.match-header .status{margin-top:6px;font-size:.82rem;color:var(--muted)}
.match-header .status.live{color:var(--green);font-weight:bold}

.stat-row{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;gap:12px;margin-bottom:14px;font-size:.85rem}
.stat-row .val{color:var(--txt);font-weight:bold;text-align:center}
.stat-row .label{grid-column:1 / -1;text-align:center;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
.stat-row .bars{display:flex;height:6px;border-radius:4px;overflow:hidden;background:#0e1120}
.stat-row .bars .home{background:var(--gold);height:100%}
.stat-row .bars .away{background:var(--blue);height:100%}

.goal-list{list-style:none;margin:0;padding:0}
.goal-list li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.88rem}
.goal-list li:last-child{border-bottom:none}
.goal-list .min{color:var(--gold-lt);font-weight:bold;min-width:38px}
.goal-list .side-home{color:var(--gold)}
.goal-list .side-away{color:var(--blue-lt);margin-left:auto;text-align:right}
.goal-list .ball{opacity:.7}

.match-info-line{color:var(--muted);font-size:.85rem;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-bottom:24px}

.injury-note{background:#12162660;border:1px solid var(--line);border-radius:10px;padding:16px 18px;font-size:.88rem;line-height:1.5;color:var(--txt)}

/* soccerstats-style dense tables: season compare / pre-match facts / H2H */
.table-scroll{overflow-x:auto}
.calc-links{display:flex;gap:10px;flex-wrap:wrap}
.dl-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.dual-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:640px){.dual-col{grid-template-columns:1fr}}
.match-table{width:100%;border-collapse:collapse;font-size:.88rem}
.match-table th{text-align:center;color:var(--gold-lt);font-weight:bold;padding:8px 10px;border-bottom:1px solid var(--gold-dk);white-space:nowrap}
.match-table th:first-child{text-align:left}
.match-table td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.match-table td:first-child{text-align:left;color:var(--muted)}
.match-table tr:last-child td{border-bottom:none}
.match-table tr:hover td{background:#12162660}
.match-table td.win{color:var(--green);font-weight:bold}
.match-table td.lose{color:var(--red);font-weight:bold}
.match-table.standings td:nth-child(2){text-align:left;color:var(--txt)}
.match-table.standings tr.highlight td{background:#2a2410}

.match-table.facts td:first-child{color:var(--txt);line-height:1.4}
.match-table.facts td:first-child strong{color:var(--gold-lt)}
.match-table.facts td.odds-cell{color:var(--gold-lt);font-weight:bold;white-space:nowrap;width:1%}

.match-table.h2h td:first-child{color:var(--muted);font-size:.82rem;white-space:nowrap}
.match-table.h2h td.home-cell{text-align:right}
.match-table.h2h td.away-cell{text-align:left}
.match-table.h2h td.score-cell{color:var(--gold-lt);font-weight:bold;white-space:nowrap;width:1%}

/* ---- материалы (книги) ---- */
.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.book-card{background:#12162660;border:1px solid var(--line);border-radius:10px;padding:16px;text-align:center}
.book-card .cover{width:100%;aspect-ratio:2/3;background:#1a1e30;border-radius:6px;margin-bottom:12px;
  display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.8rem;border:1px solid var(--line);object-fit:cover}
.book-card .title{color:var(--gold-lt);font-weight:bold;font-size:.92rem;margin-bottom:10px}

/* ---- сканер: полноширинный баннер, тарифные карточки ---- */
.scanner-top-banner{width:100%;display:block;line-height:0}
.scanner-top-banner img{width:100%;display:block}
.price-card{text-align:center;position:relative}
.price-card img{width:100%;display:block;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.price-card .btn-row{position:absolute;left:18%;right:18%;display:flex;flex-direction:column;gap:8px}
.price-card.free .btn-row{bottom:22%}
.price-card.paid .btn-row{bottom:8%}

/* ---- футер ---- */
footer.site{border-top:1px solid var(--line);padding:24px 20px;text-align:center;color:var(--muted);font-size:.85rem}
footer.site a{color:var(--gold-lt)}

@media(max-width:720px){
  header.site .bar{flex-direction:column;gap:10px;align-items:stretch}
  nav.site{justify-content:center}
}

/* якоря из полосок главной: не прятать заголовок под липкой шапкой */
[id^="v-"],[id^="instr-"]{scroll-margin-top:120px}
