/* Tabelul de cote (designul v3, oct 2026), stil OddsPortal, culori FootyStats. Incarcat doar in v3. */
.ot-wrap{overflow-x:auto;background:var(--card,#fff);border:1px solid var(--line,#D4D9DF);border-radius:8px;margin:12px 0}
.ot{width:100%;border-collapse:collapse;font-size:13.5px;color:var(--text,#183053);font-variant-numeric:tabular-nums}
.ot thead th{background:var(--nav-bg,#183053);color:#fff;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:9px 10px;text-align:left;white-space:nowrap}
.ot thead th.ot-o{text-align:center}
.ot thead abbr{text-decoration:none;cursor:help}
.ot-lg th{background:var(--lg-head,#F0F3F7);color:var(--text,#183053);text-align:left;padding:8px 12px;font-size:13px;font-weight:700;border-top:1px solid var(--line,#D4D9DF)}
.ot-lg a{color:var(--text,#183053);text-decoration:none}.ot-lg a:hover{color:var(--blue,#2D5DC5);text-decoration:underline}
.ot-row td{padding:8px 10px;border-top:1px solid var(--line-soft,#EAEAEA);vertical-align:middle;background:var(--card,#fff)}
.ot-row:hover td{background:#F8FAFC}
.ot-time{width:88px;white-space:nowrap;color:var(--muted,#47576E);font-size:12.5px}
.ot-score{display:block;margin-top:2px;color:var(--text,#183053);font-size:13px}
.ot-match a{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;color:var(--text,#183053);font-weight:600;text-decoration:none}
.ot-match a:hover .ot-tn{color:var(--blue,#2D5DC5);text-decoration:underline}
.ot-team{display:inline-flex;align-items:center;gap:6px;min-width:0}
.ot-tn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ot-sep{color:var(--muted,#47576E);font-weight:400}
.ot-o{width:80px;text-align:center}
.ot-best{display:block;border:1px solid var(--line,#D4D9DF);border-radius:6px;padding:5px 2px;font-weight:700;background:#fff;color:var(--text,#183053)}
.ot-none{color:var(--text-3,#5F6B7D);font-weight:400}
.ot-fair{display:block;margin-top:3px;font-size:11px;color:var(--text-3,#5F6B7D);white-space:nowrap}
.ot-fair.fair-logged{font-style:italic}
.ot-gap{display:block;margin-top:2px;font-size:11px;font-weight:800;color:var(--good,#2E7D32)}
/* loc gol in celulele fara randul in plus, ca toate casutele randului sa stea pe aceeasi linie (12 oct 2026) */
.ot-ph{visibility:hidden}
.ot-o.is-value .ot-best{background:var(--value-bg,#2E7D32);border-color:var(--value-bg,#2E7D32);color:#fff;box-shadow:inset 3px 0 0 var(--brand-green,#45B549)}
.ot-o.is-value.t-micro .ot-best{background:var(--warn-bg,#FFE3B7);border-color:#E9B872;color:var(--warn,#804404);box-shadow:none}
/* (16 oct 2026) banda 1,5–3% („Value flag”): doar contur verde; plinul ramane pentru >= 3% („Strong value”). Pe steagurile
   live inregistrate, banda mica nu se distinge de zero la CLV, deci nu primeste aceeasi greutate vizuala. */
.ot-o.is-value.t-value .ot-best{background:#fff;color:var(--value-bg,#2E7D32);border:2px solid var(--value-bg,#2E7D32);padding:4px 1px;box-shadow:none}
.ot-o.is-value.t-value.is-win .ot-best{box-shadow:inset 0 0 0 1px var(--value-bg,#2E7D32)}
.ot-probs .ot-o.is-value.t-value .ot-best{padding:2px 1px}   /* aceeasi inaltime ca vecinele (3px + 1px) in tabelele cu procente */
/* casa cotei cu valoare, sub ea (16 oct 2026) */
/* width:0 + min-width: numele nu largeste coloana (casuta ramane cat celelalte); foloseste si spatiul de padding al celulei */
.ot-book{display:block;width:0;min-width:calc(100% + 16px);margin:1px -8px 0;font-size:10.5px;line-height:1.3;color:var(--muted,#47576E);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* steluta: meciul intra in lista de urmarire (formularul #otw) */
.ot-mw{display:flex;align-items:center;gap:8px}
.ot-mw>a{flex:1 1 auto;min-width:0}
.ot-star{flex:none;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-3,#5F6B7D);font-size:18px;line-height:1;cursor:pointer;padding:0}
.ot-star:hover,.ot-star:focus-visible{border-color:var(--line,#D4D9DF);color:var(--text,#183053)}
.ot-star.on{color:#C98A00}
.ot-row{scroll-margin-top:96px}
.ot-row:target td{background:#FFF8E1}
.ot-o.is-value.t-micro .ot-gap{color:var(--warn,#804404)}
.ot-o.is-win .ot-best{border-color:var(--text,#183053);box-shadow:inset 0 0 0 1px var(--text,#183053)}
.ot-o.is-value.is-win .ot-best{box-shadow:inset 0 0 0 2px #fff}
.ot-val{width:132px;font-size:12px}
.ot-chip{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.4}
.c-actionable{background:var(--value-bg,#2E7D32);color:#fff}
.c-value{background:var(--good-bg-soft,#E8F5E9);color:#1B5E20}
.c-micro{background:var(--warn-bg,#FFE3B7);color:var(--warn,#804404)}
.c-lock{background:var(--lg-head,#F0F3F7);color:var(--text,#183053)}
.c-none{color:var(--muted,#47576E);font-weight:600;padding-left:0}
/* D1a (14 oct 2026): „Value expired” in gri estompat (contrast 5,4:1 pe alb), cu greutate mica */
.c-expired{color:var(--text-3,#5F6B7D);font-weight:400;padding-left:0;padding-right:0}
.c-won{background:var(--good-bg-soft,#E8F5E9);color:#1B5E20}
.c-lost{background:#FDECEA;color:var(--bad,#CA2F1E)}
.ot-bt{display:inline-block;margin-left:6px;font-size:10.5px;color:var(--muted,#47576E)}
.ot-dash{color:var(--text-3,#5F6B7D)}
.ot-empty{margin:12px 0}
/* Telefon: fiecare meci e un bloc — ora + case, echipele una sub alta, cele 3 casute, verdictul */
@media (max-width:640px){
  .ot,.ot tbody,.ot tr.ot-lg,.ot tr.ot-lg th{display:block;width:100%}
  .ot thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  /* (16 oct 2026) eticheta de valoare pe randul orei (dreapta), nu pe un rand al ei: ~35 px mai putin pe fiecare meci */
  .ot-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"time time val" "match match match" "o1 oX o2";gap:6px 8px;padding:10px 12px;border-top:1px solid var(--line-soft,#EAEAEA);background:var(--card,#fff)}
  .ot-row td{display:block;padding:0;border:0;width:auto;background:transparent}
  .ot-row:hover td{background:transparent}
  .ot-row td.ot-time{grid-area:time}
  .ot-row td.ot-match{grid-area:match}
  .ot-row td:nth-child(3){grid-area:o1}.ot-row td:nth-child(4){grid-area:oX}.ot-row td:nth-child(5){grid-area:o2}
  .ot-row td.ot-val{grid-area:val;justify-self:end;align-self:center;text-align:right;white-space:nowrap}
  .ot-row td.ot-time{align-self:center}
  .ot-mw{align-items:flex-start}
  .ot-o::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:10.5px;font-weight:700;color:var(--muted,#47576E)}
  .ot-best{min-height:34px;display:flex;align-items:center;justify-content:center}
  .ot-match a{flex-direction:column;align-items:flex-start;gap:4px}
  .ot-sep{display:none}
  .ot-team{max-width:100%}
  .crest{width:18px;height:18px}
}
/* v4: probabilitatea corecta pe fiecare rezultat; cel mai probabil ingrosat */
.ot-prob{display:block;font-size:15px;font-weight:600;color:var(--text,#183053);margin-bottom:3px}
.ot-probs .ot-o.is-fav .ot-prob{font-weight:800}
.ot-probs .ot-o.is-fav .ot-best{border-color:var(--text,#183053)}
.ot-probs .ot-best{font-size:12.5px;padding:3px 2px;font-weight:600}
@media (max-width:640px){.ot-probs .ot-fair{display:none}.ot-probs .ot-best{min-height:28px}.ot-probs .ot-prob{font-size:16px}}
/* (15 oct 2026) caseta listei zilei in tabla, doar pe telefon (partials/odds-table-cta, App\Support\DailyCta), si antetul
   campionatului repetat sub ea; pe ecranele late lipsesc cu totul, deci tabla ramane la fel. ta-nl = lista deja ceruta.
   (16 oct 2026) complementar exact cu (max-width:640px): intre 640 si 641 px (latimi fractionare) nu mai apar doua casete. */
@media not all and (max-width:640px){.ot tbody.ot-cta,.ot tr.ot-lg-cont{display:none}}
@media (max-width:640px){
  .ot tbody.ot-cta,.ot-cta tr,.ot-cta td{display:block;width:auto}
  .ot-cta td{padding:10px;border-top:1px solid var(--line-soft,#EAEAEA);background:var(--lg-head,#F0F3F7)}
  .ot-cta .dcta{margin:0;max-width:none}
}
html.ta-nl .ot tbody.ot-cta{display:none}

/* F6 (18 oct 2026): cota la casele alese, sub cea mai buna cota; verde doar pentru PRO, peste pretul corect */
.ot-mine{display:block;font-size:11px;color:var(--muted);line-height:1.3}
.ot-mine.is-mine-value{color:var(--good,#16A34A);font-weight:700}
