/*
Theme Name: RovSport رووسپورت
Theme URI: https://rovixgroup.com
Author: Rovix Group
Description: پوسته خبری ورزشی فارسی برای همه رشته‌ها به‌جز فوتبال؛ با نتایج زنده (تنیس، فرمول یک، بسکتبال و...) و تولید محتوا با هوش مصنوعی رایگان (Gemini / OpenRouter).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: rovsport
*/
/* Layout: scoreboard-strip on top, editorial grid below (main column + rail), every sport owns a hue like a team kit */
:root{
  --bg:#F2F4F6; --surface:#FFFFFF; --ink:#0F1A28; --muted:#5A6676; --line:#DCE1E7; --soft:#E9EDF1;
  --accent:#E2461F; --accent-ink:#FFFFFF; --live:#D3203D; --ok:#1E8455; --warn:#B7791F;
  --vb:#2F6BD1; --bb:#C7621B; --tn:#4E8A2E; --f1:#9A1C3F; --wr:#5B3FA8; --wl:#2C7A87; --ma:#4A4F57; --hb:#B03A8C; --at:#0E7C66; --wo:#C2457A;
  --display:"Lalezar","Vazirmatn",Tahoma,sans-serif;
  --body:"Vazirmatn",Tahoma,"Segoe UI",sans-serif;
  --r:10px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0B1320; --surface:#121C2B; --ink:#E7ECF2; --muted:#94A2B4; --line:#24324A; --soft:#18253A;
  --accent:#FF6B3F; --accent-ink:#1A0A04; --live:#FF4D67; --ok:#3CC488; --warn:#E6A93A;
  --vb:#4F86E6; --bb:#E2853A; --tn:#72AE4E; --f1:#C9415F; --wr:#8A6FDB; --wl:#4AA4B2; --ma:#8B929C; --hb:#D35FAE; --at:#2DB394; --wo:#E06D9C;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0B1320; --surface:#121C2B; --ink:#E7ECF2; --muted:#94A2B4; --line:#24324A; --soft:#18253A;
  --accent:#FF6B3F; --accent-ink:#1A0A04; --live:#FF4D67; --ok:#3CC488; --warn:#E6A93A;
  --vb:#4F86E6; --bb:#E2853A; --tn:#72AE4E; --f1:#C9415F; --wr:#8A6FDB; --wl:#4AA4B2; --ma:#8B929C; --hb:#D35FAE; --at:#2DB394; --wo:#E06D9C;
  color-scheme:dark}
*{box-sizing:border-box}
html{direction:rtl}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.75;direction:rtl}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.num{font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.35;text-wrap:balance;margin:0}

/* ticker */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--ink)}
.ticker{background:var(--ink);color:var(--bg);font-size:13px}
.ticker .wrap{display:flex;align-items:center;gap:12px;padding-block:6px;overflow:hidden}
.ticker .lbl{flex:none;background:var(--live);color:#fff;border-radius:4px;padding:0 8px;font-weight:700;display:flex;align-items:center;gap:6px}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.25}}
.ticker .track{display:flex;gap:28px;white-space:nowrap;overflow-x:auto;scrollbar-width:none;min-width:0}
.ticker .track::-webkit-scrollbar{display:none}
.ticker .ti{display:flex;gap:6px;align-items:center;opacity:.92;cursor:pointer}
.ticker .ti b{color:var(--accent)}

/* header */
header.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:9}
.hrow{display:flex;align-items:center;gap:18px;padding-block:12px}
.logo{display:flex;align-items:baseline;gap:8px}
.logo .mk{font-family:var(--display);font-size:30px;line-height:1;color:var(--ink)}
.logo .mk span{color:var(--accent)}
.logo small{color:var(--muted);font-size:12px}
.hrow .sp{flex:1}
.search{display:flex;align-items:center;gap:6px;background:var(--soft);border-radius:999px;padding:4px 12px;min-width:0}
.search input{border:0;background:transparent;outline:0;width:180px;min-width:0}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.btn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.btn:hover{border-color:var(--muted)}
nav.sports{display:flex;gap:2px;overflow-x:auto;scrollbar-width:thin;padding-bottom:2px}
nav.sports a{padding:8px 12px;white-space:nowrap;border-bottom:3px solid transparent;font-weight:500;color:var(--muted)}
nav.sports a:hover{color:var(--ink)}
nav.sports a.on{color:var(--ink);border-bottom-color:var(--h,var(--accent))}
nav.sports a.tools{color:var(--accent);font-weight:700}

.demo{background:var(--soft);border-bottom:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.demo .wrap{padding-block:6px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:999px;padding:1px 9px;line-height:1.7;white-space:nowrap}
.chip.live{background:color-mix(in srgb,var(--live) 14%,transparent);color:var(--live)}
.chip.post{background:var(--soft);color:var(--muted)}
.chip.pre{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}
.chip.ai{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent)}
.chip.sp{background:color-mix(in srgb,var(--h) 15%,transparent);color:var(--h)}

main{padding-block:22px 48px}
.grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px}
@media (max-width:960px){.grid{grid-template-columns:minmax(0,1fr)}}
.sec-h{display:flex;align-items:center;gap:10px;margin:28px 0 12px;border-bottom:2px solid var(--ink);padding-bottom:6px}
.sec-h h2{font-size:24px}
.sec-h .bar{width:14px;height:14px;border-radius:3px;background:var(--h,var(--accent))}
.sec-h a.more{margin-inline-start:auto;font-size:13px;color:var(--muted)}

/* covers: generated art per sport */
.cover{position:relative;background:var(--h);border-radius:var(--r);overflow:hidden;aspect-ratio:16/9;max-width:100%;color:#fff}
.cover::before{content:"";position:absolute;inset:0;opacity:.22;background:var(--pat)}
.cover .glyph{position:absolute;inset-inline-start:-4%;bottom:-18%;font-family:var(--display);font-size:clamp(70px,14vw,170px);line-height:1;opacity:.18;white-space:nowrap}
.cover svg{position:absolute;inset-inline-end:6%;top:12%;width:34%;height:auto;opacity:.9}
.p-court{--pat:linear-gradient(90deg,transparent 49.5%,#fff 49.5% 50.5%,transparent 50.5%),linear-gradient(0deg,transparent 30%,#fff 30% 31%,transparent 31% 69%,#fff 69% 70%,transparent 70%)}
.p-stripe{--pat:repeating-linear-gradient(135deg,#fff 0 2px,transparent 2px 22px)}
.p-check{--pat:conic-gradient(#fff 25%,transparent 0 50%,#fff 0 75%,transparent 0) 0 0/28px 28px}
.p-ring{--pat:radial-gradient(circle at 50% 50%,transparent 30%,#fff 30.5% 31.5%,transparent 32%)}

/* lead */
.lead{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px}
@media (max-width:760px){.lead{grid-template-columns:minmax(0,1fr)}}
.lead .main h1{font-size:clamp(24px,3.2vw,34px);margin-top:12px}
.lead .main p{color:var(--muted);margin:8px 0 0}
.meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--muted)}
.side-list{display:flex;flex-direction:column;gap:14px}
.mini{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;align-items:start;cursor:pointer}
.mini .cover{aspect-ratio:4/3;border-radius:8px}
.mini .cover .glyph{font-size:60px}
.mini .cover svg{display:none}
.mini h3{font-family:var(--body);font-weight:700;font-size:15px;line-height:1.6}
.card{cursor:pointer}
.card h3{font-family:var(--body);font-weight:700;font-size:16px;margin-top:10px;line-height:1.6}
.card p{color:var(--muted);font-size:13.5px;margin:4px 0 0}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:760px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.cards{grid-template-columns:minmax(0,1fr)}}
.card:hover h3,.mini:hover h3,.lead .main:hover h1{color:var(--accent)}

/* rail widgets */
.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.box+.box{margin-top:18px}
.box h4{margin:0 0 8px;font-family:var(--display);font-weight:400;font-size:19px;display:flex;align-items:center;gap:8px}
.box h4 a{margin-inline-start:auto;font-family:var(--body);font-size:12px;color:var(--muted)}
.ol{list-style:none;margin:0;padding:0;counter-reset:n}
.ol li{counter-increment:n;display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;padding:8px 0;border-top:1px solid var(--line);cursor:pointer;font-size:14px;font-weight:500}
.ol li:first-child{border-top:0}
.ol li::before{content:counter(n,persian);font-family:var(--display);font-size:22px;color:var(--accent);line-height:1.2}
table.st{width:100%;border-collapse:collapse;font-size:13.5px}
table.st th{font-weight:500;color:var(--muted);text-align:start;font-size:12px;padding:4px 2px;border-bottom:1px solid var(--line)}
table.st td{padding:6px 2px;border-bottom:1px solid var(--line)}
table.st td.pts{font-weight:800;text-align:end}
table.st th.pts{text-align:end}
.tm{display:inline-block;width:4px;height:14px;border-radius:2px;margin-inline-end:6px;vertical-align:-2px;background:var(--h)}

/* scoreboard rows */
.game{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.game:first-child{border-top:0}
.game .tm-row{display:flex;justify-content:space-between;gap:8px;min-width:0}
.game .tm-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game .tm-row.win{font-weight:800}
.game .sc{font-weight:800;direction:ltr}
.game .st{grid-column:2;grid-row:1 / span 2;align-self:center;text-align:center;min-width:76px}
.game .teams{display:flex;flex-direction:column;min-width:0}
.game .lg{font-size:11.5px;color:var(--muted)}
.race{padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.race:first-child{border-top:0}
.pod{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.pod span{background:var(--soft);border-radius:6px;padding:0 8px;font-size:13px}

/* calendar strip */
.cal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:760px){.cal{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ev{border-inline-start:4px solid var(--h);background:var(--surface);border-radius:8px;padding:10px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-inline-end:1px solid var(--line)}
.ev b{display:block;font-size:14px}
.ev small{color:var(--muted)}

/* sport page */
.shero{border-radius:var(--r);background:var(--h);color:#fff;padding:26px 24px;position:relative;overflow:hidden}
.shero::before{content:"";position:absolute;inset:0;opacity:.18;background:var(--pat)}
.shero h1{font-size:clamp(34px,6vw,58px);position:relative}
.shero p{position:relative;margin:4px 0 0;opacity:.9}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}
.tabs button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 14px;cursor:pointer}
.tabs button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--line);cursor:pointer}
.row .cover{aspect-ratio:16/10}
.row .cover svg{display:none}
.row .cover .glyph{font-size:80px}
.row h3{font-family:var(--body);font-weight:700;font-size:17px}
.row p{margin:4px 0 0;color:var(--muted);font-size:14px}
@media (max-width:520px){.row{grid-template-columns:110px minmax(0,1fr)}.row p{display:none}}

/* article */
.art{max-width:720px}
.crumbs{font-size:13px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}
.art h1{font-size:clamp(26px,4vw,40px);margin:10px 0}
.art .lede{font-size:17px;font-weight:500;color:var(--ink);border-inline-start:4px solid var(--h);padding-inline-start:12px;margin:14px 0}
.art .body p{margin:0 0 14px;font-size:16.5px;line-height:2}
.aibox{border:1px dashed var(--accent);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--muted);margin:18px 0;display:flex;gap:8px;align-items:flex-start}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.tags span{background:var(--soft);border-radius:6px;padding:1px 10px;font-size:13px}
.share{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}

/* tools */
.ttabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;margin-bottom:16px}
.ttabs button{background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;cursor:pointer;font-weight:700;color:var(--muted);white-space:nowrap}
.ttabs button.on{color:var(--ink);border-bottom-color:var(--accent)}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.filters button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 12px;cursor:pointer;font-size:13px}
.filters button.on{border-color:var(--h,var(--accent));background:color-mix(in srgb,var(--h,var(--accent)) 14%,var(--surface));font-weight:700}
.filters .upd{margin-inline-start:auto;font-size:12px;color:var(--muted)}
.boards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.board .bh{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.board .bh b{font-size:15px}
.board .bh .chip{margin-inline-start:auto}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:760px){.two{grid-template-columns:minmax(0,1fr)}}
.bigtbl{overflow-x:auto}
.empty{color:var(--muted);font-size:13.5px;padding:12px 0}

/* studio */
.studio{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:22px}
@media (max-width:900px){.studio{grid-template-columns:minmax(0,1fr)}}
label.f{display:block;font-size:13px;font-weight:700;margin:12px 0 4px}
.inp{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:8px 10px}
textarea.inp{min-height:150px;resize:vertical;line-height:1.8}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:4px 12px;cursor:pointer;font-size:13.5px}
.seg button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.preview{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;min-height:300px}
.preview h2{font-size:26px;margin:8px 0}
.preview .lede{font-weight:700}
.preview .body p{margin:0 0 10px}
.queue td,.queue th{white-space:nowrap}
.prov{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:520px){.prov{grid-template-columns:minmax(0,1fr)}}
.prov .box{margin:0}
.prov .box+.box{margin:0}
.kv{display:flex;justify-content:space-between;gap:8px;font-size:13px;border-top:1px solid var(--line);padding:5px 0}
.kv span:first-child{color:var(--muted)}
.note{font-size:12.5px;color:var(--muted)}
.spin{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:rot .8s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}

footer{background:var(--ink);color:var(--bg);margin-top:20px}
footer .wrap{padding-block:28px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;font-size:13.5px}
footer h5{margin:0 0 8px;font-size:14px;color:var(--accent)}
footer a{display:block;opacity:.8;padding:2px 0;cursor:pointer}
@media (max-width:760px){footer .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.search{display:none}.logo small{display:none}}
@media (prefers-reduced-motion:reduce){.dot,.spin{animation:none}}

/* WordPress additions */
.admin-bar header.top{top:32px}
@media (max-width:782px){.admin-bar header.top{top:0}}
.cover.has-img{background:var(--soft)}
.cover.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover.has-img::before,.cover.has-img .glyph,.cover.has-img svg{display:none}
.art .body img{border-radius:8px;height:auto}
.art .body h2,.art .body h3{margin:22px 0 10px}
.art .body ul,.art .body ol{padding-inline-start:22px}
.pager{display:flex;gap:6px;flex-wrap:wrap;margin:22px 0}
.pager .page-numbers{border:1px solid var(--line);border-radius:8px;padding:2px 12px;background:var(--surface)}
.pager .current{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.page-content{max-width:760px}
