
:root{
  --oc-bg:#f6f7fb;
  --oc-card:#ffffff;
  --oc-border:#e6e8ef;
  --oc-text:#0f172a;
  --oc-muted:#64748b;
  --oc-accent:#c74100;
  --oc-shadow: 0 14px 40px rgba(2,6,23,.10);
  --oc-radius: 22px;
}

.oc-wrap{padding:18px 12px}
.oc-card{
  max-width:1100px;margin:0 auto;
  color:var(--oc-text);
  background:var(--oc-card);
  border:1px solid var(--oc-border);
  border-radius:var(--oc-radius);
  padding:18px;
  box-shadow:var(--oc-shadow);
}

.oc-kicker{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--oc-muted)}
.oc-muted{color:var(--oc-muted);margin-top:4px}

.oc-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.oc-head h3{margin:4px 0 0;font-size:26px;line-height:1.15}

.oc-timer{
  min-width:220px;
  border:1px solid var(--oc-border);
  border-radius:18px;
  padding:12px 14px;
  background:#fbfcff;
}
.oc-timer-label{font-size:12px;color:var(--oc-muted)}
.oc-timer-value{font-size:20px;font-weight:900;margin-top:4px;color:var(--oc-accent)}

.oc-tablewrap{margin-top:14px;border:1px solid var(--oc-border);border-radius:18px;overflow:hidden;background:#fff}
.oc-tablewrap-scroll{overflow:auto}
.oc-table{width:100%;border-collapse:collapse;min-width:620px}
.oc-table th,.oc-table td{padding:12px 12px;border-bottom:1px solid rgba(15,23,42,.06);text-align:left;vertical-align:middle}
.oc-table thead th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--oc-muted);background:#f7f8fc}
.oc-table tr:hover td{background:#fbfbfe}

.oc-mobile-standings-wrap{overflow:hidden}
.oc-table.oc-mobile-standings{min-width:0}
.oc-rank-badge[data-rank]{display:inline-flex;align-items:center;justify-content:center;min-width:24px}

.oc-playercell{display:flex;align-items:center;gap:10px}
.oc-avatar{
  border-radius:999px;
  border:1px solid rgba(15,23,42,.10);
  object-fit:contain;
  background:#fff;
  box-shadow: 0 10px 26px rgba(2,6,23,.12);
}
.oc-avatar-fallback{
  display:inline-flex;align-items:center;justify-content:center;
  background:#f1f5f9;
  color:#0f172a;font-weight:900;border-radius:999px;
  border:1px solid rgba(15,23,42,.10);
}

.oc-role{
  display:block;
  font-size:12px;
  color:var(--oc-muted);
  font-weight:700;
  margin-top:2px;
}

.oc-pill{
  display:inline-flex;align-items:center;
  padding:7px 10px;border-radius:999px;
  background:rgba(199,65,0,.08);
  border:1px solid rgba(199,65,0,.18);
  color:#8a2d00;
  font-weight:800;
}

.oc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.oc-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:11px 14px;border-radius:16px;border:1px solid rgba(15,23,42,.10);
  background:var(--oc-accent);
  color:#fff;font-weight:900;cursor:pointer;
}
.oc-btn:hover{filter:brightness(1.03)}
.oc-btn-ghost{background:#fff;color:var(--oc-text)}

.oc-table select, .oc-form input{
  background:#fff;
  color:var(--oc-text);
  border:1px solid rgba(15,23,42,.14);
  border-radius:14px;
  padding:10px 12px;
}
.oc-form label{display:block;margin:10px 0 6px;font-weight:800;color:var(--oc-text)}
.oc-form{display:flex;flex-direction:column;gap:10px}

.oc-alert{border-radius:16px;padding:10px 12px;margin:10px 0;border:1px solid}
.oc-alert-ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.oc-alert-warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}

.oc-grid{display:grid;gap:14px;margin-top:14px}
.oc-grid-2{grid-template-columns:repeat(2,1fr)}
.oc-grid-3{grid-template-columns:repeat(3,1fr)}
.oc-grid-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.oc-grid-3,.oc-grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.oc-grid-2,.oc-grid-3,.oc-grid-4{grid-template-columns:1fr}}

.oc-playercard{
  border:1px solid var(--oc-border);
  border-radius:20px;
  padding:14px;
  background:#fbfcff;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.oc-playername{font-weight:900}

.oc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
@media (max-width:860px){.oc-grid2{grid-template-columns:1fr}}
.oc-box{border:1px solid var(--oc-border);border-radius:20px;padding:14px;background:#fbfcff}
.oc-box h4{margin:0 0 8px;font-size:16px}

.oc-match-sides{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:14px;
}
@media (max-width:980px){.oc-match-sides{grid-template-columns:1fr}}

.oc-pitch-card{
  border:1px solid var(--oc-border);
  border-radius:22px;
  overflow:hidden;
  background:#0b1120;
  color:#fff;
}
.oc-pitch-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;
  background:rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.10);
}
.oc-pitch-title{font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:12px;color:rgba(255,255,255,.85)}

.oc-pitch{
  padding:14px;
  background:
    radial-gradient(circle at 25% 10%, rgba(199,65,0,.16), transparent 38%),
    radial-gradient(circle at 75% 90%, rgba(199,65,0,.14), transparent 42%),
    linear-gradient(180deg, rgba(11,17,32,1), rgba(8,12,24,1));
}
.oc-line{margin-bottom:12px}
.oc-line:last-child{margin-bottom:0}
.oc-line-label{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.70);
  margin-bottom:8px;
}
.oc-line-players{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px;
}
@media (max-width:520px){.oc-line-players{grid-template-columns:repeat(2, minmax(0,1fr));}}

.oc-pitch-player{
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  padding:10px;
  background:rgba(255,255,255,.06);
  text-align:center;
}
.oc-pitch-player .oc-avatar{border-color:rgba(255,255,255,.18)}
.oc-pitch-name{font-weight:900;margin-top:8px;font-size:13px;line-height:1.15}
.oc-pitch-meta{
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
  margin-top:6px;
  font-size:12px;color:rgba(255,255,255,.82);font-weight:800
}
.oc-pitch-goals,.oc-pitch-rating{
  padding:4px 8px;border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}

.oc-playerlink{color:inherit;text-decoration:none}
.oc-playerlink:hover{opacity:.92}
.oc-playerlink:focus{outline:none}

.oc-player-profile .oc-profile-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.oc-profile-avatar .oc-avatar, .oc-profile-avatar .oc-avatar-fallback{width:96px;height:96px}
.oc-profile-main h3{margin:4px 0 0;font-size:34px}
.oc-formline{display:flex;gap:10px;align-items:center;margin-top:10px}
.oc-formdots{display:flex;gap:6px;flex-wrap:wrap}
.oc-form-dot{
  width:28px;height:28px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  font-weight:900;font-size:12px;
  border:1px solid rgba(15,23,42,.14);
  background:#fff;
}
.oc-form-dot.is-win{border-color:rgba(16,185,129,.35);background:rgba(16,185,129,.10);color:#065f46}
.oc-form-dot.is-loss{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.10);color:#7f1d1d}
.oc-form-dot.is-draw{border-color:rgba(59,130,246,.30);background:rgba(59,130,246,.10);color:#1e3a8a}

.oc-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:18px}
@media (max-width:860px){.oc-metrics{grid-template-columns:repeat(2,1fr)}}
.oc-metric{border:1px solid var(--oc-border);border-radius:20px;padding:14px;background:#fbfcff}
.oc-metric-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--oc-muted)}
.oc-metric-value{font-size:24px;font-weight:900;margin-top:6px;color:var(--oc-text)}
.oc-metric-sub{font-size:12px;color:var(--oc-muted);margin-top:2px}
.oc-profile-actions{margin-top:16px}


/* --- Last match field layout --- */
.oc-vote-status{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.oc-vs-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.oc-vs-item{font-size:14px;color:var(--oc-muted)}
.oc-vote-status-centered .oc-vs-row{justify-content:center}
.oc-vote-status-centered .oc-vs-item{text-align:center}
.oc-pill.is-closed{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.20);color:#065f46}

.oc-field{
  background:
  radial-gradient(circle at 25% 10%, rgba(255,255,255,.18), transparent 42%),
  radial-gradient(circle at 75% 90%, rgba(0,0,0,.18), transparent 46%),
  linear-gradient(180deg, #0a7a3a 0%, #075f2e 55%, #054424 100%);
  margin-top:12px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.12);
  padding:14px;
  position:relative;
  overflow:hidden;
}
.oc-field:before{
  content:"";
  position:absolute;inset:10px;
  border-radius:20px;
  border:2px solid rgba(255,255,255,.08);
  pointer-events:none;
}
.oc-field-line{position:relative;padding:10px 6px}
.oc-field-line:after{
  content:"";
  position:absolute;left:10px;right:10px;bottom:0;
  height:1px;background:rgba(255,255,255,.10);
}
.oc-field-line.is-att:after{display:none}

.oc-field-row{
  display:flex;
  justify-content:space-evenly;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.oc-field-player{width:110px;text-align:center}
@media(max-width:520px){.oc-field-player{width:96px}}

.oc-field-avatar{position:relative;display:inline-block}
.oc-goalbadge{
  position:absolute;right:-6px;top:-6px;
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(199,65,0,.92);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-weight:900;
  font-size:12px;
}
.oc-goalbadge img{width:14px;height:14px;display:block;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.oc-goalbadge span{line-height:1}
.oc-goalbadge.is-og{right:auto;left:-6px;top:-6px;background:rgba(239,68,68,.88)}

.oc-field-name{margin-top:8px;font-weight:900;font-size:12px;color:rgba(255,255,255,.92);line-height:1.15}
.oc-field-rating{margin-top:4px;font-size:12px;font-weight:900;color:rgba(255,255,255,.80)}

.oc-th-sortable{cursor:pointer;user-select:none}
.oc-th-sortable:after{
  content:"↕";
  font-size:12px;
  margin-left:8px;
  opacity:.35;
}
.oc-th-sortable[data-oc-sort-dir="asc"]:after{content:"↑";opacity:.9}
.oc-th-sortable[data-oc-sort-dir="desc"]:after{content:"↓";opacity:.9}

/* Avatar: keep original shape (no circle crop) */
.oc-avatar,
.oc-avatar img,
.oc-profile-avatar .oc-avatar,
.oc-profile-avatar .oc-avatar img{
  border-radius: 12px !important;
}
.oc-avatar{
  overflow: visible !important;
  background: transparent !important;
  border: none !important;
}
.oc-avatar img{
  object-fit: contain !important;
}
.oc-avatar-fallback{
  border-radius: 12px !important;
}

/* Line tags (DIF / MID / ATT) */
.oc-field-line{padding-top:22px}
.oc-line-tag{
  position:absolute;
  left:14px;
  top:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:11px;
  letter-spacing:.12em;
  color:#fff;
}
.oc-tag-dif{background:#16a34a;}
.oc-tag-mid{background:#2563eb;}
.oc-tag-att{background:#ef4444;}

/* Avatar (no circle crop) */
.oc-avatarwrap{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:rgba(255,255,255,.12);
  overflow:hidden;
}
.oc-avatar-img{
  display:block;
  border-radius:14px !important;
  object-fit:contain !important;
  width:100% !important;
  height:100% !important;
}
.oc-avatar-fallback{
  background:#0b1120;
  border:1px solid rgba(255,255,255,.14);
}
.oc-avatar-initials{
  font-weight:900;
  font-size:12px;
  color:#fff;
}

/* Role pills (tables + lists) */
.oc-rolepill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:11px;
  letter-spacing:.12em;
  color:#fff;
  margin-left:8px;
  vertical-align:middle;
}
.oc-tag-gk{background:#64748b;}



/* --- Enhancements v1.7.2 --- */
.oc-pill.is-pending{background:#f1f5f9;color:#0f172a;border-color:#e2e8f0}
.oc-rank1 td:first-child,.oc-rank2 td:first-child,.oc-rank3 td:first-child{font-weight:800}
.oc-rank1{background:rgba(255,215,0,.12)}
.oc-rank2{background:rgba(192,192,192,.14)}
.oc-rank3{background:rgba(205,127,50,.14)}
.oc-table tr.oc-rank1 td,.oc-table tr.oc-rank2 td,.oc-table tr.oc-rank3 td{border-bottom-color:#e5e7eb}

/* Hover animations for last match pitch players */
.oc-field-player{transition:transform .18s ease, box-shadow .18s ease}
.oc-field-player:hover{transform:translateY(-3px)}
.oc-field-player:hover .oc-field-avatar{transform:translateY(-1px) scale(1.03)}
.oc-field-avatar{transition:transform .18s ease}
.oc-playerlink{transition:opacity .18s ease}
.oc-field-player:hover .oc-playerlink{opacity:.98}

/* Games list */
.oc-game-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid #e7e9ee;border-radius:16px;background:#fff;margin-bottom:10px}
.oc-game-card.is-hidden{display:none}
.oc-game-title{font-weight:800}
.oc-game-meta{font-size:12px;color:#64748b}
.oc-score{font-weight:900;font-size:18px;letter-spacing:.5px}
.oc-games-more{display:flex;justify-content:center;margin-top:12px}

/* TOP 7 */
.oc-top-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width: 860px){.oc-top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.oc-top-card{border:1px solid #e7e9ee;border-radius:18px;padding:12px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.06);position:relative;overflow:hidden}
.oc-top-card.is-top3{border-color:#cbd5e1;box-shadow:0 16px 40px rgba(15,23,42,.10)}
.oc-top-rank{position:absolute;top:10px;right:12px;font-weight:900;color:#0f172a;opacity:.65}
.oc-top-avatar{margin-top:10px;margin-bottom:6px}
.oc-top-name{font-weight:900}
.oc-top-sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}
.oc-top-rating{font-weight:800}

/* Vote modern */
.oc-vote-modern .oc-vote-top{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.oc-vote-deadline{border:1px solid #e7e9ee;border-radius:16px;padding:10px 12px;background:#fff;min-width:240px}
.oc-deadline-time{font-weight:900}
.oc-vote-grid-modern{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width: 720px){.oc-vote-grid-modern{grid-template-columns:1fr 1fr}}
.oc-vote-playercard{display:flex;gap:12px;align-items:center;border:1px solid #e7e9ee;border-radius:18px;padding:10px 12px;background:#fff;box-shadow:0 10px 26px rgba(15,23,42,.06)}
.oc-vote-mid{flex:1;min-width:0}
.oc-vote-name{font-weight:900;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.oc-vote-sub{display:flex;gap:8px;align-items:center;margin-top:2px;color:#475569;font-size:12px}
.oc-vote-right select{min-width:92px;border-radius:14px;border:1px solid #e7e9ee;padding:10px 10px;background:#fff;font-weight:800}
.oc-mini-badge{display:inline-flex;gap:6px;align-items:center;border:1px solid #e7e9ee;background:#f8fafc;border-radius:999px;padding:2px 8px;font-weight:800}
.oc-mini-badge img{width:14px;height:14px}
.oc-mini-badge.is-og{background:#fff1f2;border-color:#fecdd3;color:#9f1239}

/* --- v1.8.1 additions --- */
.oc-rank-badge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;font-weight:900}

/* MVP badge on pitch */
.oc-field-player.is-mvp{transform:translateY(-2px)}
.oc-mvp-badge{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);background:#0f172a;color:#fff;font-weight:900;font-size:9px;letter-spacing:.08em;padding:3px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 22px rgba(15,23,42,.22);z-index:3}
.oc-mvp-pill{background:rgba(15,23,42,.08);border-color:rgba(15,23,42,.18);color:#0f172a;font-weight:900}

/* Mini form dot (V/P/N) */
.oc-form-mini{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;font-weight:900;font-size:12px;margin-left:10px;border:1px solid #e7e9ee;background:#f8fafc;color:#0f172a;box-shadow:0 4px 12px rgba(15,23,42,.06)}
.oc-form-mini.is-win{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.35);color:#166534}
.oc-form-mini.is-loss{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.35);color:#991b1b}
.oc-form-mini.is-draw{background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.38);color:#92400e}

.oc-form-mini-group{display:inline-flex;align-items:center;margin-left:10px;gap:6px}
.oc-form-mini-group .oc-form-mini{margin-left:0;width:20px;height:20px;font-size:11px}
.oc-playercell-form .oc-playerlink{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
  width:100%;
}
.oc-playercell-stack{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:84px;
}
.oc-playermeta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  min-width:0;
}
.oc-playercell-form .oc-playername{
  display:block;
  line-height:1.08;
}
.oc-playercell-form .oc-form-mini-group{
  margin-left:0;
  gap:4px;
  flex-wrap:nowrap;
  justify-content:center;
}
.oc-playercell-form .oc-form-mini-group .oc-form-mini{
  width:17px;
  height:17px;
  font-size:9px;
}

/* Stats filters */
.oc-filterbar{display:flex;align-items:center;justify-content:flex-end;margin:10px 0 4px}
.oc-switch{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.oc-switch input{position:absolute;opacity:0;pointer-events:none}
.oc-switch-ui{width:44px;height:24px;border-radius:999px;border:1px solid #e7e9ee;background:#f8fafc;position:relative;box-shadow:0 6px 18px rgba(15,23,42,.06);transition:all .18s ease}
.oc-switch-ui:after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:999px;background:#0f172a;opacity:.25;transition:all .18s ease}
.oc-switch input:checked + .oc-switch-ui{background:rgba(34,197,94,.16);border-color:rgba(34,197,94,.35)}
.oc-switch input:checked + .oc-switch-ui:after{left:23px;opacity:.9}
.oc-switch-label{font-size:14px;color:#0f172a}

/* Simple modal */
.oc-modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:18px;z-index:99999}
.oc-modal-card{background:#fff;border:1px solid #e7e9ee;border-radius:18px;box-shadow:0 30px 70px rgba(15,23,42,.35);max-width:420px;width:100%;padding:16px}
.oc-modal-title{font-weight:900;font-size:18px;color:#0f172a;margin-bottom:6px}
.oc-modal-text{color:#475569;font-size:14px;line-height:1.4}
.oc-modal-actions{display:flex;justify-content:flex-end;margin-top:14px}

/* Result line (score + OG) */
.oc-result-line{margin-top:6px}


/* Big scoreboard */
.oc-scorewrap{margin-top:10px;padding:14px 14px;border-radius:18px;text-align:center;display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg, rgba(37,99,235,.16), rgba(15,23,42,.04));border:1px solid rgba(37,99,235,.18)}
.oc-score-kicker{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.75;margin-bottom:10px}
.oc-scoreboard{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap}
.oc-score-num{font-size:44px;font-weight:1000;line-height:1;padding:7px 14px;border-radius:16px;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;box-shadow:0 14px 36px rgba(37,99,235,.22)}
.oc-score-team{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.65}
.oc-score-sep{font-size:26px;font-weight:900;opacity:.45}
.oc-score-sub{margin-top:8px;font-size:13px;color:rgba(15,23,42,.72)}
.oc-scoreboard-detailed{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:18px;
  width:100%;
}
.oc-score-side{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  min-width:0;
}
.oc-score-avg{
  font-size:12px;
  line-height:1.3;
  color:var(--oc-muted);
  font-weight:900;
}
@media(max-width:520px){.oc-score-num{font-size:36px;padding:6px 12px}}




/* Synergy cards (player profile) */
.oc-synergy{margin-top:16px}
.oc-synergy-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}
@media(max-width:860px){.oc-synergy-grid{grid-template-columns:1fr}}
.oc-synergy-card{padding:16px}
.oc-synergy-title{font-weight:1000;font-size:16px;margin:0}
.oc-synergy-sub{margin-top:4px;font-size:13px;color:rgba(15,23,42,.65)}
.oc-synergy-list{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.oc-synergy-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;background:rgba(15,23,42,.03);border:1px solid rgba(15,23,42,.06);transition:transform .15s ease, box-shadow .15s ease}
.oc-synergy-item:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,23,42,.10)}
.oc-synergy-mid{flex:1;min-width:0}
.oc-synergy-name{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-synergy-mini{margin-top:2px;font-size:12px;color:rgba(15,23,42,.60)}
.oc-synergy-pct{font-weight:1000;font-size:18px;padding:8px 10px;border-radius:14px;background:rgba(34,197,94,.14);border:1px solid rgba(34,197,94,.25);color:#166534}
.oc-synergy-card.is-worst .oc-synergy-pct{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.18);color:#7f1d1d}



@keyframes ocFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.oc-anim-up{animation:ocFadeUp .35s ease both}
@media(prefers-reduced-motion:reduce){.oc-anim-up{animation:none}}

/* --- CALCETTI app refresh --- */
:root{
  --oc-bg:#f3f4f6;
  --oc-card:#ffffff;
  --oc-border:rgba(15,23,42,.08);
  --oc-text:#101828;
  --oc-muted:#667085;
  --oc-accent:#ea580c;
  --oc-accent-strong:#c2410c;
  --oc-accent-soft:rgba(234,88,12,.12);
  --oc-secondary:#1d4ed8;
  --oc-secondary-soft:rgba(29,78,216,.10);
  --oc-shadow:0 12px 32px rgba(15,23,42,.08);
  --oc-radius:24px;
}

.oc-wrap{
  position:relative;
  max-width:980px;
  margin:0 auto;
  padding:12px 12px 24px;
  font-family:"Avenir Next","SF Pro Display","Segoe UI Variable","Helvetica Neue",sans-serif;
}
.oc-wrap::before{display:none}
.oc-card{
  position:relative;
  overflow:hidden;
  background:var(--oc-card);
  border:1px solid var(--oc-border);
  border-radius:var(--oc-radius);
  box-shadow:var(--oc-shadow);
}
.oc-card::after{display:none}
.oc-card > *{position:relative;z-index:1}
.oc-card .oc-card{
  background:#f8fafc;
  box-shadow:none;
  border-color:rgba(15,23,42,.06);
}

.oc-kicker{color:var(--oc-secondary);font-weight:900;letter-spacing:.16em}
.oc-muted{color:var(--oc-muted)}
.oc-head h3,.oc-profile-main h3,.oc-card h3{font-weight:1000;letter-spacing:-.03em}

.oc-head,.oc-subhead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.oc-subhead{margin:18px 0 10px}
.oc-card > .oc-head{
  margin-bottom:4px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(15,23,42,.08);
}
.oc-card > .oc-subhead{
  padding-top:18px;
  border-top:1px solid rgba(15,23,42,.08);
}
.oc-card > .oc-tablewrap,
.oc-card > .oc-match-sides,
.oc-card > .oc-games,
.oc-card > .oc-top-grid,
.oc-card > .oc-performance-card,
.oc-card > .oc-synergy-grid{margin-top:12px}
.oc-player-profile,
.oc-vote-modern{max-width:760px;margin:0 auto}
.oc-sorteggio-card{max-width:920px;margin:0 auto}

.oc-btn{
  border:0;
  border-radius:18px;
  padding:12px 16px;
  box-shadow:0 14px 30px rgba(234,88,12,.22);
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.oc-btn:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(234,88,12,.26)}
.oc-btn-ghost{
  background:rgba(255,255,255,.9);
  color:var(--oc-text);
  border:1px solid rgba(15,23,42,.10);
  box-shadow:none;
}
.oc-btn-ghost:hover{box-shadow:0 10px 24px rgba(15,23,42,.10)}

.oc-tablewrap{
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(12px);
}
.oc-table thead th{
  background:rgba(248,250,252,.92);
  color:#6b7280;
}
.oc-table tr:hover td{background:rgba(255,255,255,.92)}

.oc-playercard,
.oc-box,
.oc-metric,
.oc-game-card,
.oc-sorteggio-team,
.oc-sorteggio-draft,
.oc-vote-playercard{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(14px);
}

.oc-filterbar{
  position:sticky;
  top:8px;
  z-index:6;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  overflow-x:auto;
  margin:0 0 8px;
  padding:10px 0 12px;
  background:linear-gradient(180deg, rgba(255,255,255,1), rgba(255,255,255,.94) 68%, rgba(255,255,255,0));
}
.oc-switch{
  flex:0 0 auto;
  padding:10px 12px;
  border-radius:18px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
}
.oc-switch-label{white-space:nowrap}

.oc-screen-auth{padding-top:24px;padding-bottom:36px}
.oc-auth-shell{max-width:720px;margin:0 auto}
.oc-auth-card{padding:20px}
.oc-auth-hero{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}
.oc-auth-badge{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 14px;border-radius:999px;
  background:#eef2ff;
  color:#4338ca;
  font-weight:900;
}
.oc-auth-form{margin-top:14px}
.oc-auth-actions{justify-content:flex-end}
.oc-auth-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}
.oc-auth-section{
  padding:16px;
  border-radius:22px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
}
.oc-auth-section-head{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:8px;
}
.oc-auth-section-head strong{
  font-size:17px;
  line-height:1.1;
  color:var(--oc-text);
}
.oc-auth-section-head span{
  font-size:13px;
  color:var(--oc-muted);
  font-weight:800;
}
.oc-auth-section-reset{margin-top:16px}
.oc-auth-note{
  margin-top:14px;
  padding:12px 14px;
  border-radius:18px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  color:var(--oc-muted);
  font-size:14px;
}

.oc-vote-modern .oc-vote-top{gap:22px}
.oc-title{font-size:30px;line-height:1.04;font-weight:1000;letter-spacing:-.03em;color:var(--oc-text);margin-top:4px}
.oc-vote-form-modern{display:block}
.oc-vote-deadline{
  background:#f8fafc;
  border-color:rgba(15,23,42,.08);
  box-shadow:none;
}
.oc-vote-grid-modern{margin-top:8px}
.oc-vote-team-sections{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:8px;
}
.oc-vote-team-block{
  padding:14px;
  border-radius:22px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
}
.oc-vote-team-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.oc-vote-team-head strong{
  display:block;
  font-size:17px;
  line-height:1.1;
  color:var(--oc-text);
}
.oc-vote-team-head span{
  font-size:13px;
  color:var(--oc-muted);
  font-weight:800;
}
.oc-vote-team-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border-radius:999px;
  background:#fff7ed;
  border:1px solid rgba(234,88,12,.18);
  color:var(--oc-accent-strong);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:1000;
}
.oc-vote-team-grid{
  display:flex;
  flex-wrap:wrap;
  gap:2%;
}
.oc-vote-team-grid .oc-vote-playercard{
  flex:0 0 49%;
  max-width:49%;
  margin-bottom:10px;
}
.oc-vote-playercard{
  border-color:rgba(15,23,42,.08);
  box-shadow:0 12px 28px rgba(15,23,42,.06);
}
.oc-vote-playercard:has(select:focus){
  border-color:rgba(234,88,12,.34);
  box-shadow:0 0 0 4px rgba(234,88,12,.10), 0 12px 28px rgba(15,23,42,.06);
}
.oc-vote-right select{
  min-width:96px;
  background:rgba(255,255,255,.96);
  border-color:rgba(15,23,42,.12);
}
.oc-vote-actions{
  position:sticky;
  bottom:10px;
  z-index:5;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
  padding-top:18px;
  background:linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.88) 36%, rgba(255,255,255,1));
}
.oc-btn-login{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.oc-btn-login-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
}
.oc-btn-login-icon img{
  width:18px;
  height:18px;
  object-fit:contain;
}

.oc-vote-progress-panel{
  margin-top:16px;
  padding:16px;
  border-radius:22px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
}
.oc-vote-progress-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.oc-vote-progress-title{font-weight:1000;font-size:16px;color:var(--oc-text)}
.oc-vote-progress-sub{font-size:13px;color:var(--oc-muted);margin-top:4px}
.oc-vote-progress-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:60px;padding:8px 12px;border-radius:16px;
  background:#fff;color:var(--oc-text);font-weight:1000;
  border:1px solid rgba(15,23,42,.08);
}
.oc-vote-progress-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  margin-top:14px;
}
.oc-vote-progress-chip{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  font-weight:800;color:var(--oc-text);
}
.oc-vote-progress-empty{
  margin-top:14px;
  padding:12px 14px;
  border-radius:18px;
  background:#fff;
  border:1px dashed rgba(15,23,42,.14);
  color:var(--oc-text);
  font-weight:800;
}

.oc-performance-card{
  margin-top:18px;
  padding:16px;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.08);
  background:#f8fafc;
}
.oc-performance-legend{display:flex;gap:10px;flex-wrap:wrap}
.oc-performance-legend-item{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;
  background:#fff;border:1px solid rgba(15,23,42,.08);
  font-size:12px;font-weight:900;color:var(--oc-text);
}
.oc-performance-legend-item::before{
  content:"";
  width:10px;height:10px;border-radius:999px;display:block;
}
.oc-performance-legend-item.is-rating::before{background:linear-gradient(135deg,#f97316,#fb7185)}
.oc-performance-legend-item.is-goals::before{background:linear-gradient(135deg,#22c55e,#14b8a6)}
.oc-performance-empty{
  margin-top:12px;
  padding:16px;
  border-radius:18px;
  background:#fff;
  border:1px dashed rgba(15,23,42,.14);
  color:var(--oc-muted);
}
.oc-performance-scroll{
  overflow-x:auto;
  margin-top:14px;
  padding-bottom:6px;
}
.oc-performance-shell{
  position:relative;
  margin-top:14px;
  display:flex;
  align-items:center;
  gap:8px;
}
.oc-performance-shell .oc-performance-scroll{
  flex:1 1 auto;
  margin-top:0;
}
.oc-performance-arrow{
  display:none;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  color:var(--oc-text);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  font-size:24px;
  line-height:1;
  font-weight:900;
}
.oc-performance-chart{display:block;min-width:560px;width:100%;height:auto}
.oc-performance-grid{stroke:rgba(15,23,42,.10);stroke-width:1}
.oc-performance-axis{fill:rgba(15,23,42,.50);font-size:11px;font-weight:800}
.oc-performance-bar{fill:url(#ocGoalsGradient)}
.oc-performance-line{
  fill:none;
  stroke:url(#ocRatingGradient);
  stroke-width:4.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.oc-performance-point{
  fill:#fff;
  stroke:#f97316;
  stroke-width:3;
}
.oc-performance-label{fill:rgba(15,23,42,.56);font-size:11px;font-weight:900}
.oc-performance-goal-label{fill:#0f766e;font-size:11px;font-weight:1000}
.oc-performance-foot{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  margin-top:12px;
}
.oc-performance-footcard{
  display:flex;flex-direction:column;gap:4px;
  padding:12px 14px;border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}
.oc-performance-footcard span{font-size:12px;color:var(--oc-secondary);font-weight:900}
.oc-performance-footcard strong{font-size:14px;color:var(--oc-text)}
.oc-performance-footcard small{font-size:12px;color:var(--oc-muted);font-weight:800}

.oc-team-rating-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}
.oc-team-rating-chip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-width:220px;
  padding:12px 14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(37,99,235,.18);
  box-shadow:0 10px 26px rgba(37,99,235,.08);
}
.oc-team-rating-chip span{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#64748b;
  font-weight:900;
}
.oc-team-rating-chip strong{
  font-size:26px;
  line-height:1;
  color:#0f172a;
}

.oc-voter-insights{margin:18px 0 0}
.oc-voter-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.oc-voter-card{
  padding:16px;
  border-radius:22px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 12px 28px rgba(15,23,42,.06);
}
.oc-voter-card-label{
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#64748b;
}
.oc-voter-card-value{
  margin-top:10px;
  font-size:30px;
  line-height:1;
  font-weight:1000;
  letter-spacing:-.03em;
  color:#0f172a;
}
.oc-voter-card-value.is-text{
  font-size:22px;
  line-height:1.1;
}
.oc-voter-card-sub{
  margin-top:8px;
  font-size:13px;
  line-height:1.45;
  color:var(--oc-muted);
  font-weight:700;
}
.oc-voter-card-trend.is-high{
  border-color:rgba(245,158,11,.26);
  background:linear-gradient(180deg, rgba(255,251,235,.96), rgba(255,255,255,.96));
}
.oc-voter-card-trend.is-low{
  border-color:rgba(37,99,235,.20);
  background:linear-gradient(180deg, rgba(239,246,255,.96), rgba(255,255,255,.96));
}
.oc-voter-card-trend.is-neutral{
  border-color:rgba(15,23,42,.10);
}
.oc-voter-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.oc-voter-list-card{
  margin:0;
  padding:16px;
}
.oc-voter-delta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:62px;
  padding:8px 10px;
  border-radius:14px;
  font-size:13px;
  font-weight:1000;
  letter-spacing:.02em;
}
.oc-voter-delta.is-positive{
  color:#9a3412;
  background:rgba(251,146,60,.16);
}
.oc-voter-delta.is-negative{
  color:#1d4ed8;
  background:rgba(59,130,246,.12);
}

.oc-filterbar-rich{
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  overflow:visible;
}
.oc-filter-search{
  flex:1 1 260px;
  min-width:220px;
}
.oc-filter-search input,
.oc-filter-select select{
  width:100%;
  min-height:46px;
  border-radius:16px;
  border:1px solid #e7e9ee;
  background:#fff;
  color:#0f172a;
  font-weight:800;
  padding:0 14px;
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.oc-filter-search input::placeholder{color:#94a3b8}
.oc-filter-select{
  flex:0 0 220px;
}
.oc-filter-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-left:auto;
}

.oc-pagination{
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.oc-page-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid #e7e9ee;
  background:#fff;
  color:#0f172a;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
}
.oc-page-link.is-active{
  background:var(--oc-accent);
  border-color:rgba(199,65,0,.30);
  color:#fff;
}
.oc-game-card.is-active{
  border-color:rgba(199,65,0,.28);
  box-shadow:0 14px 32px rgba(199,65,0,.12);
}

.oc-rating-cell{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:900;
}
.oc-rating-trend{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  font-size:13px;
  line-height:1;
  font-weight:1000;
}
.oc-rating-trend.is-up{
  color:#166534;
  background:rgba(34,197,94,.14);
}
.oc-rating-trend.is-down{
  color:#991b1b;
  background:rgba(239,68,68,.14);
}

.oc-lastmatch-head{
  justify-content:center;
  text-align:center;
}
.oc-lastmatch-main{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.oc-lastmatch-titleblock{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.oc-lastmatch-titleblock h3{
  margin-top:8px;
}
.oc-lastmatch-card .oc-scorewrap{
  width:min(100%, 760px);
}
.oc-lastmatch-actions{
  justify-content:center;
  margin-top:18px;
}
.oc-lastmatch-card .oc-vote-progress-panel{
  width:min(100%, 760px);
  text-align:left;
}

.oc-stats-root{
  transition:opacity .18s ease;
}
.oc-stats-root.is-loading{
  opacity:.58;
  pointer-events:none;
}

.oc-stats-tools{
  grid-template-columns:1fr;
  align-items:start;
}
.oc-accordion{
  margin-top:18px;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  overflow:hidden;
}
.oc-accordion summary{
  list-style:none;
  cursor:pointer;
  position:relative;
  padding:16px 52px 16px 18px;
}
.oc-accordion summary::-webkit-details-marker{display:none}
.oc-accordion summary::after{
  content:"+";
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff7ed;
  border:1px solid rgba(234,88,12,.18);
  color:var(--oc-accent-strong);
  font-size:18px;
  font-weight:1000;
}
.oc-accordion[open] summary::after{content:"−"}
.oc-accordion-kicker{
  display:block;
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--oc-muted);
  font-weight:900;
}
.oc-accordion summary strong{
  display:block;
  margin-top:6px;
  font-size:21px;
  line-height:1.08;
  color:var(--oc-text);
}
.oc-accordion summary small{
  display:block;
  margin-top:6px;
  color:var(--oc-muted);
  font-size:13px;
  line-height:1.45;
  font-weight:800;
}
.oc-accordion-body{
  padding:0 18px 18px;
}
.oc-accordion-body .oc-card:first-child,
.oc-accordion-body .oc-compare-panel:first-child{
  margin-top:0;
}
.oc-compare-panel{padding:16px}
.oc-compare-form{margin-top:6px}
.oc-compare-selects{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr)) auto;
  gap:10px;
  align-items:end;
}
.oc-compare-selects .oc-filter-select{
  flex:1 1 auto;
  width:100%;
}
.oc-compare-selects .oc-btn{
  min-height:46px;
  white-space:nowrap;
}
.oc-compare-result{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:14px;
}
.oc-compare-players{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr) minmax(150px,180px);
  gap:10px;
  align-items:center;
}
.oc-compare-players.is-versus{
  grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);
}
.oc-compare-player{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:12px 14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}
.oc-compare-player-name{
  font-weight:1000;
  color:var(--oc-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.oc-compare-vs{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:999px;
  background:#fff7ed;
  border:1px solid rgba(234,88,12,.18);
  color:var(--oc-accent-strong);
  font-size:14px;
  font-weight:1000;
}
.oc-compare-vs.is-versus{
  width:56px;
  height:56px;
  background:#eff6ff;
  border-color:rgba(29,78,216,.18);
  color:#1d4ed8;
}
.oc-compat-badge{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
}
.oc-compat-badge span{
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--oc-muted);
  font-weight:900;
}
.oc-compat-badge strong{
  font-size:24px;
  line-height:1.05;
  color:var(--oc-text);
  font-weight:1000;
}
.oc-compat-badge small{
  font-size:12px;
  color:var(--oc-muted);
  font-weight:900;
}
.oc-compat-badge.is-high{
  background:linear-gradient(180deg, rgba(240,253,244,.96), rgba(255,255,255,.96));
  border-color:rgba(34,197,94,.24);
}
.oc-compat-badge.is-mid{
  background:linear-gradient(180deg, rgba(255,247,237,.96), rgba(255,255,255,.96));
  border-color:rgba(249,115,22,.20);
}
.oc-compat-badge.is-low{
  background:linear-gradient(180deg, rgba(254,242,242,.96), rgba(255,255,255,.96));
  border-color:rgba(239,68,68,.20);
}
.oc-compare-metric-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.oc-compare-metric{
  padding:14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}
.oc-compare-metric span{
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--oc-muted);
  font-weight:900;
}
.oc-compare-metric strong{
  display:block;
  margin-top:6px;
  font-size:26px;
  line-height:1.05;
  color:var(--oc-text);
  font-weight:1000;
}
.oc-compare-metric small{
  display:block;
  margin-top:4px;
  color:var(--oc-muted);
  font-size:12px;
  font-weight:800;
}
.oc-compare-note{
  padding:12px 14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  color:var(--oc-muted);
  font-size:13px;
  line-height:1.45;
  font-weight:800;
}
.oc-compare-scoreboard{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.oc-compare-scorepill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:10px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  color:var(--oc-text);
  font-weight:900;
}
.oc-compare-scorepill strong{
  font-size:18px;
}
.oc-compare-scorepill.is-draw{
  background:#f8fafc;
  color:#475569;
}
.oc-compare-table th:nth-child(2),
.oc-compare-table th:nth-child(3),
.oc-compare-table td:nth-child(2),
.oc-compare-table td:nth-child(3){
  text-align:center;
}

.oc-focus-card{
  margin-top:18px;
  padding:16px;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.08);
  background:#f8fafc;
}
.oc-focus-headline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}
.oc-focus-headline strong{
  font-size:18px;
  color:var(--oc-text);
}
.oc-focus-mini-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  min-width:min(100%,260px);
}
.oc-focus-mini-card{
  padding:12px 14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}
.oc-focus-mini-card span{
  display:block;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--oc-muted);
  font-weight:900;
}
.oc-focus-mini-card strong{
  display:block;
  margin-top:6px;
  font-size:24px;
  line-height:1.05;
  font-weight:1000;
}
.oc-vote-spread-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.oc-vote-spread-row{
  display:grid;
  grid-template-columns:42px 1fr 28px;
  gap:10px;
  align-items:center;
}
.oc-vote-spread-label{
  font-weight:900;
  color:var(--oc-text);
}
.oc-vote-spread-track{
  position:relative;
  height:14px;
  border-radius:999px;
  background:rgba(15,23,42,.08);
  overflow:hidden;
}
.oc-vote-spread-fill{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  border-radius:999px;
  background:linear-gradient(90deg, #f97316, #fb7185);
}
.oc-vote-spread-count{
  text-align:right;
  font-weight:1000;
  color:var(--oc-text);
}
.oc-focus-nextpill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border-radius:999px;
  background:#fff7ed;
  border:1px solid rgba(234,88,12,.18);
  color:var(--oc-accent-strong);
  font-size:12px;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.oc-focus-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.oc-focus-insight{
  padding:14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}
.oc-focus-insight span{
  display:block;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--oc-muted);
  font-weight:900;
}
.oc-focus-insight strong{
  display:block;
  margin-top:8px;
  font-size:24px;
  line-height:1.1;
  color:var(--oc-text);
  font-weight:1000;
}
.oc-focus-insight small{
  display:block;
  margin-top:6px;
  color:var(--oc-muted);
  font-size:12px;
  line-height:1.45;
  font-weight:800;
}
.oc-focus-insight.is-positive{
  background:linear-gradient(180deg, rgba(240,253,244,.96), rgba(255,255,255,.96));
  border-color:rgba(34,197,94,.20);
}
.oc-focus-insight.is-warning{
  background:linear-gradient(180deg, rgba(255,247,237,.96), rgba(255,255,255,.96));
  border-color:rgba(249,115,22,.18);
}
.oc-focus-insight.is-goal{
  background:linear-gradient(180deg, rgba(239,246,255,.96), rgba(255,255,255,.96));
  border-color:rgba(59,130,246,.18);
}
.oc-focus-insight.is-neutral{
  background:#fff;
}

.oc-performance-legend-item.is-mvp::before{
  background:linear-gradient(135deg,#c74100,#f59e0b);
}
.oc-performance-grid.is-major{stroke:rgba(15,23,42,.15)}
.oc-performance-point.is-mvp{
  stroke:var(--oc-accent);
  fill:#fff7ed;
}
.oc-performance-point-ring{
  fill:rgba(199,65,0,.10);
  stroke:rgba(199,65,0,.30);
  stroke-width:2;
}
.oc-performance-mvp-label{
  fill:#8a2d00;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}

.oc-sorteggio-wrap{padding-top:18px}
.oc-sorteggio-card{padding:18px}
.oc-sorteggio-head h3{margin:6px 0 0}
.oc-sorteggio-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.oc-sorteggio-muted{color:var(--oc-muted);font-size:14px;max-width:760px}
.oc-sorteggio-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.oc-sorteggio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:18px}
.oc-sorteggio-section-title{
  grid-column:1/-1;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(248,250,252,.92);
  font-size:12px;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#334155;
}
.oc-sorteggio-player{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  cursor:pointer;
  background:rgba(255,255,255,.9);
  border-color:rgba(15,23,42,.08);
  min-height:58px;
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.oc-sorteggio-player.is-selected{
  border-color:rgba(234,88,12,.30);
  background:#fff7ed;
  box-shadow:none;
}
.oc-sorteggio-player:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(15,23,42,.08)}
.oc-sorteggio-check{margin:0}
.oc-sorteggio-name{
  flex:1;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-weight:900;
  color:var(--oc-text);
}
.oc-sorteggio-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
}
.oc-sorteggio-pill-dif{background:rgba(37,99,235,.12)}
.oc-sorteggio-pill-mid{background:rgba(15,118,110,.12)}
.oc-sorteggio-pill-att{background:rgba(249,115,22,.14)}
.oc-sorteggio-pill-altro{background:rgba(148,163,184,.18)}
.oc-sorteggio-foot{
  display:flex;
  gap:14px;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(15,23,42,.08);
}
.oc-sorteggio-count{font-size:14px;color:var(--oc-text)}
.oc-sorteggio-hint{font-size:13px;color:var(--oc-muted)}
.oc-sorteggio-loading{
  margin-top:14px;
  padding:12px 14px;
  border-radius:16px;
  background:#111827;
  color:#fff;
  font-weight:900;
}
.oc-sorteggio-error{
  margin-top:14px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(239,68,68,.10);
  border:1px solid rgba(239,68,68,.20);
  color:#991b1b;
  font-weight:900;
}
.oc-sorteggio-results{display:grid;gap:14px;margin-top:18px}
.oc-sorteggio-draft-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:14px 16px;
  background:#f8fafc;
  border-bottom:1px solid rgba(15,23,42,.08);
}
.oc-sorteggio-draft-title{font-size:14px;font-weight:1000;letter-spacing:.08em;text-transform:uppercase;color:var(--oc-accent)}
.oc-sorteggio-draft-meta{font-size:13px;color:#475569}
.oc-sorteggio-why{
  padding:14px 16px;
  border-bottom:1px solid rgba(15,23,42,.08);
  color:#334155;
  font-size:13px;
  font-weight:800;
  line-height:1.45;
}
.oc-sorteggio-teams{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px}
.oc-sorteggio-team-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.oc-sorteggio-team-title{font-weight:1000;color:var(--oc-text)}
.oc-sorteggio-team-badges{display:flex;gap:6px;flex-wrap:wrap}
.oc-sorteggio-badge{
  display:inline-flex;align-items:center;
  padding:4px 8px;border-radius:999px;
  background:#f8fafc;border:1px solid rgba(15,23,42,.08);
  font-size:11px;font-weight:900;
}
.oc-sorteggio-team-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:8px;
  margin-top:10px;
}
.oc-sorteggio-team-stats div{
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:10px;
}
.oc-sorteggio-team-stats span{display:block;font-size:12px;color:var(--oc-muted);font-weight:800}
.oc-sorteggio-team-stats strong{display:block;margin-top:4px;font-size:16px;color:var(--oc-text);font-weight:1000}
.oc-sorteggio-role{margin-top:12px}
.oc-sorteggio-role-title{font-size:12px;font-weight:1000;letter-spacing:.08em;text-transform:uppercase;color:#334155;margin-bottom:6px}
.oc-sorteggio-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.oc-sorteggio-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
}
.oc-sorteggio-item-name{font-weight:900;color:var(--oc-text)}
.oc-sorteggio-item-meta{font-size:12px;color:var(--oc-muted);font-weight:800;white-space:nowrap}

@media (max-width:760px){
  .oc-card{padding:16px}
  .oc-head h3{font-size:24px}
  .oc-actions,.oc-auth-actions,.oc-vote-actions{justify-content:stretch}
  .oc-actions .oc-btn,.oc-auth-actions .oc-btn,.oc-vote-actions .oc-btn{width:100%}
  .oc-auth-grid{grid-template-columns:1fr}
  .oc-voter-summary,
  .oc-voter-grid{grid-template-columns:1fr}
  .oc-filter-search,
  .oc-filter-select,
  .oc-filter-actions{width:100%;flex:1 1 100%;margin-left:0}
  .oc-compare-selects{grid-template-columns:1fr}
  .oc-compare-selects .oc-btn{width:100%}
  .oc-compare-players,
  .oc-compare-players.is-versus,
  .oc-compare-metric-grid,
  .oc-focus-grid,
  .oc-focus-mini-grid{grid-template-columns:1fr}
  .oc-compare-vs,
  .oc-compare-vs.is-versus{margin:0 auto}
  .oc-filter-actions .oc-btn{flex:1}
  .oc-vote-playercard{
    display:grid;
    grid-template-columns:64px minmax(0,1fr);
    grid-template-areas:
      "avatar mid"
      "avatar right";
    align-items:start;
  }
  .oc-vote-avatar{grid-area:avatar}
  .oc-vote-mid{
    grid-area:mid;
    width:100%;
    min-width:0;
  }
  .oc-vote-team-grid{gap:0}
  .oc-vote-team-grid .oc-vote-playercard{
    flex:0 0 100%;
    max-width:100%;
  }
  .oc-vote-right{
    grid-area:right;
    width:100%;
    min-width:0;
  }
  .oc-vote-right select{
    width:100%;
    min-width:0;
  }
  .oc-sorteggio-actions{width:100%}
  .oc-sorteggio-actions .oc-btn{flex:1}
  .oc-sorteggio-teams{grid-template-columns:1fr}
}

@media (max-width:700px){
  .oc-tablewrap{border:none;background:transparent;box-shadow:none}
  .oc-table,
  .oc-table thead,
  .oc-table tbody,
  .oc-table tr,
  .oc-table td{display:block;width:100%;min-width:0}
  .oc-table thead{display:none}
  .oc-table tbody{display:grid;gap:12px}
  .oc-table tr{
    border:1px solid rgba(15,23,42,.08);
    border-radius:22px;
    padding:10px 12px;
    background:rgba(255,255,255,.92);
    box-shadow:0 12px 28px rgba(15,23,42,.06);
  }
  .oc-table td{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
    padding:8px 0;
    border-bottom:1px dashed rgba(15,23,42,.08);
    text-align:right;
  }
  .oc-table td:last-child{border-bottom:none}
  .oc-table td::before{
    content:attr(data-label);
    text-align:left;
    color:var(--oc-muted);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-weight:900;
  }
  .oc-playercell{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:12px;
    align-items:center;
    text-align:left;
  }
  .oc-playercell::before{grid-column:1/-1}
  .oc-playercell span:last-child{justify-self:end;text-align:right}

  .oc-mobile-standings-wrap{
    border:1px solid rgba(15,23,42,.08);
    border-radius:28px;
    background:#fff;
    box-shadow:0 14px 32px rgba(15,23,42,.06);
    overflow:hidden;
  }
  .oc-table.oc-mobile-standings,
  .oc-table.oc-mobile-standings thead,
  .oc-table.oc-mobile-standings tbody{
    display:block;
    width:100%;
    min-width:0;
  }
  .oc-table.oc-mobile-standings thead{
    display:block;
    background:#fff;
  }
  .oc-table.oc-mobile-standings thead tr,
  .oc-table.oc-mobile-standings tbody tr{
    display:grid;
    align-items:center;
    gap:8px;
    width:100%;
    min-width:0;
    border:0;
    border-radius:0;
    padding:0 14px;
    background:#fff;
    box-shadow:none;
    position:relative;
  }
  .oc-table.oc-mobile-standings--6 thead tr,
  .oc-table.oc-mobile-standings--6 tbody tr{
    grid-template-columns:42px minmax(134px,1.45fr) repeat(4,minmax(34px,.5fr));
  }
  .oc-table.oc-mobile-standings--5 thead tr,
  .oc-table.oc-mobile-standings--5 tbody tr{
    grid-template-columns:42px minmax(146px,1.55fr) repeat(3,minmax(40px,.58fr));
  }
  .oc-table.oc-mobile-standings--4 thead tr,
  .oc-table.oc-mobile-standings--4 tbody tr{
    grid-template-columns:42px minmax(152px,1.7fr) repeat(2,minmax(52px,.7fr));
  }
  .oc-table.oc-mobile-standings--3 thead tr,
  .oc-table.oc-mobile-standings--3 tbody tr{
    grid-template-columns:42px minmax(174px,1.9fr) minmax(52px,.55fr);
  }
  .oc-table.oc-mobile-standings thead th,
  .oc-table.oc-mobile-standings tbody td{
    display:flex;
    width:auto;
    min-width:0;
    padding:16px 6px;
    border:0;
    align-items:center;
    justify-content:center;
    gap:0;
    text-align:center;
    background:transparent;
  }
  .oc-table.oc-mobile-standings thead th{
    font-size:11px;
    letter-spacing:.08em;
    color:#7b8798;
    font-weight:900;
  }
  .oc-table.oc-mobile-standings thead th:nth-child(2),
  .oc-table.oc-mobile-standings tbody td:nth-child(2){
    justify-content:flex-start;
    text-align:left;
  }
  .oc-table.oc-mobile-standings thead th:first-child,
  .oc-table.oc-mobile-standings tbody td:first-child{
    justify-content:flex-start;
  }
  .oc-table.oc-mobile-standings tbody tr{
    min-height:82px;
    border-top:1px solid rgba(15,23,42,.07);
  }
  .oc-table.oc-mobile-standings tbody tr:first-child{border-top:1px solid rgba(15,23,42,.07)}
  .oc-table.oc-mobile-standings tbody tr::before{
    content:"";
    position:absolute;
    left:0;
    top:10px;
    bottom:10px;
    width:4px;
    border-radius:0 999px 999px 0;
    background:transparent;
  }
  .oc-table.oc-mobile-standings tbody tr.oc-rank1::before{background:#22c55e}
  .oc-table.oc-mobile-standings tbody tr.oc-rank2::before{background:#22c55e}
  .oc-table.oc-mobile-standings tbody tr.oc-rank3::before{background:#22c55e}
  .oc-table.oc-mobile-standings tbody td{
    font-size:15px;
    line-height:1.1;
    font-weight:900;
    color:var(--oc-text);
  }
  .oc-table.oc-mobile-standings tbody td::before{display:none}
  .oc-table.oc-mobile-standings tbody td[data-label="#"]{
    font-size:16px;
    letter-spacing:-.02em;
  }
  .oc-table.oc-mobile-standings tbody td:nth-child(n+3){
    font-variant-numeric:tabular-nums;
    letter-spacing:-.03em;
  }
  .oc-table.oc-mobile-standings .oc-playercell{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    text-align:left;
  }
  .oc-table.oc-mobile-standings .oc-playercell::before{display:none}
  .oc-table.oc-mobile-standings .oc-playercell > span:last-child{
    justify-self:auto;
    text-align:left;
  }
  .oc-table.oc-mobile-standings .oc-playercell > span{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    min-width:0;
  }
  .oc-table.oc-mobile-standings .oc-playercell .oc-playerlink{
    display:inline-block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .oc-table.oc-mobile-standings .oc-playercell .oc-avatarwrap{
    flex:0 0 auto;
  }
  .oc-table.oc-mobile-standings .oc-playercell-form .oc-playerlink{
    display:grid;
    grid-template-columns:82px minmax(0,1fr);
    gap:10px;
    white-space:normal;
  }
  .oc-table.oc-mobile-standings .oc-playercell-form .oc-playercell-stack{
    min-width:82px;
  }
  .oc-table.oc-mobile-standings .oc-playercell-form .oc-form-mini-group{
    width:100%;
    justify-content:center;
  }
  .oc-table.oc-mobile-standings .oc-playercell-form .oc-playermeta{
    gap:6px;
  }
  .oc-table.oc-mobile-standings thead th{
    font-size:10px;
    letter-spacing:.04em;
  }
  .oc-table.oc-mobile-standings .oc-rating-cell{
    justify-content:center;
    gap:6px;
  }
  .oc-table.oc-mobile-standings .oc-rank-badge[data-rank]{
    font-size:0;
    min-width:0;
  }
  .oc-table.oc-mobile-standings .oc-rank-badge[data-rank]::after{
    content:attr(data-rank);
    font-size:16px;
    font-weight:1000;
    color:var(--oc-text);
  }
  .oc-table.oc-mobile-standings td[colspan]{
    grid-column:1 / -1;
    justify-content:flex-start;
    text-align:left;
    padding:18px 6px;
    font-size:14px;
    line-height:1.45;
    font-weight:800;
    color:var(--oc-muted);
  }
  .oc-scoreboard-detailed{
    grid-template-columns:minmax(0,1fr);
    gap:12px;
  }
  .oc-scoreboard-detailed .oc-score-sep{
    order:2;
    justify-self:center;
  }
  .oc-scoreboard-detailed .oc-score-side:first-child{order:1}
  .oc-scoreboard-detailed .oc-score-side:last-child{order:3}
  .oc-performance-arrow{
    display:inline-flex;
  }
}
