:root{color-scheme:light;font-family:BIZ UDPGothic,Hiragino Sans,Yu Gothic,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#14221c;background:#f4f7f4;--court: #0f6b58;--court-dark: #0b4f43;--ink: #14221c;--muted: #60716a;--line: #d8e2dc;--surface: #ffffff;--surface-strong: #eef5f1;--gold: #f1c84b;--clay: #d95f43;--blue: #376da8;--danger: #b94235;--nav-height: 76px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(90deg,rgba(15,107,88,.08) 1px,transparent 1px) 0 0 / 44px 44px,linear-gradient(rgba(15,107,88,.06) 1px,transparent 1px) 0 0 / 44px 44px,#f4f7f4}button{font:inherit}button:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(55,109,168,.5);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.48}.app-shell{min-height:100vh;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom))}.app-header{position:sticky;top:0;z-index:5;border-bottom:1px solid rgba(20,34,28,.08);background:#f4f7f4f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-inner{width:min(960px,100%);margin:0 auto;padding:16px 16px 14px}.header-kicker,.section-kicker{margin:0 0 4px;color:var(--court);font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.1rem,5.2vw,1.8rem);line-height:1.15}h2{margin-bottom:0;font-size:1.55rem;line-height:1.2}h3{margin-bottom:4px;font-size:1rem}.notice{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:min(960px,calc(100% - 24px));margin:0 auto 12px;padding:10px 12px;border:1px solid rgba(217,95,67,.3);border-radius:8px;background:#fff6ef;color:#6e2c1f;font-size:.9rem}.app-main{width:min(960px,100%);margin:0 auto;padding:18px 14px 24px}.tab-panel{display:grid;gap:16px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:2px 2px 0}.status-panel,.control-section,.reset-section,.history-accordion,.match-card,.player-card,.waiting-section{border:1px solid rgba(20,34,28,.1);border-radius:8px;background:#fffffff5;box-shadow:0 10px 30px #14221c14}.status-panel{display:grid;gap:16px;padding:18px}.ready-panel{border-color:#0f6b5838}.status-title{margin:0;font-size:1.2rem;font-weight:800}.status-copy,.hint-text,.empty-text,.player-status{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}.inline-stats,.player-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.inline-stats div,.player-stats div{padding:10px;border-radius:8px;background:var(--surface-strong)}dt{color:var(--muted);font-size:.72rem;font-weight:700}dd{margin:2px 0 0;color:var(--ink);font-size:1.08rem;font-weight:800}.primary-button,.secondary-button,.danger-button,.text-button,.icon-button,.nav-button,.player-chip,.waiting-chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:8px;font-weight:800;letter-spacing:0;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease}.primary-button{padding:13px 16px;background:var(--court);color:#fff;box-shadow:0 10px 22px #0f6b583d}.secondary-button{padding:10px 12px;border:1px solid rgba(20,34,28,.12);background:#fff;color:var(--ink)}.danger-button{padding:10px 12px;border:1px solid rgba(185,66,53,.25);background:#fff4f1;color:var(--danger)}.text-button{min-height:32px;padding:4px 6px;background:transparent;color:inherit}.icon-button{width:44px;padding:0;border:1px solid rgba(20,34,28,.12);background:#fff}.full-width{width:100%}.winner-actions,.player-actions{display:grid;gap:10px}.match-list,.player-list{display:grid;gap:12px}.match-card{display:grid;gap:14px;padding:14px}.match-card-header,.subheading-row,.player-card-main,.control-section,.reset-section{display:flex;align-items:center;justify-content:space-between;gap:14px}.court-badge,.winner-badge,.small-badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;font-size:.78rem;font-weight:800}.court-badge{background:var(--court-dark);color:#fff}.winner-badge{background:#fff2bd;color:#6a4c00}.small-badge{background:#e8f0fb;color:#244f82}.matchup{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:10px}.team{display:grid;gap:8px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fbfdfb}.winning-team{border-color:#f1c84bcc;background:#fff9dc}.team-label{margin:0;color:var(--muted);font-size:.76rem;font-weight:800}.team-players,.waiting-list{display:flex;flex-wrap:wrap;gap:8px}.team-players{text-align:left}.team-players .player-chip{flex:1 1 0;min-width:0}.player-chip,.waiting-chip{min-width:58px;padding:9px 12px;border:1px solid rgba(15,107,88,.18);background:#edf7f3;color:var(--court-dark)}.player-chip.selected{background:var(--gold);color:#362b00;box-shadow:0 0 0 3px #f1c84b52}.versus{display:grid;place-items:center;color:var(--clay);font-size:.78rem;font-weight:900}.waiting-section{display:grid;gap:12px;padding:14px}.action-bar{position:sticky;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 10px);z-index:4;display:grid;gap:8px;padding:12px;border:1px solid rgba(20,34,28,.1);border-radius:8px;background:#fffffff5;box-shadow:0 12px 34px #14221c29}.dialog-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:end center;padding:18px 14px calc(var(--nav-height) + env(safe-area-inset-bottom) + 18px);background:#14221c6b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.confirm-dialog{display:grid;gap:16px;width:min(520px,100%);padding:18px;border:1px solid rgba(20,34,28,.12);border-radius:8px;background:#fff;box-shadow:0 26px 70px #14221c47}.dialog-header,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-icon{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:8px;background:#fff4dc;color:#7a4f00}.dialog-kicker{margin:0 0 4px;color:var(--court);font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.dialog-title{margin-bottom:8px;font-size:1.45rem}.dialog-copy,.dialog-warning{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}.confirm-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.confirm-summary div{padding:12px;border-radius:8px;background:var(--surface-strong)}.confirm-summary .warning-summary{background:#fff4dc}.dialog-warning{padding:10px 12px;border:1px solid rgba(241,200,75,.42);border-radius:8px;background:#fffdf0;color:#735500;font-weight:700}.dialog-actions{justify-content:stretch}.dialog-actions button{flex:1 1 0}.control-section,.reset-section{padding:16px}.control-section.stacked{display:grid;align-items:stretch;justify-content:normal}.stepper{display:grid;grid-template-columns:44px 58px 44px;align-items:center;gap:8px}.switch-control{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--ink);font-weight:800;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-control input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.switch-track{position:relative;display:inline-flex;width:48px;height:28px;padding:3px;border:1px solid rgba(20,34,28,.14);border-radius:999px;background:#dfe7e3;transition:background-color .14s ease,border-color .14s ease}.switch-thumb{width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #14221c33;transition:transform .14s ease}.switch-control input:checked+.switch-track{border-color:#0f6b5859;background:var(--court)}.switch-control input:checked+.switch-track .switch-thumb{transform:translate(20px)}.switch-control input:focus-visible+.switch-track{outline:3px solid rgba(55,109,168,.5);outline-offset:3px}.switch-label{min-width:2.2em;text-align:left}.stepper-value{display:grid;place-items:center;height:44px;border-radius:8px;background:var(--surface-strong);font-size:1.2rem;font-weight:900}.player-card{display:grid;gap:12px;padding:14px}.player-card.in-match{border-color:#376da852}.player-number{margin:0 0 2px;font-size:1.3rem;font-weight:900}.player-stats{grid-template-columns:repeat(2,minmax(64px,1fr));min-width:144px}.player-stats.single-stat{grid-template-columns:minmax(64px,1fr);min-width:72px}.reset-section{border-color:#b9423529}.history-accordion{overflow:hidden}.history-accordion summary{cursor:pointer;padding:15px 16px;font-weight:900}.history-accordion .empty-text{padding:0 16px 16px}.matrix-scroll{max-width:100%;overflow:auto;border-top:1px solid var(--line)}.history-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.history-matrix th,.history-matrix td{min-width:58px;height:46px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.history-matrix th{position:sticky;z-index:2;background:#eef5f1;font-size:.82rem}.history-matrix thead th{top:0}.history-matrix tbody th,.history-matrix .corner-cell{left:0;z-index:3}.history-matrix td{background:#fff;font-weight:800}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:10;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(20,34,28,.1);background:#fffffff5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav-button{flex-direction:column;gap:3px;min-height:58px;padding:6px;background:transparent;color:var(--muted);font-size:.76rem}.nav-button.active{background:#e8f4ef;color:var(--court-dark)}@media(hover:hover){.primary-button:hover,.secondary-button:hover,.danger-button:hover,.icon-button:hover,.player-chip:hover,.waiting-chip:hover,.nav-button:hover{transform:translateY(-1px)}}@media(max-width:679px){.match-tab{gap:10px}.match-tab .section-heading{padding:0 2px}.match-tab .section-kicker{display:none}.match-tab h2{font-size:1.35rem}.match-tab h3{margin-bottom:2px;font-size:.95rem}.match-tab .status-title{font-size:1.05rem}.match-tab .status-copy,.match-tab .hint-text,.match-tab .empty-text{font-size:.82rem;line-height:1.35}.match-tab .status-panel{gap:10px;padding:12px}.match-tab .inline-stats{gap:6px}.match-tab .inline-stats div{padding:7px 8px}.match-tab .inline-stats dt{font-size:.66rem}.match-tab .inline-stats dd{margin-top:0;font-size:.98rem}.match-tab .primary-button,.match-tab .secondary-button{min-height:40px;gap:6px;padding:8px 10px;font-size:.9rem}.match-tab .match-list{gap:8px}.match-tab .match-card{gap:9px;padding:10px}.match-tab .match-card-header{gap:8px}.match-tab .court-badge,.match-tab .winner-badge,.match-tab .small-badge{min-height:24px;padding:3px 8px;font-size:.7rem}.match-tab .matchup{gap:6px}.match-tab .team{gap:6px;padding:7px}.match-tab .team-label{font-size:.68rem}.match-tab .team-players,.match-tab .waiting-list{gap:5px}.match-tab .player-chip,.match-tab .waiting-chip{min-width:48px;min-height:38px;padding:7px 8px;font-size:.9rem}.match-tab .versus{font-size:.68rem}.match-tab .winner-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.match-tab .winner-actions .secondary-button{width:100%;white-space:nowrap}.match-tab .waiting-section{gap:8px;padding:10px}.match-tab .subheading-row{gap:8px}.match-tab .action-bar{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 8px);gap:6px;padding:8px}.match-tab .action-bar .primary-button{min-height:42px}.dialog-backdrop{align-items:end;padding:12px 10px calc(var(--nav-height) + env(safe-area-inset-bottom) + 10px)}.confirm-dialog{gap:12px;padding:14px}.dialog-title{font-size:1.25rem}.dialog-copy,.dialog-warning{font-size:.84rem;line-height:1.4}.confirm-summary{grid-template-columns:1fr;gap:6px}.dialog-actions{gap:8px}.dialog-actions .primary-button,.dialog-actions .secondary-button{min-height:42px;padding:8px 10px;font-size:.9rem}.settings-tab{gap:10px}.settings-tab .section-heading{padding:0 2px}.settings-tab .section-kicker{display:none}.settings-tab h2{font-size:1.35rem}.settings-tab h3{margin-bottom:2px;font-size:.95rem}.settings-tab .hint-text,.settings-tab .player-status{font-size:.82rem;line-height:1.35}.settings-tab .control-section,.settings-tab .reset-section{gap:10px;padding:11px 12px}.settings-tab .reset-section{flex-direction:column;align-items:stretch;margin-top:4px;text-align:left}.settings-tab .reset-section .danger-button{width:100%}.settings-tab .control-section.stacked,.settings-tab .subheading-row{gap:10px}.settings-tab .secondary-button,.settings-tab .danger-button,.settings-tab .icon-button{min-height:40px}.settings-tab .secondary-button,.settings-tab .danger-button{gap:6px;padding:7px 10px;font-size:.9rem}.settings-tab .icon-button{width:40px}.settings-tab .stepper{grid-template-columns:40px 50px 40px;gap:6px}.settings-tab .stepper-value{height:40px;font-size:1.08rem}.settings-tab .switch-control{min-height:40px}.settings-tab .switch-track{width:44px;height:26px}.settings-tab .switch-thumb{width:18px;height:18px}.settings-tab .switch-control input:checked+.switch-track .switch-thumb{transform:translate(18px)}.settings-tab .player-list{gap:8px}.settings-tab .player-card{gap:8px;padding:10px 11px}.settings-tab .player-card-main{gap:10px}.settings-tab .player-number{margin-bottom:0;font-size:1.15rem}.settings-tab .player-stats{grid-template-columns:repeat(2,minmax(54px,1fr));min-width:120px;gap:6px}.settings-tab .player-stats.single-stat{grid-template-columns:minmax(54px,1fr);min-width:62px}.settings-tab .player-stats div{padding:6px 8px}.settings-tab .player-stats dt{font-size:.66rem}.settings-tab .player-stats dd{margin-top:0;font-size:.98rem}.settings-tab .player-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.settings-tab .player-actions .secondary-button,.settings-tab .player-actions .danger-button{width:100%;white-space:nowrap}}@media(min-width:680px){.app-main{padding:24px 24px 32px}.winner-actions,.player-actions,.player-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
