/* A single rivalry stage; all rules stay inside the StrandLine room. */
.strand-line-shell .line-rivalry-hub { --rivalry-line:#a8c0cf26;grid-column:1/-1;min-width:0;margin:24px 0;color:#edf6fb; }
.strand-line-shell .line-rivalry-hub>header { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:16px; }
.strand-line-shell .line-rivalry-hub>header>div:first-child { flex:1 1 360px;min-width:0; }
.strand-line-shell .line-rivalry-hub>header>span { color:#a8c3d2;font-size:12px; }
.strand-line-shell .line-rivalry-hub>header>.line-share-header-actions { gap:12px; }
.strand-line-shell .line-rivalry-hub .line-share-header-actions>.sl-share-trigger { padding:12px 16px;border-radius:12px;font-size:14px; }
.strand-line-shell .line-rivalry-hub .micro-label { display:block;font-size:12px;line-height:1.5; }
.strand-line-shell .line-rivalry-hub :is(h3,h4,p) { margin:0;letter-spacing:0; }
.strand-line-shell .line-rivalry-hub :is(h3,h4) { color:#f0f7fa;font-size:clamp(24px,2.5vw,34px);line-height:1.2; }
.strand-line-shell .line-rivalry-hub>header p { max-width:48ch;margin-top:8px;color:#b8cbd5;font-size:14px;line-height:1.6; }
.strand-line-shell .line-rivalry-hub .line-rivalry-kicker { margin:0 0 8px;color:#c9ef91;font-size:12px;letter-spacing:.1em; }
.strand-line-shell .line-rivalry-hub :is(button,summary,a,select):focus-visible { outline:3px solid #76d9ff;outline-offset:3px; }
.strand-line-shell .line-rivalry-hub button { min-width:44px;min-height:44px;border:1px solid var(--rivalry-line);border-radius:12px;background:#ffffff05;color:#d6e6ef;font-size:14px;line-height:1.4; }
.strand-line-shell .line-rivalry-hub button:hover:not(:disabled) { border-color:#92c9db70;background:#73d7ff0d;color:#f2faff; }
.strand-line-shell .line-rivalry-hub button:disabled { border-color:#a8c0cf18;background:#ffffff03;color:#8299a7;cursor:default; }
.strand-line-shell :is(.line-rivalry-tabs,.line-rivalry-game-tabs) { display:flex;align-items:stretch;gap:8px;max-width:100%;min-width:0;padding:8px 8px 16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:8px;scrollbar-width:thin;scrollbar-color:#789baa66 transparent; }
.strand-line-shell .line-rivalry-hub .line-rivalry-tab { display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;align-items:center;gap:8px 12px;flex:0 0 264px;min-width:0;max-width:calc(100% - 24px);padding:12px 16px;text-align:left;scroll-snap-align:start; }
.strand-line-shell .line-rivalry-tab>span { display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0; }
.strand-line-shell .line-rivalry-tab>span:first-child { grid-column:1/-1;font-size:12px;letter-spacing:.06em; }
.strand-line-shell .line-rivalry-tab>strong { display:flex;flex-wrap:wrap;gap:0 4px;min-width:0;margin:0;font-size:14px;line-height:1.4; }
.strand-line-shell .line-rivalry-tab>span:nth-of-type(2) { flex-direction:column;align-items:flex-end;gap:0;white-space:nowrap;font-variant-numeric:tabular-nums; }
.strand-line-shell .line-rivalry-tab>span:last-child { grid-column:1/-1; }
.strand-line-shell .line-rivalry-tab :is(strong,small) { color:inherit;overflow-wrap:anywhere; }
.strand-line-shell .line-rivalry-tab small { font-size:12px;line-height:1.5; }
.strand-line-shell .line-rivalry-hub button:is([aria-selected=true],[aria-pressed=true]) { border-color:#c7ff3d72;background:linear-gradient(120deg,#c7ff3d19,#c7ff3d06);color:#e2ffac;box-shadow:inset 0 1px #e4ffa415; }
.strand-line-shell .line-rivalry-hub .line-rivalry-stage { min-width:0;border:1px solid #95b4c533;border-radius:20px;background:radial-gradient(ellipse at 0 0,#bbf65208,transparent 45%),radial-gradient(ellipse at 100% 0,#5ed3ff0c,transparent 50%),#142530;overflow:hidden; }
.strand-line-shell .line-rivalry-versus-header { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:48px;padding:24px; }
.strand-line-shell .line-rivalry-versus-header[data-solo] { grid-template-columns:minmax(0,1fr); }
.strand-line-shell .line-rivalry-contender-wrap { position:relative;display:flex;min-width:0; }
.strand-line-shell .line-rivalry-contender { display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;width:100%; }
.strand-line-shell .line-rivalry-contender>div { min-width:0; }
.strand-line-shell .line-rivalry-contender :is(strong,small) { display:block;overflow-wrap:anywhere; }
.strand-line-shell .line-rivalry-contender strong { color:#f3f8fb;font-size:17px;line-height:1.4; }
.strand-line-shell .line-rivalry-contender small { color:#afc6d3;font-size:12px;line-height:1.5; }
.strand-line-shell .line-rivalry-contender>div>span { display:block;margin-top:8px;color:#abc5d4;font-size:12px;line-height:1.5; }
.strand-line-shell .line-rivalry-contender .line-rivalry-badges { justify-content:start;gap:4px;min-height:26px;margin:8px 0 0; }
.strand-line-shell .line-rivalry-contender .line-rivalry-badges .team-badge { width:26px;height:26px; }
.strand-line-shell .line-rivalry-contender-avatar { display:grid;place-items:center;width:52px;height:52px;border:1px solid #8fcfe54a;border-radius:16px;background:linear-gradient(145deg,#335565,#1e3441);color:#ddf5ff;font-weight:800;font-size:18px;box-shadow:inset 0 1px #ffffff12; }
.strand-line-shell .line-rivalry-contender[data-mine] .line-rivalry-contender-avatar { border-color:#c7ff3d70;background:linear-gradient(145deg,#c7ff3d22,#c7ff3d09);color:#e2ffad; }
.strand-line-shell .line-rivalry-contender .line-rivalry-contender-points { color:#f5fbff;font:700 34px/1.1 var(--font-display);font-variant-numeric:tabular-nums; }
.strand-line-shell .line-rivalry-contender-points>small { margin-top:4px;font:400 12px/1.5 var(--font-body); }
.strand-line-shell .line-rivalry-versus-mark { position:absolute;left:-40px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--rivalry-line);border-radius:50%;color:#9bb8c8;font-size:12px;font-weight:800; }
.strand-line-shell .line-rivalry-outlook { display:grid;gap:8px;margin:0 24px 24px;padding-left:12px;border-left:2px solid #bbed6859;color:#c1d4df;font-size:14px;line-height:1.6;overflow-wrap:anywhere; }
.strand-line-shell .line-rivalry-outlook small { color:#a8c2d1;font-size:12px; }
.strand-line-shell .line-rivalry-game-nav { display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:12px;padding:12px 20px;border-block:1px solid var(--rivalry-line);background:#07151f3d; }
.strand-line-shell .line-rivalry-game-nav>div { display:grid;gap:4px;min-width:0;text-align:center;overflow-wrap:anywhere; }
.strand-line-shell .line-rivalry-game-nav :is(strong,small) { display:block; }
.strand-line-shell .line-rivalry-game-nav strong { font-size:14px;color:#ebf5fb; }
.strand-line-shell .line-rivalry-game-nav :is(small,div>span) { font-size:12px;color:#a9c3d2; }
.strand-line-shell .line-rivalry-game-nav button { padding:0;font-size:21px;border-radius:12px; }
.strand-line-shell .line-rivalry-game-tabs { margin:0 12px;padding:12px 8px; }
.strand-line-shell .line-rivalry-game-tabs button { display:flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;max-width:100%;padding:8px 12px;scroll-snap-align:start; }
.strand-line-shell .line-rivalry-game-tabs button>span { font-size:12px; }
.strand-line-shell .line-rivalry-game-tabs button>strong { font-size:14px;color:inherit; }
.strand-line-shell .line-rivalry-game-tabs .team-badge { width:26px;height:26px; }
.strand-line-shell .line-rivalry-game-detail { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-width:0;border-top:1px solid var(--rivalry-line); }
.strand-line-shell .line-rivalry-hub .line-rivalry-game-detail .line-weekly-game { width:100%;max-width:none;min-width:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none; }
.strand-line-shell .line-rivalry-hub .line-game-status i { animation:none; }
.strand-line-shell .line-rivalry-analysis { min-width:0;padding:24px;border-left:1px solid var(--rivalry-line);background:#06142026; }
.strand-line-shell .line-rivalry-analysis :is(h4,h5) { margin:8px 0 12px;color:#edf7fc;font-size:20px;line-height:1.3; }
.strand-line-shell .line-rivalry-analysis p { margin:12px 0;color:#b7cdd9;font-size:14px;line-height:1.65; }
.strand-line-shell .line-rivalry-probability { display:grid;gap:12px;margin:16px 0 20px;padding:16px 0;border-block:1px solid #9ccbdd22; }
.strand-line-shell .line-rivalry-probability>div { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:baseline;gap:8px; }
.strand-line-shell .line-rivalry-probability>div>span { grid-column:1/-1;grid-row:2;color:#bdd2dd;font-size:12px;text-align:center; }
.strand-line-shell .line-rivalry-probability>div>strong:last-child { text-align:right; }
.strand-line-shell .line-rivalry-probability>div>strong:first-child { color:#a9e6ff; }
.strand-line-shell .line-rivalry-probability strong { color:#dcffa0;font-size:22px;font-variant-numeric:tabular-nums; }
.strand-line-shell .line-rivalry-probability small { color:#b3cbd8;font-size:12px; }
.strand-line-shell .line-rivalry-probability meter { display:block;width:100%;height:8px;border:0;border-radius:20px;overflow:hidden;background:#6dbddd65;direction:rtl; }
.strand-line-shell .line-rivalry-probability meter::-webkit-meter-bar { border:0;border-radius:20px;background:#6dbddd65; }
.strand-line-shell .line-rivalry-probability meter::-webkit-meter-optimum-value { border-radius:20px;background:linear-gradient(90deg,#b8ed62,#d9ff99); }
.strand-line-shell .line-rivalry-probability meter::-moz-meter-bar { background:#c7f57a; }
.strand-line-shell .line-rivalry-analysis .line-rivalry-probability p { margin:0;font-size:12px; }
.strand-line-shell .line-rivalry-stat-filter { display:grid;gap:8px;margin:20px 0 16px;color:#c4d8e3;font-size:14px; }
.strand-line-shell .line-rivalry-stat-filter select { width:100%;min-height:44px;padding:12px;border:1px solid #92bed042;border-radius:12px;background:#203642;color:#eef8ff;font-size:14px; }
.strand-line-shell .line-rivalry-stat-table { width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px;line-height:1.5; }
.strand-line-shell .line-rivalry-stat-table caption { margin-bottom:8px;color:#a5becd;font-size:12px;text-align:left; }
.strand-line-shell .line-rivalry-stat-table :is(th,td) { padding:12px 8px;border-bottom:1px solid #a8c0cf18;text-align:center;overflow-wrap:anywhere; }
.strand-line-shell .line-rivalry-stat-table th { color:#b8cfdd;font-weight:600; }
.strand-line-shell .line-rivalry-stat-table td { color:#e0edf5;font-variant-numeric:tabular-nums; }
.strand-line-shell .line-rivalry-stat-table td[data-edge] { background:#c7ff3d08;color:#ddffa3;font-weight:700; }
.strand-line-shell .line-rivalry-stat-table :is(th,td):first-child { width:44%;padding-left:0;text-align:left; }
.strand-line-shell .line-rivalry-insight-note { margin-top:16px;color:#adc5d4;font-size:12px;line-height:1.6; }
.strand-line-shell .line-rivalry-insight-note>button { padding:12px 16px; }
.strand-line-shell .line-rivalry-stat-context { margin-top:12px;border-top:1px solid var(--rivalry-line); }
.strand-line-shell .line-rivalry-stat-context>summary { min-height:44px;padding:12px 0;color:#c5dfed;font-size:14px;font-weight:700;line-height:1.5;cursor:pointer; }
.strand-line-shell .line-rivalry-stat-context :is(p,strong,div) { overflow-wrap:anywhere; }
.strand-line-shell .line-rivalry-stat-context>div { padding:12px 0;border-top:1px solid var(--rivalry-line); }
.strand-line-shell .line-rivalry-analysis a { display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;margin-top:12px;color:#c7edff;font-size:14px;font-weight:700;text-underline-offset:4px;overflow-wrap:anywhere; }
.strand-line-shell .line-rivalry-rosters { border-top:1px solid var(--rivalry-line); }
.strand-line-shell .line-rivalry-rosters>summary { display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 20px;color:#c5dbe7;cursor:pointer;font-size:14px;font-weight:700;line-height:1.5;list-style:none; }
.strand-line-shell .line-rivalry-rosters>summary::-webkit-details-marker { display:none; }
.strand-line-shell .line-rivalry-rosters>div:not(.line-rivalry-player) { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); }
.strand-line-shell .line-rivalry-rosters .line-rivalry-player { padding:16px 20px; }
.strand-line-shell .line-rivalry-rosters .line-rivalry-player+.line-rivalry-player { border-top:0;border-left:1px solid var(--rivalry-line); }
@media(max-width:900px) {
 .strand-line-shell .line-rivalry-game-detail { grid-template-columns:minmax(0,1fr); }
 .strand-line-shell .line-rivalry-analysis { border-left:0;border-top:1px solid var(--rivalry-line); }
 .strand-line-shell .line-rivalry-versus-header { padding:20px; }
 .strand-line-shell .line-rivalry-contender { grid-template-columns:44px minmax(0,1fr);grid-template-rows:1fr auto; }
 .strand-line-shell .line-rivalry-contender-avatar { align-self:start;width:44px;height:44px;border-radius:12px; }
 .strand-line-shell .line-rivalry-contender-points { grid-column:2;align-self:end; }
}
@media(max-width:520px) {
 .strand-line-shell .line-rivalry-hub>header>.line-share-header-actions { flex:1 0 100%;justify-content:space-between; }
 .strand-line-shell .line-rivalry-hub .line-rivalry-stage { border-radius:16px; }
 .strand-line-shell .line-rivalry-hub .line-rivalry-tab { padding:12px; }
 .strand-line-shell .line-rivalry-versus-header { gap:32px;padding:20px 16px; }
 .strand-line-shell .line-rivalry-versus-mark { left:-28px;top:22px;width:24px;height:24px; }
 .strand-line-shell .line-rivalry-contender { display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center; }
 .strand-line-shell .line-rivalry-contender-avatar { align-self:center;flex:none; }
 .strand-line-shell .line-rivalry-contender>div { flex:1;width:100%; }
 .strand-line-shell .line-rivalry-contender .line-rivalry-badges { justify-content:center; }
 .strand-line-shell .line-rivalry-contender strong { font-size:14px; }
 .strand-line-shell .line-rivalry-contender .line-rivalry-contender-points { align-self:center;margin-top:auto;font-size:28px; }
 .strand-line-shell .line-rivalry-outlook { margin:0 16px 20px; }
 .strand-line-shell .line-rivalry-game-nav { gap:8px;padding:12px 16px; }
 .strand-line-shell .line-rivalry-game-tabs { margin-inline:8px; }
 .strand-line-shell .line-rivalry-analysis { padding:20px 16px; }
 .strand-line-shell .line-rivalry-probability strong { font-size:20px; }
 .strand-line-shell .line-rivalry-stat-table :is(th,td) { padding:12px 4px; }
 .strand-line-shell .line-rivalry-rosters>summary { padding-inline:16px; }
 .strand-line-shell .line-rivalry-rosters .line-rivalry-player { padding-inline:16px; }
 .strand-line-shell .line-rivalry-rosters>div:not(.line-rivalry-player) { grid-template-columns:minmax(0,1fr); }
 .strand-line-shell .line-rivalry-rosters .line-rivalry-player+.line-rivalry-player { border-left:0;border-top:1px solid var(--rivalry-line); }
}
@media(prefers-reduced-motion:no-preference) {
 .strand-line-shell .line-rivalry-hub button { transition:background-color .18s,border-color .18s,box-shadow .18s; }
 .strand-line-shell .line-rivalry-game-detail { animation:line-rivalry-arrive .22s ease-out both; }
 @keyframes line-rivalry-arrive { from { opacity:.7;transform:translateY(4px); } to { opacity:1;transform:none; } }
}
@media(prefers-reduced-motion:reduce) {
 .strand-line-shell .line-rivalry-hub * { animation:none;transition:none;scroll-behavior:auto; }
}

/* Compact game controls and fixed scoring spreads. */
.strand-line-shell .line-game-filters { display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 12px; }
.strand-line-shell .line-game-filters button { display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px;border:1px solid #a8c0cf30;border-radius:12px;background:#ffffff05;color:#c9dce7;font-size:14px;line-height:1.4; }
.strand-line-shell .line-competition-hub .line-game-filters button:hover:not(:disabled) { border-color:#92c9db70;background:#253943;color:#f2faff; }
.strand-line-shell .line-game-filters button[aria-pressed=true],.strand-line-shell .line-competition-hub .line-game-filters button[aria-pressed=true]:hover { border-color:#c7ff3d70;background:#c7ff3d13;color:#e1ffab; }
.strand-line-shell .line-game-filters button:focus-visible { outline:3px solid #76d9ff;outline-offset:3px; }
.strand-line-shell .line-game-filters button span { min-width:18px;font-size:12px;font-variant-numeric:tabular-nums; }
.strand-line-shell .line-game-filter-count { margin:0 0 16px;color:#b6ccd8;font-size:12px; }
.strand-line-shell .line-game-name .line-game-locked-line { display:block;width:fit-content;max-width:100%;margin:4px 0 0;padding:4px 8px;border:1px solid #c7ff3d35;border-radius:8px;color:#d9ffa0;white-space:normal;font-size:12px;font-weight:700;line-height:1.4; }
.strand-line-shell .line-game-result { font-weight:700; }
.strand-line-shell .line-game-result[data-result=push] { color:#b8e5ff; }
.strand-line-shell .line-game-result[data-result=miss] { color:#ffc6b4; }
.strand-line-shell .line-game-lock-receipt { margin:0 20px 12px;color:#b8cdda;font-size:12px; }
.strand-line-shell .line-game-lock-receipt summary { min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:14px; }
.strand-line-shell .line-game-lock-receipt p { margin:0 0 12px;line-height:1.6;overflow-wrap:anywhere; }
@media(max-width:520px) {
 .strand-line-shell .line-game-filters { display:grid;grid-template-columns:repeat(6,minmax(0,1fr)); }
 .strand-line-shell .line-game-filters button { grid-column:span 2;flex-direction:column;gap:4px;padding:8px 4px; }
 .strand-line-shell .line-game-filters button:nth-child(-n+2) { grid-column:span 3;flex-direction:row;justify-content:space-between;gap:8px;padding:12px; }
 .strand-line-shell .line-game-lock-receipt { margin-inline:16px; }
}

/* One readable result per team, with the complete saved lock and market context below. */
.strand-line-shell .line-game-name .line-game-locked-line { margin-top:3px;padding:3px 7px;font-size:14px;line-height:1.4; }
.strand-line-shell .line-game-result[data-result=miss],.strand-line-shell .line-game-cover[data-result=miss]>b { color:#ff8fa3; }
.strand-line-shell .line-game-cover[data-result=miss]>b { background:#ff52680b; }
.strand-line-shell .line-game-lock-receipt { margin:0 16px 10px;border-top:1px solid #a8c0cf24;color:#b8cdda;font-size:14px; }
.strand-line-shell .line-game-lock-receipt>summary { display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:7px 0;font-size:14px;line-height:1.4;list-style:none; }
.strand-line-shell .line-game-lock-receipt>summary::-webkit-details-marker { display:none; }
.strand-line-shell .line-game-lock-receipt>summary::after { content:"+";flex:none;font-size:20px;line-height:1; }
.strand-line-shell .line-game-lock-receipt[open]>summary::after { content:"−"; }
.strand-line-shell .line-game-lock-receipt>summary:focus-visible { outline:3px solid #76d9ff;outline-offset:2px;border-radius:8px; }
.strand-line-shell .line-game-context { padding-top:4px; }
.strand-line-shell .line-game-context p { margin:0 0 10px;color:#b8cdda;font-size:14px;line-height:1.55; }
.strand-line-shell .line-game-context .line-game-lines { margin:0 0 10px;border-radius:12px; }
.strand-line-shell .line-game-context .line-game-lines>div { padding:10px 12px; }
.strand-line-shell .line-game-context .line-game-lines small { font-size:14px;line-height:1.5; }
.strand-line-shell .line-game-source-quotes { display:grid;gap:8px;list-style:none;padding:0;margin:0 0 12px; }
.strand-line-shell .line-game-source-quotes li { display:grid;gap:3px;padding:8px 0;border-top:1px solid #a8c0cf20;font-size:14px;line-height:1.5;overflow-wrap:anywhere; }
.strand-line-shell .line-game-source-quotes strong { color:#e4edf3; }
.strand-line-shell .line-game-filters button span,.strand-line-shell .line-game-filter-count { font-size:14px; }
.strand-line-shell .line-rivalry-stat-table :is(th,td,caption),.strand-line-shell .line-rivalry-probability :is(small,div>span),.strand-line-shell .line-rivalry-contender-points>small,.strand-line-shell .line-rivalry-contender>div>span { font-size:14px;line-height:1.5; }
@media(max-width:520px) { .strand-line-shell .line-game-lock-receipt { margin-inline:14px; } }
