:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scrollbar-gutter:stable;font-synthesis:none;color:#151515;background:#f2f2f2;font-family:LINE Seed JP,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f2f2f2;min-width:320px;margin:0}button,input,select{font:inherit}button,select,a{-webkit-tap-highlight-color:transparent}button{color:#151515;cursor:pointer;background:#fff;border:1px solid #b5b5b5;border-radius:0;min-height:38px;padding:0 12px}button:hover{background:#f1f1f1}button:focus-visible,a:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #0e78c4}button:disabled{cursor:default;opacity:.5}h1,h2,h3,p{margin:0}main{background:#fff;width:min(100%,1600px);min-height:100vh;margin:0 auto;padding:0 20px 56px}.app-header{color:#20272c;background:#fff;border-bottom:1px solid #d4d9dd;justify-content:space-between;align-items:center;gap:24px;min-height:92px;padding:18px 22px;display:flex}.brand-lockup{align-items:center;gap:14px;display:flex}.brand-name{color:#fff;background:#d71920;place-items:center;width:66px;height:46px;font-size:22px;font-weight:850;line-height:1;display:grid}.brand-lockup h1{color:#0e78c4;font-size:22px;font-weight:800;line-height:1.1}.brand-lockup p{color:#65717a;margin-top:4px;font-size:10px;font-weight:700}#last-updated{color:#65717a;white-space:nowrap;font-size:12px}.notification-settings{color:#151515;background:#f0f2f4;border-bottom:1px solid #d1d1d1;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex}.notification-settings h2{font-size:15px;font-weight:750}.notification-settings p{color:#666;margin-top:3px;font-size:12px}.notification-controls{border:0;align-items:center;gap:12px;min-width:0;margin:0;padding:0;display:flex}#test-notification-button{color:#0e78c4;white-space:nowrap;background:#fff;border-color:#d4dadd;border-radius:50px}.switch{flex:0 0 44px;width:44px;height:26px;display:inline-flex;position:relative}.switch input,.match-notification-control input{opacity:0;pointer-events:none;position:absolute}.switch-track,.match-switch-track{background:#9a9a9a;border-radius:13px;position:absolute;inset:0}.switch-track:after,.match-switch-track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .12s;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track,.match-notification-control input:checked+.match-switch-track{background:#00a87b}.switch input:checked+.switch-track:after{transform:translate(18px)}.switch input:disabled+.switch-track,.match-notification-control input:disabled+.match-switch-track{opacity:.45}.matches{color:#151515;padding:30px 22px 0}.match-toolbar{background:#e4e6e8;border-bottom:0;justify-content:space-between;align-items:flex-end;gap:10px;padding:16px 16px 0;display:flex}.match-tabs{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));align-items:flex-end;gap:8px;width:min(100%,620px);display:grid}.match-tab{color:#0e78c4;background:#f0f2f4;border:0;border-bottom:3px solid #0000;border-radius:3px 3px 0 0;min-width:0;height:56px;padding:0 4px;font-size:16px;font-weight:700}.match-tab:hover{color:#264259;background:#fff}.match-tab[aria-selected=true]{color:#264259;background:#fff;border-bottom-color:#0e78c4;font-weight:700}.match-tab span{color:#607989;font-variant-numeric:tabular-nums;background:0 0;border-radius:0;margin-left:5px;padding:0;font-size:11px;display:inline}.match-tab[aria-selected=true] span{color:#0e78c4}.match-tab:focus-visible{background:#fff;outline:0}.match-controls{align-items:center;gap:8px;padding:5px 8px 5px 0;display:flex}.match-sort-toolbar{justify-content:flex-end;padding:10px 16px 0;display:flex}.sort-select{background:#0e78c4;border-radius:50px;width:178px;min-width:0;position:relative}.sort-select:hover{background:#0a6baa}.sort-select:focus-within{outline-offset:2px;outline:2px solid #0e78c4}.sort-select .sort-select-button{color:#fff;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:50px;outline:0;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:7px;width:100%;min-height:38px;padding:0 11px;font-size:13px;font-weight:700;display:grid}.sort-select .sort-select-button:hover,.sort-select .sort-select-button:focus-visible{background:0 0}.sort-select-button svg:last-child{transition:transform .15s}.sort-select-button svg.is-open{transform:rotate(180deg)}.sort-options{z-index:30;background:#0e78c4;border:1px solid #0a6baa;width:100%;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.sort-option{color:#fff;min-height:38px;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.sort-option:hover,.sort-option:focus-visible{background:#ffffff24;outline:0}.sort-option[aria-selected=true]{background:#264259}#refresh-button{color:#0e78c4;background:#f0f2f4;border-color:#b8c1c7}#refresh-button:hover{color:#264259;background:#fff}.match-list{margin-top:22px}.match{color:#151515;background:#fff;border:1px solid #bcbcbc;border-radius:0;margin-bottom:18px;overflow:hidden}.live-match.match{background:#fff}.tournament-matches{min-width:0}.tournament-group+.tournament-group{margin-top:36px}.tournament-heading{color:#151515;border-bottom:3px solid #0e78c4;align-items:center;gap:12px;min-height:64px;margin-bottom:10px;padding:7px 4px;display:flex}.tournament-heading h2{font-size:16px;font-weight:700;line-height:1.35}.tournament-heading p{color:#555;margin-top:2px;font-size:11px}.tournament-logo{object-fit:contain;flex:0 0 52px;width:52px;height:52px}.tournament-logo-fallback{background:#ededed;flex:0 0 52px;place-items:center;width:52px;height:52px;font-size:12px;font-weight:800;display:grid}.match-tournament{color:#151515;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.match-tournament-logo{object-fit:contain;flex:0 0 28px;width:28px;height:28px}.match-tournament-logo-fallback{background:#ededed;flex:0 0 28px;place-items:center;width:28px;height:28px;font-size:9px;font-weight:800;display:grid}.match-tournament h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:400;line-height:1.3;overflow:hidden}.match-primary-row{background:#f6f8f9;border-bottom:1px solid #d9dfe2;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:7px 12px;display:flex}.match-state{align-items:center;min-width:0;display:flex}.match-header{background:#ffffffc2;border-bottom:1px solid #d9dfe2;justify-content:space-between;align-items:center;gap:16px;min-height:38px;padding:5px 12px;display:flex}.match-meta{color:#5a5a5a;flex-wrap:wrap;align-items:center;gap:5px 12px;min-width:0;font-size:11px;display:flex}.live-state{color:#fff;background:#0e78c4;border-radius:50px;padding:5px 10px;font-size:12px;font-weight:700}.match-time{color:#264259;background:0 0;padding:4px 0;font-size:14px;font-weight:700;display:inline-block}.match-actions{flex:none;align-items:center;gap:10px;display:flex}.match-notification-control{cursor:pointer;align-items:center;gap:6px;font-size:11px;font-weight:400;display:inline-flex;position:relative}.match-switch-track{border-radius:10px;width:34px;height:20px;display:block;position:relative}.match-switch-track:after{width:14px;height:14px}.match-notification-control input:checked+.match-switch-track:after{transform:translate(14px)}.switch input:focus-visible+.switch-track,.match-notification-control input:focus-visible+.match-switch-track{outline-offset:2px;outline:2px solid #151515}.matchup{grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr);align-items:start;gap:14px;min-height:158px;padding:18px 20px 14px;display:grid}.team{min-width:0;position:relative}.team-left{text-align:right}.team-right{text-align:left}.team-identity{flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:112px;display:flex}.team-left .team-identity{flex-direction:column}.country-flag{object-fit:contain;background:#fff;border-radius:0;flex:0 0 30px;width:44px;height:30px}.player-photos{order:-1;align-items:center;gap:8px;min-width:0;display:flex}.player-photo{object-fit:cover;object-position:top center;background:#eee;border:1px solid #d0d0d0;border-radius:50%;flex:0 0 72px;place-items:center;width:72px;height:72px;display:grid}.player-count-2 .player-photo{flex-basis:66px;width:66px;height:66px}.player-photo-placeholder{color:#555;background:#e7e7e7;font-size:22px;font-weight:700}.player-names{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 4px;min-width:0;margin-top:8px;font-size:15px;font-weight:400;line-height:1.45;display:flex}.player-name{white-space:nowrap;min-width:0}.player-separator{flex:none}.japanese-team .player-names{overflow-wrap:anywhere;font-size:19px;font-weight:700}.foreign-team .player-names{flex-wrap:nowrap;overflow:hidden}.foreign-team .player-name{text-overflow:ellipsis;overflow:hidden}.japanese-player{text-underline-offset:-.2em;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-line:underline;text-decoration-color:#ffe24a;text-decoration-thickness:.34em}.match-centre{text-align:center;align-self:center;place-items:center;min-width:0;display:grid}.versus{color:#757575;font-size:15px}.current-game{color:#6a6a6a;font-size:9px;font-weight:400}.current-score{font-variant-numeric:tabular-nums;grid-template-columns:minmax(38px,1fr) 14px minmax(38px,1fr);align-items:baseline;gap:4px;margin-top:3px;display:grid}.score-side{align-items:center;gap:3px;min-width:0;display:flex}.score-team-1{justify-content:flex-end}.score-team-2{justify-content:flex-start}.score-side strong{font-size:30px;font-weight:700}.score-separator{color:#858585;font-size:14px}.shuttle-indicator{flex:0 0 21px;width:21px;height:21px;animation:1.2s ease-in-out infinite shuttle-hover;display:block}.score-updated strong{animation:.52s ease-out score-point}@keyframes shuttle-hover{0%,to{transform:translateY(1px)rotate(-4deg)}50%{transform:translateY(-2px)rotate(4deg)}}@keyframes score-point{0%{color:#d71920;transform:scale(1.45)}to{color:#151515;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.shuttle-indicator,.score-updated strong{animation:none}}.empty-matchup{color:#666;text-align:center;grid-column:1/-1;font-size:14px}.game-scores{background:#f0f2f4;border-top:1px solid #dedede;border-bottom:1px solid #dedede;justify-content:center;align-items:stretch;display:flex}.game-score{font-variant-numeric:tabular-nums;border-right:1px solid #d4d4d4;justify-content:center;align-items:center;gap:9px;min-width:106px;padding:9px 14px;display:flex}.game-score:last-child{border-right:0}.game-score span{color:#6a6a6a;font-size:9px;font-weight:400}.game-score strong{font-size:15px}.h2h{border-top:1px solid #dedede;padding:0}.h2h:empty{display:none}.h2h-scoreline{cursor:pointer;justify-content:center;align-items:center;gap:10px;min-height:40px;padding:7px 14px;font-size:10px;font-weight:400;list-style-position:inside;display:flex}.h2h-scoreline strong{font-size:16px}.previous-meeting{text-align:center;padding:0 14px 10px}.previous-detail{color:#707070;overflow-wrap:anywhere;font-size:10px;line-height:1.5}.previous-winner{color:#0e78c4;margin-top:3px;font-size:11px;font-weight:700}.previous-scoreline{color:#151515;font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px;font-weight:700}.empty-state{color:#666;text-align:center;border-top:1px solid #c7c7c7;border-bottom:1px solid #c7c7c7;padding:52px 20px;font-size:14px}.data-section{color:#151515;margin:46px 22px 0}.tab-data-section{margin:24px 0 0}.data-section-heading{border-bottom:3px solid #0e78c4;justify-content:space-between;align-items:end;gap:20px;padding-bottom:10px;display:flex}.data-section-heading h2{font-size:20px;font-weight:700}.data-section-heading p,.data-section-heading>span,.data-section-heading time{color:#666;margin-top:2px;font-size:11px}.data-empty{color:#666;text-align:center;border-bottom:1px solid #c7c7c7;padding:36px 0;font-size:13px}.result-list,.upcoming-list{grid-template-columns:minmax(0,1fr);display:grid}.result-row,.upcoming-row{border-bottom:1px solid #c7c7c7;min-width:0;padding:16px 4px}.result-row{border:0;border-bottom:1px solid #c7c7c7;padding:16px}.result-row.result-win,.result-row.result-loss{background:#fff}.result-list>:only-child,.upcoming-list>:only-child{grid-column:1/-1}.result-header{align-items:center;gap:12px;display:flex}.result-meta{color:#555;flex-wrap:wrap;flex:1;align-items:center;gap:3px 10px;min-width:0;font-size:12px;display:flex}.result-meta time{color:#666;font-size:11px}.result-tournament{color:#264259;font-size:14px;font-weight:700}.result-round{color:#333}.result-outcome{color:#fff;text-align:center;border-radius:2px;flex:none;min-width:58px;padding:5px 10px;font-size:14px;font-weight:700;line-height:1}.result-win .result-outcome{background:#0e78c4}.result-loss .result-outcome{background:#607989}.result-japanese-match .result-outcome,.result-unknown .result-outcome{color:#555;background:#e4e6e8;font-size:13px}.result-matchup{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);align-items:center;gap:14px;margin-top:16px;display:grid}.result-team{text-align:center;justify-items:center;min-width:0;display:grid}.result-player-photos{justify-content:center;align-items:center;gap:8px;min-height:64px;margin-bottom:8px;display:flex}.result-player-photo{object-fit:cover;background:#eee;border:0;border-radius:50%;flex:0 0 64px;width:64px;height:64px}.result-team-head{justify-content:center;align-items:center;gap:10px;min-height:30px;display:flex}.result-flag{object-fit:contain;width:40px;height:27px}.team-result{color:#264259;font-size:13px;font-weight:700}.result-player-names{text-align:center;overflow-wrap:anywhere;margin-top:8px;font-size:17px;font-weight:500;line-height:1.35}.result-team-japan .result-player-names{font-size:21px;font-weight:700}.result-name-separator{color:#777;margin-right:5px;font-weight:400;display:inline-block}.result-score{text-align:center;font-variant-numeric:tabular-nums;background:#f0f2f4;gap:2px;padding:10px 6px;font-size:16px;font-weight:700;display:grid}.upcoming-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 4px;display:grid;position:relative;overflow:hidden}.tournament-watermark{opacity:.12;object-fit:cover;object-position:center;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.upcoming-row>:not(.tournament-watermark){z-index:1;position:relative}.upcoming-month-group{border-bottom:1px solid #bfcbd2;grid-template-columns:120px minmax(0,1fr);min-width:0;display:grid}.upcoming-month-group>header{white-space:nowrap;align-items:baseline;gap:5px;padding:20px 10px 0 4px;display:flex}.upcoming-month-group>header strong{color:#0e78c4;font-size:24px;font-weight:700;line-height:1}.upcoming-month-group>header span{color:#666;font-size:11px}.upcoming-month-events{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;display:grid}.upcoming-row:last-child,.upcoming-row:nth-last-child(2):nth-child(odd){border-bottom:0}.upcoming-main h4{font-size:18px;font-weight:700;line-height:1.4}.upcoming-grade{color:#0e78c4;margin-bottom:5px;font-size:14px;font-weight:700;line-height:1.2}button.upcoming-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:8px}button.upcoming-main:hover,button.upcoming-main:focus-visible{background:0 0}.upcoming-period,.tournament-overlay-date{color:#555;align-items:flex-start;gap:7px;font-size:13px;display:flex}.upcoming-period{margin-top:10px}.upcoming-period>svg,.tournament-overlay-date>svg{color:#0e78c4;flex:none;width:17px;height:17px}.tournament-period-content{gap:2px;display:grid}.tournament-period-label{color:#555;font-size:11px}.tournament-period-dates{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:0 5px;display:flex}.tournament-period-dates time{white-space:nowrap}.schedule-heading{align-items:center}.schedule-view-switch{background:#e4e6e8;border:0;gap:8px;min-width:0;margin:0;padding:8px 8px 0;display:flex}.schedule-view-switch button{color:#0e78c4;min-height:48px;font:inherit;cursor:pointer;background:#f0f2f4;border:0;border-bottom:3px solid #0000;border-radius:3px 3px 0 0;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.schedule-view-switch button:last-child{border-right:0}.schedule-view-switch button[aria-pressed=true]{color:#264259;background:#fff;border-bottom-color:#0e78c4;font-weight:700}.schedule-view-switch button:focus-visible{background:#eee;outline:0}.schedule-view-switch button[aria-pressed=true]:focus-visible{background:#fff}.tournament-links{align-items:center;gap:8px;display:flex}.tournament-links a{place-items:center;width:48px;height:48px;text-decoration:none;display:grid;position:relative}.tournament-links img{object-fit:contain;width:36px;height:36px}.external-link-mark{color:#151515;background:#fff;width:15px;height:15px;padding:1px;position:absolute;top:1px;right:0}.tournament-links.compact{flex:none;gap:2px}.tournament-links.compact a{width:38px;height:32px}.tournament-links.compact img{width:30px;height:30px}.tournament-links.compact .external-link-mark{width:11px;height:11px;top:-1px;right:-1px}.calendar-list{gap:28px;min-width:0;padding-top:18px;display:grid}.calendar-month{min-width:0}.calendar-month-header{background:#264259;border-radius:40px;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;margin:0 8px 14px;display:grid}.calendar-month-header h3{color:#fff;text-align:center;font-size:18px;font-weight:700}.calendar-month-header button{color:#fff;background:0 0;border:0;place-items:center;width:40px;height:40px;padding:0;display:grid}.calendar-month-header button:last-child{justify-self:end}.calendar-month-header button svg{width:21px;height:21px}.month-calendar{border-top:1px solid #d5d5d5;border-left:1px solid #d5d5d5}.calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays span{color:#555;text-align:center;border-bottom:1px solid #d5d5d5;border-right:1px solid #d5d5d5;padding:7px 0;font-size:11px}.calendar-weekdays span:first-child{color:#b51218}.calendar-weekdays span:last-child{color:#155b91}.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:34px repeat(var(--calendar-event-rows), 38px);min-height:76px;display:grid}.calendar-day{background:#fff;border-bottom:1px solid #d5d5d5;border-right:1px solid #d5d5d5;min-width:0;position:relative}.calendar-day.outside-month{color:#999;background:#f5f5f5}.calendar-day time{z-index:1;place-items:center;width:26px;height:26px;margin:2px 0 2px 3px;font-size:11px;display:grid;position:relative}.calendar-day.today time{color:#fff;background:#264259;border-radius:50%;font-weight:700}.calendar-day:first-of-type time{color:#b51218}.calendar-day:nth-of-type(7) time{color:#155b91}.calendar-event{z-index:2;color:#fff;align-items:center;gap:3px;min-width:0;height:36px;margin:2px;padding:0 3px;font-size:14px;line-height:1.2;display:flex;position:relative;overflow:hidden}.calendar-event:after{z-index:0;content:"";pointer-events:none;background:0 0;position:absolute;inset:0}.calendar-event:hover:after,.calendar-event:focus-within:after{background:#ffffff29}.calendar-event-watermark{opacity:.16;object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.calendar-event-button{z-index:1;min-width:0;height:100%;min-height:0;color:inherit;font-size:inherit;text-align:left;background:0 0;border:0;flex:1;padding:0 2px;display:block;position:relative}.calendar-event-button:hover,.calendar-event-button:focus-visible{background:0 0}.calendar-event-name{text-overflow:ellipsis;white-space:nowrap;flex:1;width:100%;min-width:0;display:block;overflow:hidden}.calendar-event .tournament-links{z-index:2;position:relative}.calendar-color-0{background:#0e78c4}.calendar-color-1{background:#264259}.calendar-color-2{background:#4f9fd4}.calendar-color-3{background:#607989}.tournament-overlay{color:#151515;background:#0000007a;border:0;place-items:center;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:16px;display:grid;position:fixed;inset:0}.tournament-overlay::backdrop{background:0 0}.tournament-overlay:not(:popover-open){display:none}.tournament-overlay-panel{background:#fff;border:1px solid #c7cfd4;gap:12px;width:min(100%,640px);padding:28px;display:grid;position:relative}.tournament-overlay-panel h3{margin:0;padding-right:42px;font-size:26px;font-weight:700;line-height:1.4}.tournament-overlay-grade{color:#0e78c4;margin:0;font-size:16px;font-weight:700}.tournament-overlay-date{color:#555;margin:0;font-size:18px}.tournament-overlay-date .tournament-period-label{font-size:13px}.tournament-overlay .tournament-links{margin-top:10px}.tournament-overlay-close{cursor:pointer;background:0 0;border:0;place-items:center;width:44px;height:44px;padding:0;display:grid;position:absolute;top:14px;right:14px}#notification-status.error{color:#b51218;font-weight:700}#last-updated.error{color:#b51218}.overlay-open{overflow:hidden}.install-overlay{z-index:1000;background:#00000094;align-items:end;padding:16px;display:grid;position:fixed;inset:0}.install-overlay[hidden]{display:none}.install-sheet{width:min(100%,560px);padding:24px 54px calc(24px + env(safe-area-inset-bottom)) 24px;color:#151515;background:#fff;border:1px solid #bcbcbc;border-radius:0;margin:0 auto;position:relative}.install-sheet h2{font-size:20px;line-height:1.4}.overlay-step-count{color:#d71920;margin-bottom:5px;font-size:11px;font-weight:800}.install-steps{counter-reset:install-step;margin:18px 0 0;padding:0;list-style:none}.install-steps li{counter-increment:install-step;min-height:54px;padding:0 0 14px 42px;position:relative}.install-steps li:before{color:#b51218;content:counter(install-step) ".";width:28px;font-size:14px;font-weight:850;display:block;position:absolute;top:0;left:0}.install-steps strong,.install-steps span{display:block}.install-steps strong{font-size:14px}.install-steps span{color:#5f5f5f;margin-top:2px;font-size:12px;line-height:1.5}.install-assurance,.permission-note{color:#555;border-top:1px solid #ddd;padding-top:12px;font-size:12px;line-height:1.6}.install-actions{gap:8px;margin-top:16px;display:grid}.install-actions button{width:100%}.install-overlay-close{border:0;place-items:center;width:32px;min-height:32px;padding:0;font-size:24px;line-height:1;display:grid;position:absolute;top:12px;right:12px}.permission-sheet{padding-right:24px}.permission-summary{border-top:1px solid #d5d5d5;margin:18px 0}.permission-summary p{border-bottom:1px solid #d5d5d5;grid-template-columns:74px minmax(0,1fr);gap:8px;padding:11px 0;font-size:12px;line-height:1.5;display:grid}.permission-actions{grid-template-columns:1fr 1.5fr;gap:10px;margin-top:18px;display:grid}.primary-action{color:#fff;background:#0e78c4;border-color:#0e78c4;border-radius:50px;font-weight:700}.primary-action:hover{background:#0a6baa}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=720px){main{padding:0 0 40px}.app-header{min-height:78px;padding:14px 16px}.brand-name{width:56px;height:40px;font-size:19px}.brand-lockup h1{font-size:18px}#last-updated{font-size:10px}.notification-settings{padding:15px 16px}.matches{padding:22px 12px 0}.upcoming-month-group{grid-template-columns:minmax(0,1fr)}.upcoming-month-group>header{border-bottom:1px solid #bcbcbc;padding:18px 4px 8px}.upcoming-month-events{grid-template-columns:minmax(0,1fr)}.upcoming-row:nth-last-child(2):nth-child(odd){border-bottom:1px solid #c7c7c7}.match-toolbar{align-items:stretch;gap:0;padding:12px 12px 0}.match-tabs{width:auto}.match-tab{flex:1;min-width:0;height:48px;font-size:13px}.match-tab span{margin:1px 0 0;display:block}.match-controls{flex:none;justify-content:flex-end;padding:5px 8px}.match-sort-toolbar{padding:10px 0 0}.matchup{grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);gap:7px;min-height:148px;padding:16px 10px 12px}.player-photo{flex-basis:62px;width:62px;height:62px}.player-count-2 .player-photo{flex-basis:50px;width:50px;height:50px}.country-flag{flex-basis:27px;width:40px;height:27px}.player-names{font-size:13px}.japanese-team .player-names{font-size:17px}.current-score strong{font-size:25px}.install-overlay{padding:8px}}@media (width<=430px){.data-section{margin-left:12px;margin-right:12px}.data-section-heading{align-items:start}.result-matchup{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:8px}.result-score{padding:8px 3px;font-size:13px}.result-player-names{font-size:15px}.result-team-japan .result-player-names{font-size:19px}.result-outcome{min-width:54px;font-size:13px}.result-meta{font-size:11px}.schedule-heading{align-items:center}.schedule-view-switch button{padding:0 8px;font-size:12px}.upcoming-row{gap:8px}.calendar-week{grid-template-rows:30px repeat(var(--calendar-event-rows), 34px);min-height:68px}.calendar-day time{width:24px;height:24px;margin:2px 0 2px 2px;font-size:10px}.calendar-event{height:32px;padding:0 2px 0 3px;font-size:12px;line-height:1.2}.tournament-overlay{padding:12px}.tournament-overlay-panel{padding:22px 18px}.tournament-overlay-panel h3{font-size:22px}.app-header{align-items:flex-start}#last-updated{padding-top:4px}.notification-settings{align-items:flex-start;gap:12px}.notification-controls{flex-wrap:nowrap;justify-content:flex-end}.match-header{gap:8px;padding:5px 10px}.match-primary-row{flex-wrap:wrap;align-items:center;padding:7px 10px}.match-primary-row .match-actions{margin-left:auto}.match-tournament-logo,.match-tournament-logo-fallback{flex-basis:24px;width:24px;height:24px}.match-actions{gap:7px}.match-notification-control>span:first-child{display:none}.matchup{grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr);padding-left:7px;padding-right:7px}.team-identity{gap:4px;min-height:88px}.player-photo{flex-basis:60px;width:60px;height:60px}.player-photos{gap:4px}.player-count-2 .player-photo{flex-basis:48px;width:48px;height:48px}.country-flag{flex-basis:25px;width:38px;height:25px}.japanese-team .player-names{font-size:16px}.current-score strong{font-size:22px}.game-score{flex:1;min-width:0;padding-left:8px;padding-right:8px}.install-sheet{padding:20px 46px calc(20px + env(safe-area-inset-bottom)) 18px}.permission-sheet{padding-right:18px}}@media (width<=360px){.matchup{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:4px;padding-left:5px;padding-right:5px}.team-identity{gap:4px}.country-flag{flex-basis:23px;width:34px;height:23px}.player-photo{flex:0 38px;width:38px;height:38px}.player-count-2 .player-photo{flex-basis:38px;width:38px;height:38px}.japanese-team .player-names{font-size:15px}.current-score strong{font-size:20px}}@media (width>=900px){.result-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.match-list.time-grid,.tournament-matches{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:18px;display:grid}.match-list.time-grid>.match,.tournament-matches>.match{min-width:0;margin-bottom:0}.tournament-matches>.match:only-child,.match-list.time-grid>.match:only-child{grid-column:1/-1;justify-self:center;width:min(100%,780px)}}.app-footer{text-align:center;border-top:1px solid #e0e0e0;margin-top:48px;padding:24px 16px;font-family:inherit}.footer-links{justify-content:center;align-items:center;gap:8px;margin:0 0 12px;display:flex}.footer-links a{color:#151515;border-radius:50%;place-items:center;width:38px;height:38px;text-decoration:none;transition:color .12s,background-color .12s;display:grid}.footer-links a:hover{color:#0e78c4;background:#f1f1f1}.brand-icon{fill:currentColor;width:21px;height:21px}.footer-message{color:#555;max-width:600px;margin:0 auto;font-size:11px;line-height:1.6}.pwa-guide-banner{color:#151515;background:#f0f2f4;border:1px solid #d4dadd;justify-content:space-between;align-items:center;gap:16px;margin:16px;padding:14px 18px;display:flex}.pwa-guide-banner.in-app{background:#fff5f5;border-color:#f5c2c2}.pwa-guide-content{align-items:flex-start;gap:10px;min-width:0;display:flex}.pwa-guide-icon{color:#0e78c4;flex-shrink:0;display:inline-flex}.pwa-guide-text{color:#333;margin:0;font-size:12px;line-height:1.5}.pwa-guide-text strong{color:#151515}.pwa-guide-button{cursor:pointer;background:#fff;border:1px solid #bcbcbc;flex-shrink:0;padding:6px 14px;font-size:11px;font-weight:700;transition:background .15s}.pwa-guide-button:hover{background:#eee}@media (width<=600px){.pwa-guide-banner{flex-direction:column;align-items:stretch;gap:12px}.pwa-guide-button{align-self:flex-end}}
