1"use strict";(self.webpackChunkef_website_stadion=self.webpackChunkef_website_stadion||[]).push([[4674],{60358:function(e,n,s){s.r(n),s.d(n,{default:function(){return De}});var a=s(14041),t=s(49782),o=s(96551),r=s(62166),i=s(93899),l=s(57818),m=s(25790),c=s(12335),u=s(1890),g=s(60964),d=s(76881),h=s(48602);var p=e=>{let{onAccept:n,accepting:s,error:t}=e;const{t:r}=(0,o.B)(),{0:i,1:l}=(0,a.useState)(!1);return a.createElement("section",{className:"ef-content__block ef-content__block--order-review"},a.createElement("div",{className:"ef-container ef-container--l"},a.createElement("div",{className:"ef-orders-review-container",style:{maxWidth:"40rem"}},a.createElement("h3",{className:"ef-heading ef-heading--3"},r("Shop.Account.Tickets.seasonUsageDisclaimerTitle")),a.createElement("p",{style:{marginBottom:"1.25rem"}},r("Shop.Account.Tickets.seasonUsageDisclaimerIntro")),a.createElement("p",{style:{marginBottom:"1.25rem"}},r("Shop.Account.Tickets.seasonUsageDisclaimerBody")),a.createElement("div",{className:"ef-form-item ef-form-item--check",style:{marginTop:"1.5rem",marginBottom:"1.5rem"}},a.createElement("div",{className:"ef-form-item__check"},a.createElement("input",{id:"season-usage-disclaimer-accept",className:"ef-form-item__check-box",type:"checkbox",checked:i,style:{visibility:"hidden"},onChange:e=>l(e.target.checked)}),a.createElement("label",{className:"ef-form-item__check-label",htmlFor:"season-usage-disclaimer-accept"},r("Shop.Account.Tickets.seasonUsageDisclaimerCheckbox")))),t?a.createElement("p",{style:{color:"var(--color-accent)",marginBottom:"1rem"},role:"alert"},r("Shop.Account.Tickets.seasonUsageLoadError")):null,a.createElement("div",{className:"ef-form-buttons"},a.createElement("button",{type:"button",className:"ef-button ef-button--primary ef-button--large",disabled:!i||s,onClick:n},a.createElement("span",{className:"ef-button__label"},r(s?"Shop.Account.Tickets.seasonUsageDisclaimerSubmitting":"Shop.Account.Tickets.seasonUsageDisclaimerAccept")))))))},f=s(83705);const w=[{Opponent:"1. FC Köln",EventDate:"2023-09-03"},{Opponent:"SC Freiburg",EventDate:"2023-09-24"},{Opponent:"SC Paderborn 07",EventDate:"2023-10-08"},{Opponent:"Borussia Dortmund",EventDate:"2023-10-29"},{Opponent:"VfB Stuttgart",EventDate:"2023-11-25"},{Opponent:"Bayern München",EventDate:"2023-12-09"},{Opponent:"Borussia M'gladbach",EventDate:"2023-12-20"},{Opponent:"1. FSV Mainz 05",EventDate:"2024-01-26"},{Opponent:"FC Schalke 04",EventDate:"2024-02-25"},{Opponent:"TSG Hoffenheim",EventDate:"2024-03-10"},{Opponent:"1. FC Union Berlin",EventDate:"2024-03-30"},{Opponent:"Werder Bremen",EventDate:"2024-04-05"},{Opponent:"FC Augsburg",EventDate:"2024-04-19"},{Opponent:"Bayer Leverkusen",EventDate:"2024-05-05"},{Opponent:"RB Leipzig",EventDate:"2024-05-18"},{Opponent:"SV Elversberg",EventDate:"2024-06-01"},{Opponent:"Hamburger SV",EventDate:null}],_=e=>w.map((n,s)=>({EventId:n.Opponent,Opponent:n.Opponent,EventDate:n.EventDate,show:e[s]})),b=e=>{let{id:n,first:s,last:a,block:t,row:o,seat:r,statuses:i}=e;return{ContractId:n,RecipientFirstName:s,RecipientLastName:a,BlockTitle:t,BlockRow:o,BlockSeat:r,games:_(i)}},v=e=>[].concat((0,f.A)(e),[null,null]),k=v(Array(15).fill(1)),y=v(Array(15).fill(0)),x=function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];return v(Array.from({length:15},(e,s)=>n.includes(s)?0:1))},E=function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];return v(Array.from({length:15},(e,s)=>n.includes(s)?1:0))},S={source:"frontend-fixture",items:[b({id:"dummy-hoelzenbein",first:"Bernd",last:"Hölzenbein",block:"18 A",row:"23",seat:"21",statuses:k}),b({id:"dummy-grabowski",first:"Jürgen",last:"Grabowski",block:"18 A",row:"23",seat:"22",statuses:x(2,6,11)}),b({id:"dummy-koerbel",first:"Karl-Heinz",last:"Körbel",block:"18 A",row:"23",seat:"23",statuses:x(1,2,4,6,8,11,13)}),b({id:"dummy-moeller",first:"Andreas",last:"Möller",block:"18 B",row:"8",seat:"3",statuses:E(3,7,12)}),b({id:"dummy-pfaff",first:"Alfred",last:"Pfaff",block:"18 B",row:"8",seat:"4",statuses:y}),b({id:"dummy-yeboah",first:"Tony",last:"Yeboah",block:"10 A",row:"1",seat:"101",statuses:x(3,7,12)}),b({id:"dummy-okocha",first:"Jay-Jay",last:"Okocha",block:"Nordwest",row:"â",seat:"â",statuses:x(6,
114)}),b({id:"dummy-bein",first:"Uwe",last:"Bein",block:"18 A",row:"24",seat:"7",statuses:k}),b({id:"dummy-cha",first:"Bum-kun",last:"Cha",block:"18 A",row:"24",seat:"8",statuses:x(4)}),b({id:"dummy-nickel",first:"Bernd",last:"Nickel",block:"18 A",row:"24",seat:"9",statuses:x(0,9)}),b({id:"dummy-stein",first:"Uli",last:"Stein",block:"7 A",row:"12",seat:"7",statuses:x(2,5,10)}),b({id:"dummy-koepke",first:"Andreas",last:"Köpke",block:"7 A",row:"12",seat:"8",statuses:x(1,3,6,8,12)}),b({id:"dummy-binz",first:"Manfred",last:"Binz",block:"8 A",row:"4",seat:"15",statuses:x(7,11)}),b({id:"dummy-berthold",first:"Thomas",last:"Berthold",block:"8 A",row:"4",seat:"16",statuses:E(0,5,10,14)}),b({id:"dummy-meier",first:"Alexander",last:"Meier",block:"19 A",row:"22",seat:"3",statuses:x(2,3,4,8,9,13)}),b({id:"dummy-hasebe",first:"Makoto",last:"Hasebe",block:"19 A",row:"22",seat:"4",statuses:x(14)}),b({id:"dummy-trapp",first:"Kevin",last:"Trapp",block:"21 A",row:"5",seat:"11",statuses:x(3,13)}),b({id:"dummy-russ",first:"Marco",last:"Russ",block:"21 A",row:"5",seat:"12",statuses:k}),b({id:"dummy-pezzey",first:"Bruno",last:"Pezzey",block:"21 B",row:"11",seat:"2",statuses:x(1,2,6,7,11)}),b({id:"dummy-kress",first:"Richard",last:"Kress",block:"21 B",row:"11",seat:"3",statuses:x(8)}),b({id:"dummy-andersen",first:"Jørn",last:"Andersen",block:"10 A",row:"2",seat:"88",statuses:x(1,5,10)}),b({id:"dummy-bindewald",first:"Uwe",last:"Bindewald",block:"Nordwest",row:"â",seat:"â",statuses:k}),b({id:"dummy-abraham",first:"David",last:"Abraham",block:"13 A",row:"9",seat:"18",statuses:x(0,4,9)}),b({id:"dummy-rode",first:"Sebastian",last:"Rode",block:"13 A",row:"9",seat:"19",statuses:E(2,6,11)})]};var N=s(99420),A=s.n(N),T=s(70373),z=s.n(T);const B={streakMode:"show",rateMode:"show"},U=[{team:"1. FC Köln",logo:"https://spieledb.eintracht.de/teams/logos/387/medium_square/1._FC_K%C3%B6ln.svg.png"},{team:"SC Freiburg",logo:"https://spieledb.eintracht.de/teams/logos/160/medium_square/200px-Logo-SC_Freiburg.svg.png"},{team:"SC Paderborn 07",logo:"https://spieledb.eintracht.de/teams/logos/1743/medium_square/SCP_Logo_rgb.png"},{team:"Borussia Dortmund",logo:"https://spieledb.eintracht.de/teams/logos/157/medium_square/200px-Borussia_Dortmund_logo.svg.png"},{team:"VfB Stuttgart",logo:"https://spieledb.eintracht.de/teams/logos/169/medium_square/VfB_Standard_Logo_RGB.png"},{team:"Bayern München",logo:"https://spieledb.eintracht.de/teams/logos/156/medium_square/FCB_Standard_Logo_RGB.png"},{team:"Borussia M'gladbach",logo:"https://spieledb.eintracht.de/teams/logos/683/medium_square/200px-Borussia_Moenchengladbach_Logo.svg.png"},{team:"1. FSV Mainz 05",logo:"https://spieledb.eintracht.de/teams/logos/810/medium_square/200px-FSV_Mainz_05_Logo_x2_144DPI.png"},{team:"FC Schalke 04",logo:"https://spieledb.eintracht.de/teams/logos/167/medium_square/200px-FC_Schalke_04_Logo.svg.png"},{team:"TSG Hoffenheim",logo:"https://spieledb.eintracht.de/teams/logos/1902/medium_square/200px-Logo_TSG_Hoffenheim.svg.png"},{team:"1. FC Union Berlin",logo:"https://spieledb.eintracht.de/teams/logos/816/medium_square/1280px-1._FC_Union_Berlin_logo.svg.png"},{team:"Werder Bremen",logo:"https://spieledb.eintracht.de/teams/logos/171/medium_square/SVW_Standard_Logo_RGB.png"},{team:"FC Augsburg",logo:"https://spieledb.eintracht.de/teams/logos/1772/medium_square/FCA_Standard_Logo_RGB.png"},{team:"Bayer Leverkusen",logo:"https://spieledb.eintracht.de/teams/logos/164/medium_square/B04_Standard_Logo_RGB.png"},{team:"RB Leipzig",logo:"https://spieledb.eintracht.de/teams/logos/6339/medium_square/RBL_Png_Schatten.png"},{team:"SV Elversberg",logo:"https://spieledb.eintracht.de/teams/logos/4071/medium_square/SV_Elversberg_Logo.png"},{team:"Hamburger SV",logo:"https://spieledb.eintracht.de/teams/logos/161/medium_square/200px-HSV-Logo.svg.png"},{team:"Hertha BSC",logo:"https://spieledb.eintracht.de/teams/logos/162/medium_square/BSC_Standard_Logo.png"},{team:"SV Darmstadt 98",logo:"https://spieledb.eintracht.de/teams/logos/1756/medium_square/darmstadt.png"}],C={team:"Unbekannt",logo:"data:image/svg+xml,"+encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><rect width="64" height="64" fill="#d7d7d7"/></svg>')},D=e=>{if(null==e)return!0;const n=String(e).trim();return 0===n.length||"N/A"===n},M=(e,n)=>D(e)?n:String(e).trim(),R=e=>{if(D(e))return"â";const n=A()(e);return n.isValid()?n.format("DD.MM."):"â"},q=e=>{if(D(e))return"â";const n=A()(e);return n.isValid()?n.format("DD.MM.YYYY"):"â"},L=(e,n)=>new Intl.NumberFormat("en"===n?"en-GB":"de-DE").format(e),O=function(e,n){void 0===n&&(n="list");const s=M(e.RecipientFirstName,""),a=M(e.RecipientLastName,"");return s||a?s?a?"natural"===n?(s+" "+a).trim():(a+", "+s).trim():s:a:""},F=e=>String(e||"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g," ").trim(),P=function(e,n){let{isOrganization:s=!1,subscriberId:a="",subscriberName:t=""}=void 0===n?{}:n;const o=O(e);
1if(!o||!s)return o;const r=[e.SubscriberIsRecipient,e.IsSubscriberRecipient,e.subscriberIsRecipient,e.isSubscriberRecipient].find(e=>"boolean"==typeof e);if(void 0!==r)return r?"":o;const i=[e.RecipientId,e.RecipientSubjectId].find(e=>!D(e)),l=[a,e.SubscriberId,e.SubscriberSubjectId].find(e=>!D(e));if(i&&l)return String(i)===String(l)?"":o;const m=O(e,"natural"),c=[M(e.SubscriberFirstName,""),M(e.SubscriberLastName,"")].filter(Boolean).join(" "),u=t||c;return F(m)&&F(u)&&F(m)===F(u)?"":o},j=(e,n)=>e&&e.ContractId||"contract-"+n,I=e=>e&&(e.Opponent||e.EventId)||""+(e&&e.EventDate||"unknown-event"),H=()=>(new Date).toISOString().slice(0,10),G=e=>e&&1===e.show?"show":e&&0===e.show?"noShow":(e=>{const n=e&&e.EventDate;if(!n)return!1;const s=String(n).slice(0,10);return!!/^\d{4}-\d{2}-\d{2}$/.test(s)&&s>H()})(e)?"future":"unknown",V=(e,n)=>"future"===G(e)||!(null!=e&&e.EventDate)&&!n,Y=e=>String(e||"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g," ").trim(),$={"werder bremen":"werder bremen","sv werder bremen":"werder bremen","1 fc union berlin":"1 fc union berlin","bayern munchen":"bayern munchen","fc bayern munchen":"bayern munchen","1 fsv mainz 05":"1 fsv mainz 05","fc schalke 04":"fc schalke 04",schalke:"fc schalke 04","fc augsburg":"fc augsburg","borussia dortmund":"borussia dortmund","tsg hoffenheim":"tsg hoffenheim","bayer leverkusen":"bayer leverkusen","bayer 04 leverkusen":"bayer leverkusen","borussia m gladbach":"borussia m gladbach","borussia monchengladbach":"borussia m gladbach","sc freiburg":"sc freiburg","sc paderborn 07":"sc paderborn 07","sc paderborn":"sc paderborn 07",paderborn:"sc paderborn 07","sv elversberg":"sv elversberg","sv 07 elversberg":"sv elversberg",elversberg:"sv elversberg","1 fc koln":"1 fc koln","rb leipzig":"rb leipzig",leipzig:"rb leipzig","hamburger sv":"hamburger sv","vfb stuttgart":"vfb stuttgart","hertha bsc":"hertha bsc",hertha:"hertha bsc","sv darmstadt 98":"sv darmstadt 98","darmstadt 98":"sv darmstadt 98",darmstadt:"sv darmstadt 98"},J=e=>{const n=Y(e&&e.Opponent||e&&e.EventId),s=$[n]||n;return U.find(e=>Y(e.team)===s)||null},K=e=>J(e)||C,X=e=>{let{alt:n="",src:s}=e;return a.createElement("span",{className:"season-usage-team-logo"},a.createElement("img",{alt:n,src:s}))},W=(e,n)=>{const s=e&&e.EventDate?String(e.EventDate):"9999-99-99",a=n&&n.EventDate?String(n.EventDate):"9999-99-99",t=s.localeCompare(a);return 0!==t?t:I(e).localeCompare(I(n))},Q=e=>{const n=new Map;return e.forEach(e=>e.games.forEach(e=>{const s=(e=>{const n=J(e);return n?"team:"+Y(n.team):"event:"+I(e)})(e);n.has(s)||n.set(s,e)})),(0,f.A)(n.values()).sort(W)},Z=function(e,n,s){return void 0===s&&(s="â"),!e||D(e[n])?s:String(e[n]).trim()},ee=e=>e.reduce((e,n)=>{const s=G(n);return"show"===s?e.show+=1:"noShow"===s?e.noShow+=1:"unknown"===s&&(e.unknown+=1),e},{show:0,noShow:0,unknown:0}),ne=function(e,n){let{show:s,noShow:a}=e;void 0===n&&(n="show");const t=s+a;return t?"noShow"===n?Math.round(a/t*100):Math.round(s/t*100):null},se=e=>{let{show:n,noShow:s}=e;const a=n+s;return{rate:a?Math.round(n/a*100):null,used:n,settled:a,label:n+"/"+a}},ae=e=>{(0,a.useEffect)(()=>{if("undefined"==typeof document||"undefined"==typeof window)return;const n=e.current,s=document.querySelector(".ef-navigation");if(!n||!s)return;let a=null,t=null,o=null;const r=new Set,i=()=>[document.querySelector(".ef-header"),document.querySelector(".ef-header > .ef-submenu")].filter(Boolean),l=()=>(e=>{let{target:n,navigationElements:s,viewportHeight:a}=e;const t=s.reduce((e,n)=>{const{top:s,bottom:t}=n.getBoundingClientRect();return t<=0||s>=a?e:Math.max(e,Math.min(t,a))},0);return n.style.setProperty("--season-navigation-offset",t+"px"),t})({target:n,navigationElements:i(),viewportHeight:window.innerHeight}),m=()=>{null===a&&(a=window.requestAnimationFrame(()=>{a=null,l()}))},c=()=>{l(),t=r.size>0?window.requestAnimationFrame(c):null},u=()=>{window.ResizeObserver?(o&&o.disconnect(),o=new window.ResizeObserver(m),i().forEach(e=>o.observe(e)),m()):m()},g=window.MutationObserver?new window.MutationObserver(e=>{e.some(e=>{let{type:n,target:s}=e;return"childList"===n||"attributes"===n&&s.matches(".ef-header, .ef-header__hamburger, .ef-submenu")}
1)&&(r.forEach(e=>{s.contains(e)||r.delete(e)}),u())}):null,d=e=>{var n;e.target.matches(".ef-header, .ef-submenu")&&"transform"===e.propertyName&&(n=e.target,r.add(n),null===t&&(t=window.requestAnimationFrame(c)))},h=e=>{var n;e.target.matches(".ef-header, .ef-submenu")&&"transform"===e.propertyName&&(n=e.target,r.delete(n),0===r.size&&null!==t&&(window.cancelAnimationFrame(t),t=null,l()))};return s.addEventListener("transitionrun",d,!0),s.addEventListener("transitionend",h,!0),s.addEventListener("transitioncancel",h,!0),window.addEventListener("scroll",m,{passive:!0}),window.addEventListener("resize",u),null==g||g.observe(s,{attributes:!0,attributeFilter:["class","style"],childList:!0,subtree:!0}),u(),l(),()=>{var e;s.removeEventListener("transitionrun",d,!0),s.removeEventListener("transitionend",h,!0),s.removeEventListener("transitioncancel",h,!0),window.removeEventListener("scroll",m),window.removeEventListener("resize",u),null==g||g.disconnect(),null===(e=o)||void 0===e||e.disconnect(),null!==a&&window.cancelAnimationFrame(a),null!==t&&window.cancelAnimationFrame(t)}},[e])},te=e=>[e.block,e.row,e.seat].map(e=>String(e).padStart(8,"0")).join("|"),oe=(e,n)=>n("Shop.Account.Tickets."+("show"===e?"seasonUsageLegendShow":"noShow"===e?"seasonUsageLegendNoShow":"seasonUsageLegendUnknown")),re=(e,n)=>{const s=e.map(()=>null);if("show"!==n&&"noShow"!==n)return s;let a=0;for(;a<e.length;){if(e[a]!==n){a+=1;continue}let t=a;for(;t<e.length&&e[t]===n;)t+=1;if(1===t-a)s[a]="single";else for(let e=a;e<t;e+=1)s[e]=e===a?"start":e===t-1?"end":"mid";a=t}return s},ie=()=>a.createElement("style",null,'\n .season-usage-dashboard {\n --season-red: var(--color-accent);\n --season-ink: var(--color-front);\n --season-muted: var(--tone-front-500);\n --season-line: color-mix(in srgb, var(--color-front) 12%, transparent);\n --season-show: var(--color-green);\n --season-bar-gray: var(--tone-front-500);\n --season-surface: var(--color-back);\n --season-soft: color-mix(in srgb, var(--color-front) 6%, var(--color-back));\n --season-subtle: color-mix(in srgb, var(--color-front) 3%, var(--color-back));\n --season-pill-w: 2.5rem;\n --season-pill-inset: .28rem;\n --season-match-w: 3.1rem;\n container-type: inline-size;\n color: var(--season-ink);\n }\n .season-usage-dashboard * { box-sizing: border-box; }\n .season-usage-dashboard-container {\n margin-left: 4.835vw !important;\n margin-right: 4.835vw !important;\n max-width: none !important;\n width: auto !important;\n }\n .season-usage-dashboard--show-black .season-usage-status--show {\n color: var(--season-ink) !important;\n }\n .season-usage-dashboard--show-black .season-usage-status--show-pill {\n background: var(--season-ink);\n color: var(--color-white) !important;\n }\n .season-usage-dashboard--show-green .season-usage-status--show {\n color: var(--season-show) !important;\n }\n .season-usage-dashboard--show-green .season-usage-status--show-pill {\n background: var(--season-show);\n color: var(--color-white) !important;\n }\n .season-usage-subtitle {\n color: var(--season-muted);\n font-size: .9rem;\n margin: 0 0 1.5rem;\n }\n\n .season-usage-card {\n margin-bottom: 1rem;\n }\n\n .season-usage-summary--single {\n border-bottom: 1px solid var(--season-line);\n display: grid;\n grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, .85fr);\n padding: 1.35rem 0;\n }\n .season-usage-summary--single .season-usage-summary__number {\n font-size: clamp(2.5rem, 3.8vw, 3.25rem);\n }\n .season-usage-summary--single .season-usage-summary__meter {\n margin-top: 1rem;\n }\n .season-usage-summary--multi {\n align-items: center;\n border-bottom: 1px solid var(--season-line);\n display: grid;\n gap: clamp(1.5rem, 4vw, 4rem);\n grid-template-columns: minmax(0, 1fr) minmax(22rem, max-content);\n padding: 1.35rem 0;\n }\n .season-usage-summary__usage {\n min-width: 0;\n }\n .season-usage-summary__section {\n min-width: 0;\n padding: 0 clamp(1.25rem, 2.5vw, 2rem);\n }\n .season-usage-summary--single .season-usage-summary__section:first-child {\n padding-left: 0;\n }\n .season-usage-summary--single .season-usage-summary__section:last-child {\n padding-right: 0;\n }\n .season-usage-summary__label {\n color: var(--season-muted);\n display: block;\n font-weight: 600;\n margin-bottom: .55rem;\n }\n .season-usage-summary__hero {\n align-items: start;\n display: flex;\n flex-direction: column;\n gap: .7rem;\n }\n .season-usage-summary__number {\n font-size: clamp(2.25rem, 3.4vw, 3rem);\n font-weight: 800;\n letter-spacing: -.04em;\n line-height: .95;\n }\n .season-usage-summary__meter {\n max-width: 25rem;\n min-width: 10rem;\n width: 100%;\n }\n .season-usage-summary__copy {\n color: var(--season-muted);\n margin: .85rem 0 0;\n }\n .season-usage-summary__stats {\n display: grid;\n gap: .4rem;\n min-width: 0;\n }\n .season-usage-summary--multi .season-usage-summary__stats {\n border-left: 1px solid var(--season-line);\n padding-left: clamp(1.5rem, 3vw, 2.5rem);\n }\n\n .season-usage-progress {\n background: var(--season-soft);\n height: .75rem;\n margin-bottom: .5rem;\n position: relative;\n }\n .season-usage-progress__value {\n background: var(--season-ink);\n height: 100%;\n transition: width .3s ease-out;\n }\n .season-usage-summary--multi .season-usage-summary__meter,\n .season-usage-summary--single .season-usage-summary__meter {\n position: relative;\n }\n .season-usage-summary--multi .season-usage-progress,\n .season-usage-summary--single .season-usage-progress { margin-bottom: 0; }\n\n .season-usage-streak {\n align-items: baseline;\n display: flex;\n flex-wrap: wrap;\n gap: .45rem .6rem;\n margin-top: .15rem;\n }\n .season-usage-streak strong {\n font-size: clamp(2.4rem, 4.5vw, 3.4rem);\n letter-spacing: -.04em;\n line-height: 1;\n }\n .season-usage-streak span {\n font-size: 1rem;\n }\n\n .season-usage-balance__item {\n align-items: baseline;\n column-gap: 1.25rem;\n display: grid;\n grid-template-columns: minmax(0, max-content) max-content;\n justify-content: space-between;\n row-gap: .15rem;\n }\n .season-usage-balance__item span {\n color: var(--season-muted);\n font-weight: 500;\n min-width: 0;\n }\n .season-usage-balance__item strong {\n font-size: 1.05rem;\n font-variant-numeric: tabular-nums;\n text-align: right;\n white-space: nowrap;\n }\n .season-usage-balance__item--show strong { color: var(--season-show); }\n .season-usage-balance__item--no-show strong { color: var(--season-red); }\n\n .season-usage-matchboard {\n border-top: 1px solid var(--season-line);\n padding: 1.35rem 0 1.2rem;\n }\n .season-usage-matchboard__title {\n color: var(--season-muted);\n font-weight: 600;\n margin: 0 0 1.35rem;\n }\n .season-usage-matchboard__scroll {\n overflow-x: auto;\n overscroll-behavior-x: contain;\n scrollbar-color: var(--season-line) transparent;\n }\n .season-usage-matchboard__matches {\n --season-match-gap: .55rem;\n display: grid;\n gap: var(--season-match-gap);\n }
1\n .season-usage-match {\n align-items: center;\n display: flex;\n flex-direction: column;\n min-width: 0;\n text-align: center;\n }\n .season-usage-match--streak-start,\n .season-usage-match--streak-mid,\n .season-usage-match--streak-end {\n position: relative;\n }\n /* Keep streak bars on the status row only â never stretch the column. */\n .season-usage-matchboard .season-usage-status--show-pill,\n .season-usage-matchboard .season-usage-status--no-show-pill {\n flex: 0 0 auto;\n height: 1.35rem;\n max-height: 1.35rem;\n }\n /* Wide singles + streak segments share the same outer inset. */\n .season-usage-match .season-usage-status--streak-single {\n align-self: center;\n width: calc(100% - (var(--season-pill-inset) * 2));\n }\n .season-usage-match--streak-start .season-usage-status--no-show-pill,\n .season-usage-match--streak-mid .season-usage-status--no-show-pill,\n .season-usage-match--streak-end .season-usage-status--no-show-pill,\n .season-usage-match--streak-start .season-usage-status--show-pill,\n .season-usage-match--streak-mid .season-usage-status--show-pill,\n .season-usage-match--streak-end .season-usage-status--show-pill {\n align-self: flex-start;\n box-sizing: border-box;\n }\n .season-usage-match--streak-start .season-usage-status--no-show-pill,\n .season-usage-match--streak-start .season-usage-status--show-pill {\n margin-left: var(--season-pill-inset);\n margin-right: calc(var(--season-match-gap) / -2);\n width: calc(100% - var(--season-pill-inset) + (var(--season-match-gap) / 2));\n }\n .season-usage-match--streak-mid .season-usage-status--no-show-pill,\n .season-usage-match--streak-mid .season-usage-status--show-pill {\n margin-left: calc(var(--season-match-gap) / -2);\n margin-right: calc(var(--season-match-gap) / -2);\n width: calc(100% + var(--season-match-gap));\n }\n .season-usage-match--streak-end .season-usage-status--no-show-pill,\n .season-usage-match--streak-end .season-usage-status--show-pill {\n margin-left: calc(var(--season-match-gap) / -2);\n width: calc(100% - var(--season-pill-inset) + (var(--season-match-gap) / 2));\n }\n .season-usage-team-logo {\n align-items: center;\n background: var(--season-soft);\n border-radius: 50%;\n display: inline-flex;\n flex: 0 0 auto;\n height: 1.7rem;\n justify-content: center;\n overflow: visible;\n width: 1.7rem;\n }\n .season-usage-team-logo img {\n display: block;\n height: 100%;\n object-fit: contain;\n width: 100%;\n }\n .season-usage-match .season-usage-team-logo {\n height: 2.4rem;\n margin-bottom: .7rem;\n width: 2.4rem;\n }\n .season-usage-match__date {\n color: var(--season-ink);\n margin-top: .4rem;\n }\n\n .season-usage-status {\n align-items: center;\n display: inline-flex;\n font-size: 1.35rem;\n font-weight: 800;\n height: 1.4rem;\n justify-content: center;\n line-height: 1;\n width: 1.4rem;\n }\n .season-usage-status--show {\n color: var(--season-bar-gray) !important;\n }\n .season-usage-status--show-pill {\n background: var(--season-bar-gray);\n border-radius: 999px;\n color: var(--color-white) !important;\n flex: 0 0 auto;\n font-size: .95rem;\n height: 1.35rem;\n width: var(--season-pill-w);\n }\n .season-usage-status--no-show {\n color: var(--season-red) !important;\n }\n .season-usage-status--no-show-pill {\n background: var(--season-red);\n border-radius: 999px;\n color: transparent !important;\n flex: 0 0 auto;\n font-size: 0;\n height: 1.35rem;\n position: relative;\n width: var(--season-pill-w);\n }\n .season-usage-status--no-show-pill::before,\n .season-usage-status--no-show-pill::after {\n background: var(--color-white);\n content: "";\n height: .11rem;\n left: 50%;\n position: absolute;\n top: 50%;\n width: .68rem;\n }\n .season-usage-status--no-show-pill::before {\n transform: translate(-50%, -50%) rotate(45deg);\n }\n .season-usage-status--no-show-pill::after {\n transform: translate(-50%, -50%) rotate(-45deg);\n }\n .season-usage-status--streak-single {\n border-radius: 999px;\n }\n .season-usage-status--streak-start,\n .season-usage-status--streak-mid,\n .season-usage-status--streak-e
1nd {\n flex: 0 0 auto;\n max-width: none;\n min-width: 0;\n }\n .season-usage-status--streak-start {\n border-radius: 999px 0 0 999px;\n }\n .season-usage-status--streak-mid {\n border-radius: 0;\n }\n .season-usage-status--streak-end {\n border-radius: 0 999px 999px 0;\n }\n /* In-flow pills fill the cell. Avoid % widths and position:relative on <td>. */\n .season-usage-grid tbody td.season-usage-grid__match--pill {\n padding-left: 0;\n padding-right: 0;\n }\n .season-usage-grid__mark {\n display: block;\n line-height: 0;\n text-align: center;\n }\n .season-usage-grid__match--pill .season-usage-status--streak-single,\n .season-usage-grid__match--pill .season-usage-status--streak-start,\n .season-usage-grid__match--pill .season-usage-status--streak-mid,\n .season-usage-grid__match--pill .season-usage-status--streak-end {\n box-sizing: border-box;\n display: flex;\n flex: none;\n height: 1.35rem;\n max-width: none;\n width: auto;\n }\n .season-usage-grid__match--pill .season-usage-status--streak-single {\n margin-left: var(--season-pill-inset);\n margin-right: var(--season-pill-inset);\n }\n .season-usage-grid__match--pill .season-usage-status--streak-start {\n margin-left: var(--season-pill-inset);\n margin-right: -1px;\n }\n .season-usage-grid__match--pill .season-usage-status--streak-mid {\n margin-left: -1px;\n margin-right: -1px;\n }\n .season-usage-grid__match--pill .season-usage-status--streak-end {\n margin-left: -1px;\n margin-right: var(--season-pill-inset);\n }\n .season-usage-status--unknown {\n color: var(--season-muted) !important;\n }\n .season-usage-status--future {\n visibility: hidden;\n }\n\n .season-usage-legend {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: .75rem 1.5rem;\n margin: 1.5rem 0 0;\n padding: 1.15rem 0 0;\n }\n .season-usage-legend__item {\n align-items: center;\n color: var(--season-muted);\n display: inline-flex;\n gap: .45rem;\n line-height: 1.3;\n }\n .season-usage-legend__item .season-usage-status {\n flex: 0 0 auto;\n }\n .season-usage-legend__item .season-usage-status--show-pill:not([class*="streak-start"]):not([class*="streak-mid"]):not([class*="streak-end"]) {\n width: 1.7rem;\n }\n .season-usage-legend__streak {\n display: inline-flex;\n height: 1.35rem;\n width: 4.1rem;\n }\n .season-usage-legend__streak .season-usage-status--no-show-pill,\n .season-usage-legend__streak .season-usage-status--show-pill {\n flex: 1 1 0;\n width: auto;\n }\n .season-usage-legend__streak .season-usage-status--streak-start {\n padding-left: .45rem;\n }\n .season-usage-legend__streak .season-usage-status--streak-end {\n padding-right: .45rem;\n }\n\n .season-usage-toolbar {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: .75rem 1rem;\n justify-content: space-between;\n margin: 0 0 1rem;\n padding: .15rem 0;\n }\n .season-usage-toolbar__filters {\n align-items: center;\n display: flex;\n flex: 1 1 20rem;\n flex-wrap: wrap;\n gap: .55rem .85rem;\n position: relative;\n }\n .season-usage-toolbar__label {\n border: 0;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n height: 1px;\n left: 0;\n margin: 0;\n overflow: hidden;\n padding: 0;\n position: absolute;\n top: 0;\n white-space: nowrap;\n width: 1px;\n }\n .season-usage-filter-list {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: .4rem;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .season-usage-filter-item {\n display: flex;\n margin: 0;\n }\n .season-usage-filter-button {\n background: var(--season-surface) !important;\n align-items: center;\n border: 1px solid var(--season-muted) !important;\n border-radius: 999px !important;\n color: var(--season-ink) !important;\n cursor: pointer !important;\n display: inline-flex !important;\n font-family: inherit !important;\n font-size: .72rem !important;\n font-weight: 700 !important;\n gap: .4rem;\n line-height: 1.2 !important;\n padding: .34rem .7rem !important;\n text-align: left;\n white-space: nowrap;\n }\n .season-usage-filter-button__count {\n border-left: 1px solid rgb(18 18 18 / 22%);\n font-variant-numeric: tabular-nums;\n padding-left: .4rem;\n }\n .season-usage-filter-button[aria-pressed="true"] {\n background: var(--season-red) !important;\n border-color: var(--season-red) !important;\n color: var(--season-surface) !important;\n }\n .season-usage-filter-button[aria-pressed="true"] .season-usage-filter-button__count {\n border-left-color: rgb(255 255 255 / 45%);\n }\n .season-usage-filter-select,\n .season-usage-sort {\n align-items: center;\n display: flex;\n gap: .4rem;\n margin: 0;\n min-width: 0;\n }\n .season-usage-filter-select {\n flex: 1 1 14rem;\n }\n .season-usage-sort {\n align-items: center;\n flex: 0 0 auto;\n min-width: 12rem;\n }\n .season-usage-filter-select__label,\n .season-usage-sort__label {\n margin: 0;\n white-space: nowrap;\n }\n .season-usage-filter-select__field-wrapper,\n .season-usage-sort__field-wrapper {\n min-width: 0;\n }\n .season-usage-filter-select .ef-form-item__field,\n .season-usage-sort .ef-form-item__field {\n font-weight: 700;\n }\n\n .season-usage-empty-filter {\n border: 1px solid var(--season-line);\n color: var(--season-muted);\n margin: 0 0 1.25rem;\n padding: 2.5rem 1.5rem;\n text-align: center;\n }\n .season-usage-empty-filter p { margin: 0; }\n\n .season-usage-grid-wrap {\n max-height: min(70dvh, 42rem);\n overflow: auto;\n padding-bottom: .5rem;\n }\n .season-usage-grid {\n /* Tall enough for logo + date + padding so sticky cells don\'t clip. */\n --season-grid-head-h: 5.25rem;\n --season-grid-quote-h: 4.5rem;\n background: var(--season-surface);\n border-collapse: separate;\n border-spacing: 0;\n min-width: max-content;\n width: 100%;\n }\n .season-usage-grid th,\n .season-usage-grid td {\n border-bottom: 1px solid var(--season-line);\n padding: .55rem .35rem;\n vertical-align: middle;\n }\n .season-usage-grid thead th {\n background: var(--season-surface);\n /* Borders on sticky table cells get clipped; use inset shadow instead. */\n border-bottom: 0;\n box-shadow: inset 0 -1px 0 var(--season-line);\n color: var(--season-muted);\n font-weight: 700;\n position: sticky;\n text-align: left;\n top: 0;\n z-index: 4;\n }\n .season-usage-grid thead tr:first-child th {\n box-sizing: border-box;\n height: var(--season-grid-head-h);\n min-height: var(--season-grid-head-h);\n overflow: visible;\n padding-bottom: .45rem;\n padding-top: .55rem;\n vertical-align: middle;\n }\n .season-usage-grid thead tr:nth-child(2) th {\n top: var(--season-grid-head-h);\n z-index: 5;\n }\n .season-usage-grid__meta {\n background: var(--season-surface);\n left: 0;\n position: sticky;\n z-index: 1;\n }\n .season-usage-grid thead .season-usage-grid__meta { z-index: 6; }\n .season-usage-grid__meta--block {\n left: 0;\n max-width: 4rem;\n min-width: 4rem;\n width: 4rem;\n }\n .season-usage-grid__meta--row {\n left: 4rem;\n max-width: 4rem;\n min-width: 4rem;\n width: 4rem;\n }\n .season-usage-grid__meta--seat {\n left: 8rem;\n max-width: 4rem;\n min-width: 4rem;\n width: 4rem;\n }\n .season-usage-grid__meta--holder {\n left: 12rem;\n max-width: 9rem;\n min-width: 9rem;\n width: 9rem;\n }\n .season-usage-grid__meta--rate {\n box-shadow: 1px 0 0 var(--season-line);\n font-variant-numeric: tabular-nums;\n left: 21rem;\n max-width: 5rem;\n min-width: 5rem;\n text-align: right;\n width: 5rem;\n }\n .season-usage-grid__meta--sticky-group {\n background: var(--season-surface);\n box-shadow: 1px 0 0 var(--season-line);\n left: 0;\n max-width: 26rem;\n min-width: 26rem;\n position: sticky;\n width: 26rem;\n z-index: 6;\n }\n .season-usage-grid__sortable {\n background: transparent;\n border: 0;\n color: inherit;\n cursor: pointer;\n font: inherit;\n font-weight: 700;\n letter-spacing: inherit;\n padding: 0;\n text-align: left;\n text-transform: inherit;\n white-space: nowrap;\n }\n .season-usage-grid th[aria-sort="ascending"] .season-usage-grid__sortable::after { content: " â"; }\n .season-usage-grid th[aria-sort="descending"] .season-usage-grid__sortable::after { content: " â"; }\n .season-usage-grid th[aria-sort="none"] .season-usage-grid__sortable::after { content: " â"; opacity: .35; }\n .season-usage-grid__match {\n min-width: 3.1rem;\n text-align: center !important;\n width: 3.1rem;\n }\n .season-usage-grid__match-head {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: .25rem;\n justify-content: center;\n }\n .season-usage-grid__match-head .season-usage-team-logo {\n display: flex;\n }\n .season-usage-grid__match-head time {\n color: var(--season-muted);\n display: block;\n flex: 0 0 auto;\n font-size: .64rem;\n font-weight: 400;\n letter-spacing: 0;\n line-height: 1.2;\n text-transform: none;\n white-space: nowrap;\n }\n .season-usage-grid__quote-label {\n color: var(--season-muted);\n font-weight: 600;\n white-space: nowrap;\n }\n .season-usage-grid__quote-cell {\n background: var(--season-soft);\n height: var(--season-grid-quote-h);\n min-height: var(--season-grid-quote-h);\n text-align: center;\n vertical-align: bottom;\n }\n .season-usage-quote {\n align-items: center;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: flex-end;\n position: relative;\n }\n .season-usage-quote__rate {\n font-size: .68rem;\n font-weight: 700;\n margin-bottom: .25rem;\n }\n .season-usage-quote__rate--ok { color: var(--season-show); }\n .season-usage-quote__rate--okay { color: var(--season-bar-gray); }\n .season-usage-quote__rate--low { color: var(--season-bar-gray); }\n .season-usage-quote__chart {\n height: 2.6rem;\n position: relative;\n width: 100%;\n }\n .season-usage-quote__bar {\n bottom: 0;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n width: .45rem;\n }\n .season-usage-quote__bar--ok { background: var(--season-show); }\n .season-usage-quote__bar--okay { background: var(--season-bar-gray); }\n .season-usage-quote__bar--low { background: var(--season-bar-gray); }\n .season-usage-grid tbody td {\n font-size: .88rem;\n }\n .season-usage-grid tbody td.season-usage-grid__match {\n text-align: center;\n }\n .season-usage-grid tbody tr:hover { background: var(--season-subtle); }\n\n .season-usage-mobile-list {\n display: none;\n }\n .season-usage-mobile-item {\n border-bottom: 1px solid var(--season-line);\n }\n .season-usage-mobile-item__header {\n align-items: center;\n background: transparent;\n border: 0;\n color: var(--season-ink);\n cursor: pointer;\n display: grid;\n font: inherit;\n gap: .5rem;\n grid-template-columns: 1fr auto;\n padding: .85rem 0;\n text-align: left;\n width: 100%;\n }\n .season-usage-mobile-item__seat {\n display: block;\n font-size: .85rem;\n font-weight: 700;\n }\n .season-usage-mobile-item__holder {\n color: var(--season-muted);\n display: block;\n font-size: .8rem;\n }\n .season-usage-mobile-item__rate {\n align-items: flex-end;\n display: flex;\n flex-direction: column;\n font-variant-numeric: tabular-nums;\n text-align: right;\n }\n .season-usage-mobile-item__rate-value {\n font-size: .9rem;\n font-weight: 700;\n white-space: nowrap;\n }\n .season-usage-mobile-item__rate-count {\n color: var(--season-muted);\n font-size: .72rem;\n font-weight: 600;\n white-space: nowrap;\n }\n .season-usage-mobile-item__games {\n display: flex;\n flex-direction: column;\n gap: .35rem;\n padding: 0 0 1rem;\n }\n .season-usage-mobile-game {\n align-items: center;\n display: grid;\n font-size: .85rem;\n gap: .65rem;\n grid-template-columns: 1.5rem auto 1fr auto;\n padding: .35rem 0;\n }\n .season-usage-mobile-game .season-usage-team-logo {\n height: 1.5rem;\n width: 1.5rem;\n }\n .season-usage-mobile-game__status {\n display: flex;\n justify-content: center;\n min-width: 1.4rem;\n }\n .season-usage-mobile-game__date {\n color: var(--season-muted);\n font-size: .78rem;\n font-variant-numeric: tabular-nums;\n }\n .season-usage-mobile-game__team {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n @media (max-width: 1023px) {\n .season-usage-dashboard-container {\n margin-left: clamp(1rem, 3vw, 1.5rem) !important;\n margin-right: clamp(1rem, 3vw, 1.5rem) !important;\n width: auto !important;\n }\n .season-usage-matrix-frame {\n display: none;\n }\n .season-usage-mobile-list {\n display: block;\n }\n }\n @container (max-width: 640px) {\n .season-usage-summary--multi {\n gap: 1rem;\n grid-template-columns: 1fr;\n }\n .season-usage-summary--multi .season-usage-summary__stats {\n border-left: 0;\n border-top: 1px solid var(--season-line);\n padding: 1rem 0 0;\n }\n .season-usage-summary--multi .season-usage-summary__hero {\n gap: .7rem;\n }\n .season-usage-summary--multi .season-usage-summary__copy {\n font-size: 1rem;\n }\n }\n @container (max-width: 780px) {\n .season-usage-toolbar {\n align-items: stretch;\n gap: .9rem;\n }\n .season-usage-toolbar__filters {\n align-items: flex-start;\n flex-basis: 100%;\n }\n .season-usage-filter-list {\n gap: .4rem;\n }\n .season-usage-sort {\n min-height: 2.75rem;\n width: 100%;\n }\n }\n @container (max-width: 61.8125rem) {\n .season-usage-summary--single {\n grid-template-columns: 1fr;\n }\n .season-usage-summary--single .season-usage-summary__section {\n padding: 1rem 0;\n }\n .season-usage-summary--single .season-usage-summary__section:first-child {\n padding-top: 0;\n }\n .season-usage-summary--single .season-usage-summary__section:last-child {\n padding-bottom: 0;\n }\n }\n .season-usage-section {\n overflow: visible !important;\n padding-bottom: clamp(2.5rem, 6vw, 4.5rem) !important;\n padding-top: 0 !important;\n margin-bottom: 0;\n }\n .ef-content--season-usage {\n overflow: visible !important;\n }\n .ef-content--season-usage > .ticket-type-nav--compact {\n margin-bottom: calc((.3375rem + .1vw
1) * -6) !important;\n }\n .season-usage-responsive-matrix {\n --season-grid-head-h: 4.35rem;\n --season-grid-head-total: calc(var(--season-grid-head-h) + var(--season-grid-quote-h));\n --season-grid-quote-h: 2.5rem;\n --season-match-count: 17;\n --season-match-w: 3.25rem;\n --season-place-w: 11rem;\n --season-rate-w: 4.75rem;\n --season-grid-min-w: calc(\n var(--season-place-w) + var(--season-rate-w) +\n (var(--season-match-count) * var(--season-match-w))\n );\n }\n .season-usage-responsive-matrix .season-usage-toolbar {\n align-items: center;\n display: grid;\n gap: 1rem;\n grid-template-columns: minmax(0, 1fr) auto;\n }\n .season-usage-responsive-matrix .season-usage-toolbar__filters {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n .season-usage-responsive-matrix .season-usage-sort {\n grid-column: 2;\n grid-row: 1;\n justify-self: end;\n }\n .season-usage-responsive-matrix .season-usage-grid-wrap {\n display: block !important;\n margin-top: calc(0rem - var(--season-grid-head-total));\n max-height: none;\n overflow-x: auto;\n padding-bottom: .35rem;\n width: 100%;\n }\n .season-usage-responsive-matrix .season-usage-grid {\n --season-grid-head-h: 4.35rem;\n --season-grid-quote-h: 2.5rem;\n margin-left: 0;\n margin-right: 0;\n min-width: max(100%, var(--season-grid-min-w));\n table-layout: fixed;\n width: 100%;\n }\n .season-usage-grid__column--place {\n width: var(--season-place-w);\n }\n .season-usage-grid__column--rate {\n width: var(--season-rate-w);\n }
1\n .season-usage-grid__column--match {\n width: calc(\n (100% - var(--season-place-w) - var(--season-rate-w)) /\n var(--season-match-count)\n );\n }\n .season-usage-matrix-viewport {\n box-sizing: border-box;\n width: 100%;\n }\n .season-usage-matrix-frame {\n position: relative;\n }\n .season-usage-sticky-head {\n background: var(--season-surface);\n height: var(--season-grid-head-total);\n overflow: hidden;\n pointer-events: none;\n position: sticky;\n top: var(--season-navigation-offset, 0px);\n z-index: 8;\n }\n .season-usage-sticky-head__scroller {\n height: 100%;\n overflow: hidden;\n width: 100%;\n }\n .season-usage-grid-wrap .season-usage-grid thead {\n opacity: 0;\n }\n .season-usage-grid-wrap .season-usage-grid thead th {\n position: static !important;\n top: auto !important;\n }\n .season-usage-sticky-head__content {\n display: grid;\n grid-template-rows: var(--season-grid-head-h) var(--season-grid-quote-h);\n margin-left: 0;\n margin-right: 0;\n min-width: max(100%, var(--season-grid-min-w));\n width: 100%;\n }\n .season-usage-sticky-head__cell {\n align-items: center;\n background: var(--season-surface);\n box-shadow: inset 0 -1px 0 var(--season-line);\n color: var(--season-muted);\n display: flex;\n font-weight: 700;\n justify-content: flex-start;\n padding: .55rem .35rem .45rem;\n }\n .season-usage-sticky-head__cell--place {\n grid-column: 1;\n grid-row: 1;\n left: 0;\n position: sticky;\n z-index: 3;\n }\n .season-usage-sticky-head__cell--rate {\n grid-column: 2;\n grid-row: 1;\n justify-content: flex-end;\n left: var(--season-place-w);\n position: sticky;\n z-index: 4;\n }\n .season-usage-sticky-head__cell--match {\n grid-row: 1;\n justify-content: center;\n }\n .season-usage-sticky-head__cell--quote-label {\n grid-column: 1 / span 2;\n grid-row: 2;\n left: 0;\n position: sticky;\n z-index: 3;\n }\n .season-usage-sticky-head__cell--quote {\n background: var(--season-soft);\n grid-row: 2;\n justify-content: center;\n }\n .season-usage-sticky-head [aria-sort="ascending"] .season-usage-grid__sortable::after {\n content: " â";\n }\n .season-usage-sticky-head [aria-sort="descending"] .season-usage-grid__sortable::after {\n content: " â";\n }\n .season-usage-sticky-head [aria-sort="none"] .season-usage-grid__sortable::after {\n content: " â";\n opacity: .35;\n }\n .season-usage-responsive-matrix .season-usage-grid tbody tr:nth-child(even) td {\n background-color: var(--season-subtle);\n }\n .season-usage-responsive-matrix .season-usage-grid tbody tr {\n cursor: pointer;\n touch-action: pan-x pan-y;\n }\n .season-usage-responsive-matrix .season-usage-grid tbody td.season-usage-grid__match {\n z-index: 0;\n }\n .season-usage-responsive-matrix .season-usage-grid__meta--place {\n background-color: var(--season-surface);\n left: 0;\n max-width: var(--season-place-w);\n min-width: var(--season-place-w);\n width: var(--season-place-w);\n z-index: 2;\n }\n .season-usage-responsive-matrix .season-usage-grid__meta--rate {\n background-clip: border-box;\n background-color: var(--season-surface);\n left: var(--season-place-w);\n max-width: var(--season-rate-w);\n min-width: var(--season-rate-w);\n padding-right: .65rem;\n width: var(--season-rate-w);\n z-index: 3;\n }\n .season-usage-responsive-matrix .season-usage-grid__meta--rate::after {\n background: var(--season-line);\n bottom: 0;\n content: "";\n pointer-events: none;\n position: absolute;\n right: -1px;\n top: 0;\n width: 1px;\n }\n .season-usage-responsive-matrix .season-usage-grid__meta--sticky-group {\n max-width: calc(var(--season-place-w) + var(--season-rate-w));\n min-width: calc(var(--season-place-w) + var(--season-rate-w));\n width: calc(var(--season-place-w) + var(--season-rate-w));\n }\n .season-usage-responsive-matrix .season-usage-grid__match {\n min-width: var(--season-match-w);\n width: auto;\n }\n .season-usage-responsive-matrix .season-usage-grid__quote-cell {\n vertical-align: middle;\n }\n .season-usage-responsive-matrix .season-usage-quote {\n height: auto;\n justify-content: center;\n }\n .season-usage-responsive-matrix .season-usage-quote__rate {\n margin: 0;\n }\n .season-usage-place {\n align-items: center;\n display: grid;\n gap: .5rem;\n grid-template-columns: minmax(0, 1fr) 2rem;\n }\n .season-usage-place > span {\n display: grid;\n grid-template-rows: 1rem .85rem;\n min-width: 0;\n }\n .season-usage-row-primary,\n .season-usage-row-secondary {\n align-items: center;\n display: flex !important;\n line-height: 1;\n margin: 0 !important;\n min-width: 0;\n }\n .season-usage-row-primary { height: 1rem; }\n .season-usage-row-secondary { height: .85rem; }\n .season-usage-place__value {\n display: block;\n font-weight: 700;\n white-space: nowrap;\n }\n .season-usage-place__holder {\n color: var(--season-muted);\n display: block;\n font-size: .75rem;\n line-height: 1.25;\n margin-top: .12rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .season-usage-place__info {\n align-items: center;\n background: transparent;\n border: 0;\n color: var(--season-muted);\n cursor: pointer;\n display: inline-flex;\n height: 2rem;\n justify-content: center;\n padding: 0;\n width: 2rem;\n }\n .season-usage-place__info:hover,\n .season-usage-place__info:focus-visible { color: var(--season-red); }\n .season-usage-rate-value,\n .season-usage-rate-count {\n font-variant-numeric: tabular-nums;\n justify-content: flex-end;\n text-align: right;\n white-space: nowrap;\n }\n .season-usage-rate-value { font-weight: 700; }\n .season-usage-rate-count {\n color: var(--season-muted);\n font-size: .72rem;\n }\n .season-usage-as-of {\n color: var(--season-muted);\n margin: -.3rem 0 .55rem;\n text-align: right;\n }\n .season-usage-details__facts {\n align-items: start;\n display: grid;\n gap: .75rem;\n grid-template-columns: 1.05fr .7fr .7fr 1.2fr;\n margin: 1rem 0 .85rem;\n }\n .season-usage-details {\n --season-bar-gray: var(--color-green);\n --season-line: color-mix(in srgb, var(--color-front) 12%, transparent);\n --season-muted: var(--tone-front-500);\n --season-pill-inset: .28rem;\n --season-pill-w: 2.5rem;\n --season-red: var(--color-accent);\n --season-show: var(--color-green);\n max-width: 100%;\n }\n .season-usage-details__header {\n align-items: baseline;\n display: flex;\n gap: 1rem;\n justify-content: space-between;\n }\n .season-usage-details__header .ef-heading {\n margin: 0;\n min-width: 0;\n }\n .season-usage-details__close {\n align-items: center;\n background: transparent;\n border: 0;\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n flex: 0 0 auto;\n height: 1em;\n justify-content: center;\n line-height: 1;\n margin: 0;\n padding: 0;\n width: 1em;\n }\n .season-usage-details__close .ef-icon {\n display: block;\n }\n .season-usage-details .season-usage-status--show {\n color: var(--season-show) !important;\n }\n .season-usage-details__fact span,\n .season-usage-details__holder span,\n .season-usage-details__metric span {\n color: var(--season-muted);\n display: block;\n font-weight: 600;\n margin-bottom: .2rem;\n }\n .season-usage-details__fact strong,\n .season-usage-details__metric-rate {\n display: block;\n font-size: 1.05rem;\n line-height: 1.15;\n white-space: nowrap;\n }\n .season-usage-details__metric-count {\n color: var(--season-muted);\n display: block;\n font-size: .72rem;\n line-height: 1.15;\n margin-top: .15rem;\n white-space: nowrap;\n }\n .season-usage-details__holder {\n border-bottom: 1px solid var(--season-line);\n border-top: 1px solid var(--season-line);\n margin: .85rem 0;\n padding: .75rem 0;\n }\n .season-usage-details__games { margin-top: 1rem; }\n .season-usage-details__games .ef-heading { margin-bottom: .5rem; }\n .season-usage-details__game {\n align-items: center;\n border-bottom: 1px solid var(--season-line);\n display: grid;\n gap: .65rem;\n grid-template-columns: 3.25rem 1.7rem minmax(0, 1fr) 2.75rem;\n min-height: 2.75rem;\n }\n .season-usage-details__game time {\n color: var(--season-muted);\n font-variant-numeric: tabular-nums;\n }\n .season-usage-details__game .season-usage-team-logo {\n height: 1.55rem;\n width: 1.55rem;\n }\n .season-usage-details__game .season-usage-status { justify-self: center; }\n .season-usage-details .season-usage-status--show-pill {\n background: var(--season-show);\n }\n @media (max-width: 47.9375rem) {\n .season-usage-summary--multi {\n gap: .65rem;\n padding: .85rem 0;\n }\n .season-usage-summary--multi .season-usage-summary__hero { gap: .5rem; }\n .season-usage-summary--multi .season-usage-summary__number {\n font-size: 2.15rem;\n }\n .season-usage-progress { height: .6rem; }\n .season-usage-summary--multi .season-usage-summary__copy {\n margin-top: .55rem;\n }\n .season-usage-summary--multi .season-usage-summary__stats {\n align-items: center;\n display: flex;\n gap: .6rem 1.25rem;\n justify-content: space-between;\n padding-top: .7rem;\n }\n .season-usage-summary--multi .season-usage-balance__item {\n display: flex;\n flex: 1 1 auto;\n gap: .45rem;\n margin: 0;\n }\n .season-usage-summary--multi .season-usage-balance__item strong {\n margin-left: auto;\n }\n .season-usage-responsive-matrix .season-usage-toolbar {\n align-items: stretch;\n display: flex;\n gap: .9rem;\n }\n .season-usage-responsive-matrix .season-usage-toolbar__filters {\n align-items: flex-start;\n flex: 1 1 100%;\n }\n .season-usage-responsive-matrix .season-usage-sort {\n width: 100%;\n }\n .season-usage-responsive-matrix {\n --season-match-w: 3rem;\n --season-place-w: 8.25rem;\n --season-rate-w: 4rem;\n }\n .season-usage-responsive-matrix .season-usage-grid__match {\n min-width: var(--season-match-w);\n width: auto;\n }\n .season-usage-responsive-matrix .season-usage-grid th,\n .season-usage-responsive-matrix .season-usage-grid td { padding: .4rem .25rem; }\n .season-usage-place { gap: .15rem; grid-template-columns: minmax(0, 1fr) 1.8rem; }\n .season-usage-place__value { font-size: .78rem; }\n .season-usage-place__holder { font-size: .68rem; }\n .season-usage-place__info { height: 2rem; width: 2rem; }\n .season-usage-rate-value { font-size: .8rem; }\n .season-usage-rate-count { font-size: .66rem; }\n .season-usage-legend { gap: .8rem 1rem; }\n .season-usage-details__facts {\n gap: .55rem;\n grid-template-columns: 1.05fr .65fr .65fr 1.2fr;\n }\n .season-usage-details__game {\n gap: .5rem;\n grid-template-columns: 3rem 1.5rem minmax(0, 1fr) 2.75rem;\n }\n }\n @media (prefers-reduced-motion: reduce) {\n .season-usage-progress__value { transition: none; }\n }\n '),le=e=>{let{status:n,streak:s=null,streakMode:t="none",showPillAlways:o=!1,reserveSpace:r=!1,t:i}=e;if("future"===n)return r?a.createElement("span",{"aria-hidden":"true",className:"season-usage-status season-usage-status--future"}):null;const l="show"===n&&"show"===t||"show"===n&&o,m="noShow"===n&&"noShow"===t,c=(l||m)&&s&&!o?" season-usage-status--streak-"+s:l||m?" season-usage-status--streak-single":"";let u="unknown";"show"===n?u=l?"show-pill":"show":"noShow"===n&&(u=m?"no-show-pill":"no-show");const g=m&&s&&"single"!==s?i("Shop.Account.Tickets.seasonUsageLegendNoShowStreak"):l&&s&&"single"!==s?i("Shop.Account.Tickets.seasonUsageLegendShowStreak"):oe(n,i);return a.createElement("span",{"aria-label":g,className:"season-usage-status season-usage-status--"+u+c,role:"img"}
1,"show"===n?"â":"noShow"===n?"Ã":"â")},me=e=>a.createElement("div",{className:"season-usage-grid__mark"},a.createElement(le,e)),ce=e=>{let{streakMode:n="none",showPillAlways:s=!1,t:t}=e;return a.createElement("div",{className:"season-usage-legend"},a.createElement("span",{className:"season-usage-legend__item ef-text--xs"},a.createElement(le,{status:"show",streakMode:n,showPillAlways:s,t:t}),oe("show",t)),"show"!==n||s?null:a.createElement("span",{className:"season-usage-legend__item ef-text--xs"},a.createElement("span",{"aria-hidden":"true",className:"season-usage-legend__streak"},a.createElement(le,{status:"show",streak:"start",streakMode:"show",t:t}),a.createElement(le,{status:"show",streak:"mid",streakMode:"show",t:t}),a.createElement(le,{status:"show",streak:"end",streakMode:"show",t:t})),t("Shop.Account.Tickets.seasonUsageLegendShowStreak")),a.createElement("span",{className:"season-usage-legend__item ef-text--xs"},a.createElement(le,{status:"noShow",streakMode:n,showPillAlways:s,t:t}),oe("noShow",t)),a.createElement("span",{className:"season-usage-legend__item ef-text--xs"},a.createElement(le,{status:"unknown",streakMode:n,t:t}),oe("unknown",t)))},ue=e=>{let{attendance:n}=e;return a.createElement("div",{"aria-hidden":"true",className:"season-usage-progress"},a.createElement("div",{className:"season-usage-progress__value",style:{width:(n||0)+"%"}}))},ge=e=>{let{counts:n,games:s,rateMode:t="show",t:o}=e;const r=ne(n,t),i=n.show+n.noShow,l=i+n.unknown,m=(e=>{let n=0;for(let s=e.length-1;s>=0;s-=1){const a=G(e[s]);if("unknown"!==a){if("show"!==a)break;n+=1}}return n})(s),c=(e=>{for(let n=e.length-1;n>=0;n-=1)if("noShow"===G(e[n]))return e[n];return null})(s),u=c?K(c).team:null;return a.createElement("section",{"aria-label":o("Shop.Account.Tickets.seasonUsageSummary"),className:"season-usage-card season-usage-summary--single"},a.createElement("div",{className:"season-usage-summary__section"},a.createElement("span",{className:"season-usage-summary__label ef-text--xs"}
1,"noShow"===t?o("Shop.Account.Tickets.seasonUsageNoShowRateAfter",{settled:i,total:l}):o("Shop.Account.Tickets.seasonUsageAttendanceAfter",{count:i})),a.createElement("div",{className:"season-usage-summary__number"},null==r?"â":r+" %"),a.createElement("div",{className:"season-usage-summary__meter"},a.createElement(ue,{attendance:r}),a.createElement("p",{className:"season-usage-summary__copy ef-text--s"},i?o("Shop.Account.Tickets.seasonUsageUsedOf",{attended:n.show,total:i}):o("Shop.Account.Tickets.seasonUsageNoReliableData")))),a.createElement("div",{className:"season-usage-summary__section"},a.createElement("span",{className:"season-usage-summary__label ef-text--xs"},o("Shop.Account.Tickets.seasonUsageCurrentStreak")),a.createElement("div",{className:"season-usage-streak"},a.createElement("strong",null,m),a.createElement("span",null,o("Shop.Account.Tickets.seasonUsageGamesInARow"))),a.createElement("p",{className:"season-usage-summary__copy ef-text--s"},c?o("Shop.Account.Tickets.seasonUsageLastNoShowAt",{opponent:u,date:R(c.EventDate)}):o("Shop.Account.Tickets.seasonUsageNoNoShowYet"))),a.createElement("div",{className:"season-usage-summary__section"},a.createElement("span",{className:"season-usage-summary__label ef-text--xs"},o("Shop.Account.Tickets.seasonUsageSeasonBalance")),a.createElement("div",{className:"season-usage-summary__stats"},a.createElement("div",{className:"season-usage-balance__item season-usage-balance__item--show"},a.createElement("span",null,o("Shop.Account.Tickets.seasonUsageShow")),a.createElement("strong",null,n.show)),a.createElement("div",{className:"season-usage-balance__item season-usage-balance__item--no-show"},a.createElement("span",null,o("Shop.Account.Tickets.seasonUsageNoSh
1ow")),a.createElement("strong",null,n.noShow)))))},de=e=>{let{counts:n,settledGames:s,locale:t,rateMode:o="show",t:r}=e;const i=ne(n,o),l=n.show+n.noShow,m=n.show;return a.createElement("section",{"aria-label":r("Shop.Account.Tickets.seasonUsageSummary"),className:"season-usage-card season-usage-summary--multi"},a.createElement("div",{className:"season-usage-summary__usage"},a.createElement("span",{className:"season-usage-summary__label ef-text--xs"},"noShow"===o?r("Shop.Account.Tickets.seasonUsageNoShowRateAfter",{settled:s,total:totalHome}):r("Shop.Account.Tickets.seasonUsageAttendanceAfter",{count:s})),a.createElement("div",{className:"season-usage-summary__hero"},a.createElement("div",{className:"season-usage-summary__number"},null==i?"â":i+" %"),a.createElement("div",{className:"season-usage-summary__meter"},a.createElement(ue,{attendance:i}),a.createElement("p",{className:"season-usage-summary__copy ef-text--s"},l?r("Shop.Account.Tickets.seasonUsageCardsUsedOf",{used:L(m,t),possible:L(l,t)}):r("Shop.Account.Tickets.seasonUsageNoReliableData"))))),a.createElement("div",{className:"season-usage-summary__stats"},a.createElement("div",{className:"season-usage-balance__item season-usage-balance__item--show"},a.createElement("span",null,r("Shop.Account.Tickets.seasonUsageShow")),a.createElement("strong",null,L(n.show,t))),a.createElement("div",{className:"season-usage-balance__item season-usage-balance__item--no-show"},a.createElement("span",null,r("Shop.Account.Tickets.seasonUsageNoSh
1ow")),a.createElement("strong",null,L(n.noShow,t)))))},he=e=>{let{games:n,streakMode:s="none",showPillAlways:t=!1,t:o}=e;const r=n.map(e=>G(e)),i=t?r.map(()=>null):re(r,s);return a.createElement("section",{className:"season-usage-card"},a.createElement("div",{className:"season-usage-matchboard"},a.createElement("p",{className:"season-usage-matchboard__title ef-text--xs"},o("Shop.Account.Tickets.seasonUsageSeasonProgress")),a.createElement("div",{className:"season-usage-matchboard__scroll"},a.createElement("div",{className:"season-usage-matchboard__matches",style:{gridTemplateColumns:"repeat("+n.length+", minmax(2.7rem, 1fr))"}},n.map((e,n)=>{const l=K(e),m=r[n],c=i[n];return a.createElement("article",{className:"season-usage-match"+(c&&"single"!==c?" season-usage-match--streak-"+c:""),key:I(e)},a.createElement(X,{alt:l.team,src:l.logo}),a.createElement(le,{status:m,streak:c,streakMode:s,showPillAlways:t,reserveSpace:!0,t:o}),a.createElement("time",{className:"season-usage-match__date ef-text--xs"},R(e.EventDate)))})))))},pe=e=>{let{row:n,viewConfig:s,t:t}=e;const o=[].concat((0,f.A)(((e,n)=>[n("Shop.Account.Tickets.Block")+" "+Z(e,"BlockTitle"),n("Shop.Account.Tickets.Row")+" "+Z(e,"BlockRow"),n("Shop.Account.Tickets.Seat")+" "+Z(e,"BlockSeat")])(n.contract,t)),[O(n.contract,"natural")]).filter(Boolean).join(" · ");return a.createElement(a.Fragment,null,a.createElement("p",{className:"season-usage-subtitle"},o),a.createElement(ge,{counts:n.counts,games:n.games,rateMode:s.rateMode,t:t}),a.createElement(he,{games:n.games,streakMode:s.streakMode,showPillAlways:s.showPillAlways||!1,t:t}),a.createElement(ce,{streakMode:s.streakMode,showPillAlways:s.showPillAlways||!1,t:t}))},fe=(e,n)=>n.column===e?"asc"===n.direction?"ascending":"descending":"none",we=e=>{let{column:n,onSort:s,children:t}=e;return a.createElement("button",{className:"season-usage-grid__sortable",onClick:()=>s(n),type:"button"},t)},_e=(e,n)=>{let s=0,a=0;n.forEach(n=>{const t=n.games.find(n=>I(n)===I(e));if(!t)return;const o=G(t);"show"===o&&(s+=1),"noShow"===o&&(a+=1)});const t=s+a;return t?{show:s,noShow:a,settled:t,showRate:Math.round(s/t*100),noShowRate:Math.round(a/t*100)}:null},be=e=>{let{filter:n,filters:s,onFilterChange:t,onSortChange:o,sort:r,sortOptions:i,t:l}=e;return a.createElement("div",{className:"season-usage-toolbar"},a.createElement("div",{className:"season-usage-toolbar__filters"},a.createElement("span",{className:"season-usage-toolbar__label",id:"season-usage-tickets-label"},l("Shop.Account.Tickets.seasonUsageTicketsToShow")),a.createElement("ul",{"aria-labelledby":"season-usage-tickets-label",className:"season-usage-filter-list"},s.map(e=>a.createElement("li",{className:"season-usage-filter-item",key:e.id},a.createElement("button",{"aria-pressed":n===e.id,className:"season-usage-filter-button",onClick:()=>t(e.id),type:"button"},a.createElement("span",null,e.label),a.createElement("span",{className:"season-usage-filter-button__count"},e.count)))))),a.createElement("label",{className:"ef-form-item ef-form-item--small ef-form-item--select season-usage-sort"},a.createElement("span",{className:"ef-form-item__label season-usage-sort__label"},l("Shop.Account.Tickets.seasonUsageSortPrefix")),a.createElement("span",{className:"ef-form-item__field-wrapper season-usage-sort__field-wrapper"},a.createElement("select",{className:"ef-form-item__field",onChange:e=>o(e.target.value),value:r.column},i.map(e=>{let[n,s]=e;return a.createElement("option",{key:n,value:n},s)})))))},ve=e=>{let{games:n,onClose:s,row:t,t:o}=e;const r=se(t.counts),i=new Map(t.games.map(e=>[I(e),e]));return a.createElement("div",{className:"season-usage-details"},a.createElement("div",{className:"season-usage-details__header"},a.createElement("h3",{className:"ef-heading ef-heading--4"},o("Shop.Account.Tickets.seasonUsagePlaceDetails")),s?a.createElement("button",{"aria-label":o("Shop.Account.Tickets.seasonUsageCloseDetails"),className:"season-usage-details__close",onClick:s,title:o("Shop.Account.Tickets.seasonUsageCloseDetails"),type:"button"},a.createElement("svg",{"aria-hidden":"true",className:"ef-icon",height:"16",width:"16"},a.createElement("use",{href:"#ef-icon--x-16",xlinkHref:"#ef-icon--x-16"}))):null),a.createElement("div",{className:"season-usage-details__facts season-usage-details__facts--with-rate"},a.createElement("div",{className:"season-usage-details__fact"},a.createElement("span",{className:"season-usage-details__fact-label ef-text--xs"},o("Shop.Account.Tickets.Block")),a.createElement("strong",null,t.block)),a.createElement("div",{className:"season-usage-details__fact"},a.createElement("span",{className:"season-usage-details__fact-label ef-text--xs"},o("Shop.Account.Tickets.Row")),a.createElement("strong",null,t.row)),a.createElement("div",{className:"season-usage-details__fact"},a.createElement("span",{className:"season-usage-details__fact-label ef-text--xs"},o("Shop.Account.Tickets.Seat")),a.createElement("strong",null,t.seat)),a.createElement("div",{className:"season-usage-details__metric"},a.createElement("span",{className:"season-usage-details__fact-label ef-text--xs"},o("Shop.Account.Tickets.seasonUsageHolderRate")),a.createElement("strong",{className:"season-usage-details__metric-rate"},null==r.rate?"â":r.rate+" %"),a.createElement("small",{className:"season-usage-details__metric-count"},r.label))),t.recipient?a.createElement("div",{className:"season-usage-details__holder"},a.createElement("span",{className:"season-usage-details__fact-label ef-text--xs"},o("Shop.Account.Tickets.seasonUsageTicketHolder")),a.createElement("strong",null,t.recipient)):null,a.createElement("div",{className:"season-usage-details__games"},a.createElement("h4",{className:"ef-heading ef-heading--5"},o("Shop.Account.Tickets.seasonUsageGamesShort")),n.map(e=>{const n=i.get(I(e)),s=V(e,null)?"future":n?G(n):"unknown",t=K(e);return a.createElement("div",{className:"season-usage-details__game",key:I(e)},a.createElement("time",{className:"ef-text--xs",dateTime:e.EventDate||void 0},R(e.EventDate)),a.createElement(X,{src:t.logo}),a.createElement("span",null,t.team),a.createElement(le,{status:s,showPillAlways:!0,t:o}))})))},ke=e=>{let{games:n,onClose:s,row:t,t:o}=e;return t?a.createElement(z(),{ariaHideApp:!1,isOpen:Boolean(t),onRequestClose:s,overlayClassName:" ",style:{overlay:{backgroundColor:"rgba(0, 0, 0, 0.75)",zIndex:109},content:{background:"transparent",border:"none",inset:0,overflow:"visible",padding:0,zIndex:110}}},a.createElement("div",{className:"ef-modal ef-modal--m --is-open"},a.createElement("div",{className:"ef-modal__inner"},a.createElement(ve,{games:n,onClose:s,row:t,t:o})))):null},ye=e=>{let{gameRates:n,onSort:s,sort:t,t:o}=e;return a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",{"aria-sort":fe("seat",t),className:"season-usage-grid__meta season-usage-grid__meta--place"},a.createElement(we,{column:"seat",onSort:s},o("Shop.Account.Tickets.seasonUsageSeating"))),a.createElement("th",{"aria-sort":fe("rate",t),className:"season-usage-grid__meta season-usage-grid__meta--rate"},a.createElement(we,{column:"rate",onSort:s},o("Shop.Account.Tickets.seasonUsageHolderRate"))),n.map(e=>{let{game:n}=e;const s=K(n);return a.createElement("th",{className:"season-usage-grid__match",key:I(n)},a.createElement("div",{className:"season-usage-grid__match-head"},a.createElement(X,{alt:s.team,src:s.logo}),a.createElement("time",{dateTime:n.EventDate||void 0},R(n.EventDate))))})),a.createElement("tr",null,a.createElement("th",{className:"season-usage-grid__meta--sticky-group",colSpan:2},a.createElement("span",{className:"season-usage-grid__quote-label ef-text--xs"},o("Shop.Account.Tickets.seasonUsageRatePerGame"))),n.map(e=>{let{game:n,stats:s}=e;const t=V(n,s),r=s?s.showRate:null;return a.createElement("th",{className:"season-usage-grid__quote-cell season-usage-grid__match",key:"quote-"+I(n)},t?null:s?a.createElement("div",{className:"season-usage-quote"},a.createElement("span",{className:"season-usage-quote__rate"},r," %")):a.createElement(le,{status:"unknown",t:o}))})))},xe=e=>{let{gameRates:n,sort:s,t:t}=e;return a.createElement("div",{className:"season-usage-sticky-head__content",style:{gridTemplateColumns:"var(--season-place-w) var(--season-rate-w) repeat("+n.length+", minmax(var(--season-match-w), 1fr))"}},a.createElement("div",{"aria-sort":fe("seat",s),className:"season-usage-sticky-head__cell season-usage-sticky-head__cell--place ef-text--xs"},a.createElement("span",{className:"season-usage-grid__sortable"},t("Shop.Account.Tickets.seasonUsageSeating"))),a.createElement("div",{"aria-sort":fe("rate",s),className:"season-usage-sticky-head__cell season-usage-sticky-head__cell--rate ef-text--xs"},a.createElement("span",{className:"season-usage-grid__sortable"},t("Shop.Account.Tickets.seasonUsageHolderRate"))),n.map((e,n)=>{let{game:s}=e;const t=K(s);return a.createElement("div",{className:"season-usage-sticky-head__cell season-usage-sticky-head__cell--match ef
1-text--xs",key:"sticky-"+I(s),style:{gridColumn:n+3}},a.createElement("div",{className:"season-usage-grid__match-head"},a.createElement(X,{src:t.logo}),a.createElement("time",{dateTime:s.EventDate||void 0},R(s.EventDate))))}),a.createElement("div",{className:"season-usage-sticky-head__cell season-usage-sticky-head__cell--quote-label ef-text--xs"},a.createElement("span",{className:"season-usage-grid__quote-label ef-text--xs"},t("Shop.Account.Tickets.seasonUsageRatePerGame"))),n.map((e,n)=>{let{game:s,stats:o}=e;const r=V(s,o),i=o?o.showRate:null;return a.createElement("div",{className:"season-usage-sticky-head__cell season-usage-sticky-head__cell--quote ef-text--xs",key:"sticky-quote-"+I(s),style:{gridColumn:n+3}},r?null:o?a.createElement("span",{className:"season-usage-quote__rate"},i," %"):a.createElement(le,{status:"unknown",t:t}))}))},Ee=e=>{let{rows:n,locale:s,t:t}=e;const{0:o,1:r}=(0,a.useState)("all"),{0:i,1:l}=(0,a.useState)({column:"seat",direction:"asc"}),{0:m,1:c}=(0,a.useState)(null),{0:u,1:g}=(0,a.useState)(null),d=(0,a.useRef)(null),h=(0,a.useRef)(null),p=(0,a.useRef)(null),f=(0,a.useRef)(null),{rateMode:w,streakMode:_}=B,b=n.some(e=>Boolean(e.recipient));ae(p);const v=(0,a.useMemo)(()=>Q(n),[n]),k=(0,a.useMemo)(()=>v.map(e=>({game:e,stats:_e(e,n)})),[v,n]),y=k.filter(e=>{let{game:n,stats:s}=e;return Boolean(s&&!V(n,s))}).length,x=(0,a.useMemo)(()=>n.reduce((e,n)=>({show:e.show+n.counts.show,noShow:e.noShow+n.counts.noShow,unknown:e.unknown+n.counts.unknown}),{show:0,noShow:0,unknown:0}),[n]),E=(0,a.useMemo)(()=>{const e={all:n.length,perfect:0,light:0,medium:0,high:0,none:0};return n.forEach(n=>{const{show:s,noShow:a}=n.counts;s>0&&0===a&&(e.perfect+=1),a>=1&&a<=3&&(e.light+=1),a>=4&&a<=8&&(e.medium+=1),a>8&&(e.high+=1),0===s&&a>0&&(e.none+=1)}),e},[n]),S=[["all","seasonUsageFilterAllTickets"],["perfect","seasonUsageFilterAlwaysThere"],["light","seasonUsageFilterFreeOneToThree"],["medium","seasonUsageFilterFreeFourToEight"],["high","seasonUsageFilterFreeMoreThanEight"],["none","seasonUsageFilterNeverUsed"]].map(e=>{let[n,s]=e;return{id:n,count:E[n],label:t("Shop.Account.Tickets."+s)}}),N=e=>"rate"===e||"show"===e||"noShow"===e?"desc":"asc",A=(0,a.useMemo)(()=>{const e=n.filter(e=>{const{show:n,noShow:s}=e.counts;return"perfect"===o?n>0&&0===s:"light"===o?s>=1&&s<=3:"medium"===o?s>=4&&s<=8:"high"===o?s>8:"none"!==o||0===n&&s>0}),s=e=>{var n;return"seat"===i.column?te(e):"recipient"===i.column?e.recipient:"show"===i.column?e.counts.show:"noShow"===i.column?e.counts.noShow:"rate"===i.column?null!==(n=se(e.counts).rate)&&void 0!==n?n:-1:te(e)};return e.sort((e,n)=>{const a=s(e),t=s(n),o="number"==typeof a&&"number"==typeof t?a-t:String(a).localeCompare(String(t),void 0,{numeric:!0,sensitivity:"base"});return"asc"===i.direction?o:-o})},[o,n,i]),T=(e,n)=>{var s;const a=f.current;f.current=null,a&&a.key===n.key&&(e.target.closest("button, a, input, select, textarea")||function(e,n){let{startX:s,startY:a,endX:t,endY:o,startScrollLeft:r,endScrollLeft:i}=e;return void 0===n&&(n=8),Math.hypot(t-s,o-a)<=n&&Math.abs(i-r)<1}(Object.assign({},a,{endX:e.clientX,endY:e.clientY,endScrollLeft:(null===(s=d.current)||void 0===s?void 0:s.scrollLeft)||0}))&&c(n))},z=[["seat",t("Shop.Account.Tickets.seasonUsageSortSeat")],["recipient",t("Shop.Account.Tickets.seasonUsageSortHolder")],["rate",t("Shop.Account.Tickets.seasonUsageHolderRate")],["show",t("Shop.Account.Tickets.seasonUsageShow")],["noShow",t("Shop.Account.Tickets.seasonUsageNoSh
1ow")]];return a.createElement("div",{className:"season-usage-responsive-matrix",ref:p,style:{"--season-match-count":v.length}},a.createElement(de,{counts:x,locale:s,rateMode:w,settledGames:y,t:t}),a.createElement(be,{filter:o,filters:S,onFilterChange:r,onSortChange:e=>l({column:e,direction:N(e)}),sort:i,sortOptions:z,t:t}),A.length?a.createElement("div",{className:"season-usage-matrix-viewport"},a.createElement("p",{className:"season-usage-as-of ef-text--xs",role:"status"},t("Shop.Account.Tickets.seasonUsageAsOf",{date:q(H())})),a.createElement("div",{className:"season-usage-matrix-frame"},a.createElement("div",{"aria-hidden":"true",className:"season-usage-sticky-head"},a.createElement("div",{className:"season-usage-sticky-head__scroller",ref:h},a.createElement(xe,{gameRates:k,sort:i,t:t}))),a.createElement("div",{className:"season-usage-grid-wrap",onScroll:e=>{const n=e.currentTarget;h.current&&(h.current.scrollLeft=n.scrollLeft)},ref:d},a.createElement("table",{className:"ef-data-table season-usage-grid"},a.createElement("colgroup",{className:"season-usage-grid__columns"},a.createElement("col",{className:"season-usage-grid__column--place"}),a.createElement("col",{className:"season-usage-grid__column--rate"}),k.map(e=>{let{game:n}=e;return a.createElement("col",{className:"season-usage-grid__column--match",key:"column-"+I(n)})})),a.createElement(ye,{gameRates:k,onSort:e=>l(n=>({column:e,direction:n.column===e&&"asc"===n.direction?"desc":N(e)})),sort:i,t:t}),a.createElement("tbody",null,A.map(e=>{const n=new Map(e.games.map(e=>[I(e),e])),s=k.map(e=>{let{game:s,stats:a}=e;if(V(s,a))return"future";const t=n.get(I(s));return t?G(t):"unknown"}),o=re(s,_),r=se(e.counts),i=e.block+" / "+e.row+" / "+e.seat;return a.createElement("tr",{key:e.key,onPointerCancel:()=>{f.current=null},onPointerDown:n=>((e,n)=>{var s;0===e.button&&(f.current={key:n.key,startX:e.clientX,startY:e.clientY,startScrollLeft:(null===(s=d.current)||void 0===s?void 0:s.scrollLeft)||0})})(n,e),onPointerUp:n=>T(n,e)},a.createElement("td",{className:"season-usage-grid__meta season-usage-grid__meta--place"},a.createElement("div",{className:"season-usage-place"},a.createElement("span",null,a.createElement("span",{className:"season-usage-place__value season-usage-row-primary"},i),a.createElement("span",{"aria-hidden":!b||!e.recipient,className:"season-usage-place__holder season-usage-row-secondary"},b&&e.recipient||"Â ")),a.createElement("button",{"aria-label":t("Shop.Account.Tickets.seasonUsageOpenDetails",{place:i}),className:"season-usage-place__info",onClick:()=>c(e),type:"button"},a.createElement("svg",{className:"ef-icon",height:"16",width:"16"},a.createElement("use",{href:"#ef-icon--info-16",xlinkHref:"#ef-icon--info-16"}))))),a.createElement("td",{className:"season-usage-grid__meta season-usage-grid__meta--rate"},a.createElement("span",{className:"season-usage-rate-value season-usage-row-primary"},null==r.rate?"â":r.rate+" %"),a.createElement("span",{className:"season-usage-rate-count season-usage-row-secondary"},r.label)),v.map((e,n)=>a.createElement("td",{className:"season-usage-grid__match"+(o[n]?" season-usage-grid__match--pill":""),key:I(e)},a.createElement(me,{status:s[n],streak:o[n],streakMode:_,t:t}))))}))))),a.createElement("div",{className:"season-usage-mobile-list"},A.map(e=>{const n=u===e.key,s=se(e.counts),o=new Map(e.games.map(e=>[I(e),e]));return a.createElement("div",{className:"season-usage-mobile-item",key:e.key},a.createElement("button",{"aria-expanded":n,className:"season-usage-mobile-item__header",onClick:()=>g(n?null:e.key),type:"button"},a.createElement("span",null,a.createElement("span",{className:"season-usage-mobile-item__seat"},e.block," / ",e.row," / ",e.seat),b?a.createElement("span",{className:"season-usage-mobile-item__holder"},e.recipient||"Â "):null),a.createElement("span",{className:"season-usage-mobile-item__rate"},a.createElement("span",{className:"season-usage-mobile-item__rate-value"},null==s.rate?"â":s.rate+" %"),a.createElement("span",{className:"season-usage-mobile-item__rate-count"},s.label))),n?a.createElement("div",{className:"season-usage-mobile-item__games"},k.map(e=>{let{game:n,stats:s}=e;const r=o.get(I(n)),i=V(n,s)?"future":r?G(r):"unknown",l=K(n);return a.createElement("div",{className:"season-usage-mobile-game",key:I(n)},a.createElement(X,{src:l.logo}),a.createElement("span",{className:"season-usage-mobile-game__status"},a.createElement(le,{status:i,streakMode:"none",t:t})),a.createElement("span",{className:"season-usage-mobile-game__team"},l.team),a.createElement("time",{className:"season-usage-mobile-game__date"},R(n.EventDate)))})):null)}))):a.createElement("div",{className:"season-usage-empty-filter",role:"status"},a.createElement("p",null,t("Shop.Account.Tickets.seasonUsageNoFilterResults"))),a.createElement(ce,{streakMode:_,t
1:t}),a.createElement(ke,{games:v,onClose:()=>c(null),row:m,t:t}))};var Se=e=>{let{isOrganization:n=!1,subscriberId:s="",subscriberName:t="",usageData:r}=e;const{t:i,i18n:l}=(0,o.B)(),m=l&&l.language||"de",c=(0,a.useMemo)(()=>Array.isArray(r&&r.items)?r.items:[],[r]),u=(0,a.useMemo)(()=>c.map((e,a)=>{const o=Array.isArray(e.games)?(0,f.A)(e.games).sort(W):[];return{key:j(e,a),contract:e,games:o,recipient:P(e,{isOrganization:n,subscriberId:s,subscriberName:t}),block:Z(e,"BlockTitle"),row:Z(e,"BlockRow"),seat:Z(e,"BlockSeat"),counts:ee(o)}}),[n,s,t,c]),g=1===u.length;return a.createElement("section",{className:"ef-content__block season-usage-section"},a.createElement(ie,null),a.createElement("div",{className:"ef-container ef-container--xl season-usage-dashboard season-usage-dashboard-container season-usage-dashboard--show-green"},u.length?g?a.createElement(pe,{row:u[0],t:i,viewConfig:B}):a.createElement(Ee,{locale:m,rows:u,t:i}):a.createElement("p",null,i("Shop.Account.Tickets.noSeasonUsageContracts"))))},Ne=s(84585),Ae=s(82592),Te=s(93220),ze=s(92065);const Be="https://relay.eintracht.de/hooks/noshow/prod/season-usage",Ue="https://relay.eintracht.de/hooks/noshow/prod/disclaimer-accept",Ce=e=>"ef_noshow_disclaimer_"+e;var De=e=>{let{pageContext:n}=e;const{website:s,website_lang:f,website_theme:w}=n,{t:_}=(0,o.B)(),{user:b,signinRedirect$:v,crossSigningActiveId:k}=(0,i.N)(),{accountData:y,getActiveSeasonTicketContracts$:x,getAddressBookEntries$:E,getSeasonTickets$:N,getSubscriptionSeasonTickets:A}=(0,m.A)(),{getAboContract$:T,getContractDetail$:z,getSubMasterData$:B}=(0,l.A)(),[U,C]=(0,r.A)(),{0:D,1:M}=(0,a.useState)(null),{0:R,1:q}=(0,a.useState)(!1),{0:L,1:O}=(0,a.useState)(null),{0:F,1:P}=(0,a.useState)(null),{0:j,1:I}=(0,a.useState)(!1),{0:H,1:G}=(0,a.useState)(null),{0:V,1:Y}=(0,a.useState)(null),$="function"==typeof k?k():null,J=y&&y.subjectId||$||null,{ready:K,allowed:X}=(0,ze.A)(),W=Boolean(J&&U[Ce(J)]),Q="undefined"!=typeof window&&(Z="production",void 0===(ee=window.location&&window.location.search)&&(ee=""),"production"!==Z&&"1"===new URLSearchParams(ee).get("fixture"));var Z,ee;null!==b||Q||v(),(0,a.useEffect)(()=>{"undefined"!=typeof window&&window.location&&window.location.pathname&&M(window.location.pathname)},[]),(0,a.useEffect)(()=>{!Q&&b&&J&&K&&(X||(0,t.navigate)("/account/tickets/day/"))},[Q,b,J,K,X]);const ne=async e=>{const n=await fetch(Ue,{method:"POST",headers:{Authorization:"Bearer "+b.token,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({event:e,path:"/account/tickets/season-usage"})}),s=await n.text();let a;try{a=s?JSON.parse(s):null}catch(t){a={raw:s}}if(!n.ok)throw new Error("Relay HTTP "+n.status+": "+("string"==typeof a?a:JSON.stringify(a)));return a},se=async()=>{const e=await fetch(Be,{method:"GET",headers:{Authorization:"Bearer "+b.token,Accept:"application/json"}}),n=await e.text();let s;try{s=n?JSON.parse(n):null}catch(a){s={raw:n}}if(!e.ok)throw new Error("Relay HTTP "+e.status+": "+("string"==typeof s?s:JSON.stringify(s)));return s},ae=async()=>{const[e,n]=await Promise.all([(0,Ne.D$)({getSubscriptionSeasonTickets:A,getActiveSeasonTicketContracts$:x,getSeasonTickets$:N,getSubMasterData$:B},J),Promise.resolve().then(()=>(0,Ne.yR)("function"==typeof E?E():null)).catch(()=>null)]);return(0,Ne.uL)(Object.assign({},e,{addressBook:n,selfContact:y}))},te=async e=>{const n=(0,Ne.mC)(e);if(!n.length)return[];return(await Promise.all(n.map(e=>{const n=J&&e.SubscriberId&&String(e.SubscriberId).toLowerCase()===String(J).toLowerCase();return(async(e,n)=>{const s=n=>Promise.resolve().then(()=>"function"==typeof n?(0,Ne.yR)(n(e)):null).then(Ne.D5).catch(()=>null);return await s(T)||(n?s(z):null)})(e.ContractId,n)}))).filter(Boolean)};(0,a.useEffect)(()=>{if(!(b&&J&&K&&X&&W))return;let e=!1;return(async()=>{q(!0),P(null),O(null);try{V!==J&&(await ne("access"),e||Y(J));const[n,s]=await Promise.all([se(),ae()]);let a=(0,Ne.ks)((0,Ne.hO)(n,J),s);const t=await te(a);t.length&&(a=(0,Ne.ks)(a,t)),e||O(a)}catch(n){e||P(n&&n.message||String(n))}finally{e||q(!1)}})(),()=>{e=!0}},[b,J,K,X,W]);const oe=_(L&&Array.isArray(L.items)&&1===L.items.length?"Shop.Account.Tickets.seasonUsageMySeasonTicket":"Shop.Account.Tickets.seasonUsagePageTitle"),re=Boolean(b)&&!J,ie=Boolean(b)&&Boolean(J)&&!K;return a.createElement(g.A,{website:s,website_lang:f,website_theme:w,subnavigation:(0,h.A)(s),submenuPartiallyActive:!0,additionalPageClassName:"ef-page--account"},a.createElement(d.A,{website_theme:w,website:s,title:oe}),a.createElement("main",{className:"ef-content ef-content--shop ef-content--shopping-home ef-content--season-usage"},a.createElement(Te.A,{compact:!0,currentSlug:D}),Q?a.createElement(Se,{isOrganization:!1,usageData:S}
1):void 0===b||re||ie||b&&J&&K&&!X?a.createElement(u.A,null):W?R?a.createElement(u.A,null):F?a.createElement("section",{className:"ef-content__block ef-content__block--order-review"},a.createElement("div",{className:"ef-container ef-container--l"},a.createElement("p",{role:"alert"},_("Shop.Account.Tickets.seasonUsageLoadError")))):a.createElement(Se,{isOrganization:Boolean(null==y?void 0:y.isOrganization),subscriberId:J,subscriberName:(null==y?void 0:y.organizationName)||"",usageData:L}):a.createElement(p,{onAccept:async()=>{if(b&&J&&X){I(!0),G(null);try{await ne("accepted"),C(Ce(J),(new Date).toISOString(),{path:"/",domain:".eintracht.de",maxAge:31536e3,sameSite:"lax"}),Y(J)}catch(e){G(e&&e.message||String(e))}finally{I(!1)}}},accepting:j,error:H}),a.createElement(c.A,{data:{shop_mode:"global"}})),a.createElement(Ae.A,null))}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.