@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;800;900&display=swap";:root{--color-forest-ink:#0f3e17;--color-sage-wash:#b1dbb8;--color-mint-veil:#cfe7d3;--color-citrus-cream:#fff1b8;--color-citrus-veil:#fff8df;--color-citrus-card:color-mix(in srgb, var(--color-citrus-cream) 40%, var(--color-linen-white));--color-play-panel:color-mix(in srgb, var(--color-linen) 62%, var(--color-citrus-cream));--color-peach-line:#ffd1b8;--color-game-mixed:#ffbf9e;--color-game-mens:#9fe7f2;--color-game-womens:#ffb4d6;--color-linen:#e1f4df;--color-linen-white:#fffefc;--color-hairline-gray:#e5e7eb;--color-charcoal:#222;--color-graphite:#333;--color-true-black:#000;--font-suisse-intl:Inter, "Suisse Int'l", Suisseintl, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-faire-octave:var(--font-suisse-intl);--radius-nav:7px;--radius-cards:14px;--radius-badges:999px;--radius-buttons:14px;--color-ink:var(--color-true-black);--color-smoke:var(--color-charcoal);--color-fog:var(--color-hairline-gray);--color-ash:var(--color-hairline-gray);--color-mist:var(--color-linen);--color-paper:var(--color-linen-white);--color-pewter:var(--color-hairline-gray);--focus-ring:#0f3e1724;color:var(--color-ink);background:var(--color-paper);font-family:var(--font-suisse-intl);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{background:var(--color-paper);letter-spacing:0;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(1200px,100%);margin:0 auto;padding:28px 24px 56px}.topbar{border-bottom:1px solid var(--color-fog);background:color-mix(in srgb, var(--color-linen-white) 94%, var(--color-linen) 6%);justify-content:space-between;align-items:center;gap:20px;margin:0 -24px 35px;padding:14px 24px 21px;display:flex}.eyebrow{width:max-content;max-width:100%;color:var(--color-forest-ink);border-radius:var(--radius-badges);border:1px solid var(--color-hairline-gray);background:var(--color-linen-white);margin:0 0 14px;padding:7px 14px;font-size:.78rem;font-weight:400}h1,h2{margin:0}h1{max-width:900px;color:var(--color-forest-ink);font-family:var(--font-faire-octave);letter-spacing:0;text-wrap:balance;word-break:keep-all;font-size:clamp(3.1rem,7vw,4.625rem);font-weight:300;line-height:1.05}h1 span{display:inline}h1 span+span:before{content:" "}.hero-accent{color:var(--color-forest-ink)}h2{color:var(--color-forest-ink);font-family:var(--font-faire-octave);letter-spacing:0;font-size:1.75rem;font-weight:300;line-height:1.3}.topbar-actions{align-items:center;gap:8px;display:flex}.primary-action,.secondary-action,.save-all-action,.view-link-action{border-radius:var(--radius-buttons);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:49px;font-weight:400;display:inline-flex}.view-link-action{color:var(--color-charcoal);border-color:var(--color-pewter);background:var(--color-linen-white);padding:0 14px;text-decoration:none}.primary-action{color:var(--color-linen-white);border-color:var(--color-forest-ink);background:var(--color-forest-ink);padding:0 21px}.save-all-action{color:var(--color-charcoal);border-color:var(--color-pewter);background:var(--color-linen-white);padding:0 16px}.save-all-action.done{color:var(--color-linen-white);border-color:var(--color-forest-ink);background:var(--color-forest-ink)}.save-all-action.error{color:var(--color-ink);border-color:var(--color-ink);background:var(--color-ash)}.secondary-action{width:100%;color:var(--color-forest-ink);border-color:var(--color-pewter);background:var(--color-linen-white);margin-top:14px}.primary-action:hover,.save-all-action:hover,.secondary-action:hover,.view-link-action:hover{border-color:var(--color-ink);background:var(--color-mist)}.primary-action:hover,.save-all-action.done:hover{color:var(--color-paper);background:var(--color-ink)}.metric-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.metric{border:1px solid var(--color-fog);background:var(--color-paper);border-radius:8px;align-items:center;gap:10px;min-width:0;padding:14px;display:flex}.metric-icon{width:36px;height:36px;color:var(--color-ink);border:1px solid var(--color-ash);background:var(--color-mist);border-radius:8px;flex:0 0 36px;place-items:center;display:inline-grid}.metric-copy{min-width:0}.metric small,.metric strong,.metric-detail{min-width:0;display:block}.metric small{color:var(--color-smoke);font-size:.78rem;font-weight:600}.metric strong{margin-top:2px;font-size:1.12rem;font-weight:700}.metric-detail{color:var(--color-smoke);margin-top:3px;font-size:.74rem;font-style:normal;font-weight:600;line-height:1.25}.workspace{grid-template-columns:1fr;align-items:start;gap:20px;display:grid}.control-panel,.roster-panel,.result-panel{border:1px solid var(--color-fog);background:var(--color-paper);border-radius:8px}.control-panel{background:0 0;border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-width:0;display:grid;overflow:visible}.roster-panel{min-width:0;padding:18px}.roster-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.roster-header>span{color:var(--color-ink);border:1px solid var(--color-fog);background:var(--color-mist);border-radius:8px;flex-shrink:0;padding:8px 10px;font-size:.83rem;font-weight:700}.panel-block{border-bottom:1px solid var(--color-ash);padding:18px}.control-panel .panel-block{border:1px solid var(--color-fog);background:var(--color-paper);border-radius:8px;min-width:0}.control-panel .panel-block:nth-child(3){grid-column:span 2}.panel-block:last-child{border-bottom:0}.control-panel .panel-block:last-child{border-bottom:1px solid var(--color-fog)}.panel-title{color:var(--color-ink);align-items:center;gap:8px;margin-bottom:14px;display:flex}.panel-title.compact{margin:0 0 12px}.field-grid{gap:10px;display:grid}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field.wide{grid-column:1/-1}.field{gap:6px;min-width:0;display:grid}.field span{color:var(--color-smoke);font-size:.82rem;font-weight:700}input,select{width:100%;min-width:0;min-height:42px;color:var(--color-ink);border:1px solid var(--color-fog);background:var(--color-paper);border-radius:8px;outline:none}input{padding:0 12px}.date-field{overflow:hidden}.date-field input[type=date]{inline-size:100%;min-inline-size:0;max-inline-size:100%;appearance:none;text-align:center;height:42px;padding:0 42px 0 12px;line-height:42px;display:block;position:relative}.date-field input[type=date]::-webkit-date-and-time-value{text-align:center;justify-content:center;align-items:center;min-height:42px;margin:0;display:flex}.date-field input[type=date]::-webkit-datetime-edit{justify-content:center;align-items:center;min-height:42px;padding:0;display:flex}.date-field input[type=date]::-webkit-calendar-picker-indicator{position:absolute;right:12px}select{padding:0 10px}input:focus,select:focus{border-color:var(--color-ink);box-shadow:0 0 0 3px var(--focus-ring)}.segmented{border:1px solid var(--color-ash);background:var(--color-mist);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:5px;display:grid}.segmented.two{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented button{min-height:38px;color:var(--color-smoke);background:var(--color-linen-white);text-align:center;white-space:pre-line;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0 8px;font-size:.9rem;font-weight:700;line-height:1.15;display:inline-flex}.segmented button.active{color:var(--color-paper);border-color:var(--color-charcoal);background:var(--color-charcoal)}.time-control{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;display:grid}.period-toggle{border:1px solid var(--color-fog);background:var(--color-mist);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.period-toggle button{min-width:0;min-height:32px;color:var(--color-smoke);background:0 0;border:0;border-radius:6px;padding:0 6px;font-size:.84rem;font-weight:700}.period-toggle button.active{color:var(--color-paper);background:var(--color-charcoal)}.time-control select{min-height:42px;padding:0 8px}.allocation-list{gap:8px;margin-top:14px;display:grid}.allocation-status{color:var(--color-ink);background:#f4faf7;border:1px solid #d9e4dc;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:8px 10px;font-size:.8rem;font-weight:850;display:flex}.allocation-status strong{color:var(--color-linen-white);background:var(--color-ink);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.74rem}.allocation-status.warning{color:#8a3d2a;background:#fff6f1;border-color:#f2c7b5}.allocation-row{border:1px solid #dfe4dc;border-left:5px solid var(--allocation-color);background:var(--color-linen-white);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(142px,.82fr);align-items:center;gap:10px;padding:10px;display:grid}.allocation-row.disabled{opacity:.58}.allocation-row.mixed{--allocation-color:var(--color-game-mixed)}.allocation-row.mens{--allocation-color:var(--color-game-mens)}.allocation-row.womens{--allocation-color:var(--color-game-womens)}.allocation-row span{min-width:0;display:grid}.allocation-row strong,.allocation-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.allocation-row strong{font-size:.98rem}.allocation-row small{color:#74807b;font-size:.76rem;font-weight:720}.allocation-controls{grid-template-columns:minmax(72px,1fr) 64px;gap:6px;min-width:0;display:grid}.allocation-row input,.allocation-row select{text-align:center;text-align-last:center;font-weight:900}.lock-toggle{color:#52645d;white-space:nowrap;background:#f7faf8;border:1px solid #d8e0dc;border-radius:8px;justify-content:center;align-items:center;gap:4px;min-height:38px;padding:0 6px;font-size:.76rem;font-weight:900;display:inline-flex}.lock-toggle:disabled{cursor:not-allowed;opacity:.55}.allocation-help{color:#69776f;word-break:keep-all;margin:8px 0 0;font-size:.78rem;font-weight:760;line-height:1.45}.allocation-detail{margin-top:10px}.allocation-detail.warning{color:#9a4b2d}.allocation-detail.locked{color:#315d52}.play-panel.collapsed{align-content:start}.play-auto-card{border:1px solid #dfe4dc;border-left:5px solid var(--play-color,var(--color-ink));background:color-mix(in srgb, var(--play-color,var(--color-ink)) 6%, var(--color-linen-white));border-radius:8px;gap:5px;margin-top:10px;padding:12px;display:grid}.play-auto-card.mixed{--play-color:var(--color-game-mixed)}.play-auto-card.mens{--play-color:var(--color-game-mens)}.play-auto-card.womens{--play-color:var(--color-game-womens)}.play-auto-card.warning{--play-color:#363940}.play-auto-card span{width:max-content;max-width:100%;color:var(--color-forest-ink);border:1px solid color-mix(in srgb, var(--play-color,var(--color-ink)) 54%, var(--color-linen-white));background:color-mix(in srgb, var(--play-color,var(--color-ink)) 74%, var(--color-linen-white));border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:950}.play-auto-card strong{color:var(--color-ink);font-size:.98rem;font-weight:950;line-height:1.35}.play-auto-card p{color:#69776f;word-break:keep-all;margin:0;font-size:.78rem;font-weight:760;line-height:1.45}.player-list{gap:8px;display:grid}.mobile-player-list{display:none}.mobile-roster-hint{color:#48645c;background:#f5faf7;border:1px solid #dce8e1;border-radius:8px;margin:0 0 8px;padding:9px 10px;font-size:.78rem;font-weight:820;line-height:1.4;display:none}.balance-mode-box{background:#fbfcfa;border:1px solid #dfe4dc;border-radius:8px;gap:8px;margin-bottom:14px;padding:12px;display:grid}.balance-mode-box>span{color:var(--color-ink);font-size:.9rem;font-weight:900}.balance-mode-box p{color:#69776f;word-break:keep-all;margin:0;font-size:.78rem;font-weight:760;line-height:1.45}.club-box{background:#f7fbf8;border:1px solid #d9e4dd;border-radius:8px;gap:9px;margin-bottom:14px;padding:12px;display:grid}.tool-launch-grid{gap:9px;display:grid}.tool-launch-card{width:100%;min-height:64px;color:var(--color-ink);text-align:left;background:#fbfcfa;border:1px solid #dfe4dc;border-radius:8px;align-items:center;gap:10px;padding:12px;display:flex}.tool-launch-card svg{flex:none}.tool-launch-card span{gap:2px;min-width:0;display:grid}.tool-launch-card strong,.tool-launch-card small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool-launch-card strong{font-size:.95rem;font-weight:950}.tool-launch-card small{color:#69776f;font-size:.78rem;font-weight:760}.club-title{color:var(--color-ink);align-items:center;gap:7px;display:flex}.club-title strong{font-size:.95rem}.club-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.club-actions{grid-template-columns:1.15fr .92fr 1fr;gap:7px;display:grid}.member-add-row{grid-template-columns:minmax(0,1fr) 104px;gap:7px;display:grid}.import-box{background:#fbfcfa;border:1px solid #dfe4dc;border-radius:8px;gap:9px;margin-bottom:16px;padding:12px;display:grid}.import-title{color:var(--color-ink);align-items:center;gap:7px;display:flex}.import-title strong{font-size:.95rem}.import-box p{color:#69776f;word-break:keep-all;margin:0;font-size:.78rem;font-weight:760;line-height:1.45}.import-box textarea{resize:vertical;color:#17231f;background:var(--color-linen-white);border:1px solid #cfd8d1;border-radius:8px;outline:none;width:100%;min-height:88px;padding:10px 11px;line-height:1.45}.import-box textarea:focus{border-color:#4f9a87;box-shadow:0 0 0 3px #4f9a8729}.import-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.mini-action{min-width:0;min-height:38px;color:var(--color-linen-white);background:var(--color-ink);white-space:nowrap;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:.84rem;font-weight:900;display:inline-flex}.mini-action.subtle{color:var(--color-ink);background:#e4eee9}.mini-action:disabled{cursor:not-allowed;opacity:.68}.import-message{border-radius:8px;padding:8px 9px}.import-message.done{color:#17634f;background:#edf7f3}.import-message.error{color:#8a3d2a;background:#fff1eb}.import-message.reading{color:#5b5f16;background:#fbf8d7}.pair-card{background:#fbfcfa;border:1px solid #dfe4dc;border-radius:8px;grid-template-columns:minmax(180px,.72fr) minmax(220px,1fr) minmax(260px,1.1fr);align-items:center;gap:10px;margin-bottom:14px;padding:12px;display:grid}.pair-card-title{color:var(--color-ink);align-items:center;gap:7px;display:flex}.pair-card-title strong{font-size:.95rem}.pair-card-copy{color:#69776f;word-break:keep-all;margin:0;font-size:.78rem;font-weight:760;line-height:1.45}.pair-help{color:#48645c;word-break:keep-all;background:#edf7f3;border-radius:8px;grid-column:1/-1;margin:0;padding:9px 10px;font-size:.78rem;font-weight:760;line-height:1.45}.quality-rule-box,.team-ban-rule-box{background:var(--color-linen-white);border:1px solid #dfe4dc;border-radius:8px;grid-column:1/-1;gap:9px;padding:10px;display:grid}.quality-rule-box{grid-template-columns:minmax(0,1fr) auto;align-items:center}.quality-rule-box strong,.team-ban-rule-title strong{color:var(--color-ink);font-size:.88rem;display:block}.quality-rule-box small,.team-ban-rule-title small{color:#69776f;margin-top:2px;font-size:.74rem;font-weight:760;line-height:1.35;display:block}.quality-rule-box button{min-height:34px;color:var(--color-ink);background:#f7fbf8;border:1px solid #cddad3;border-radius:8px;padding:0 12px;font-weight:900}.quality-rule-box button.active{color:var(--color-linen-white);border-color:var(--color-ink);background:var(--color-ink)}.team-ban-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 92px;gap:7px;display:grid}.team-ban-list{flex-wrap:wrap;gap:7px;display:flex}.team-ban-list span{min-height:30px;color:var(--color-ink);background:#f7fbf8;border:1px solid #d8e2dc;border-radius:999px;align-items:center;gap:6px;padding:0 5px 0 9px;font-size:.76rem;font-weight:900;display:inline-flex}.team-ban-list button{color:#8a3d2a;background:#fff1eb;border:0;border-radius:999px;place-items:center;width:22px;height:22px;display:inline-grid}.player-row{grid-template-columns:64px minmax(150px,1.35fr) minmax(112px,.86fr) minmax(112px,.86fr) minmax(148px,1fr) 38px;align-items:center;gap:7px;display:grid}.player-row.with-skill{grid-template-columns:56px minmax(130px,1.2fr) 82px minmax(104px,.78fr) minmax(104px,.78fr) minmax(140px,.96fr) 38px}.player-row.with-pair{grid-template-columns:56px minmax(130px,1.12fr) minmax(108px,.8fr) minmax(104px,.74fr) minmax(104px,.74fr) minmax(146px,.96fr) 38px}.player-row.with-pair.with-skill{grid-template-columns:52px minmax(116px,1fr) minmax(96px,.76fr) 76px minmax(96px,.7fr) minmax(96px,.7fr) minmax(132px,.88fr) 38px}.gender-dot{border-radius:8px;place-items:center;width:34px;height:34px;font-size:.82rem;font-weight:900;display:inline-grid}.player-row.male .gender-dot,.player-row.male .gender-select,.team .male,.inline-team .male,.stat-row.male{background:#e8f4ff;border-color:#b7dcff}.player-row.female .gender-dot,.player-row.female .gender-select,.team .female,.inline-team .female,.stat-row.female{background:#fff0f6;border-color:#ffc2da}.player-row select,.player-row input{min-height:38px;font-size:.9rem}.gender-select{text-align:center;border-width:1px;padding:0 5px;font-weight:900}.pair-select{color:var(--color-ink);padding:0 7px;font-size:.86rem;font-weight:850}.skill-select{color:var(--color-ink);padding:0 6px;font-size:.84rem;font-weight:850}.participant-delete-button{color:#8a3d2a;background:#fff1eb;min-width:38px;min-height:38px}.player-game-summary{background:#f8fbf8;border:1px solid #d8e2dc;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 6px;min-height:38px;padding:6px 8px;display:grid}.player-game-summary strong,.player-game-summary small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.player-game-summary strong{color:var(--color-ink);font-size:.88rem;font-weight:950}.player-game-summary small{color:#69776f;font-size:.7rem;font-weight:760}.player-game-summary em{text-align:center;border-radius:999px;grid-area:1/2/3;min-width:34px;padding:3px 6px;font-size:.68rem;font-style:normal;font-weight:950}.player-game-summary.even em{color:#17634f;background:#e0f2ec}.player-game-summary.over em{color:#7a4b00;background:#fff0c9}.player-game-summary.under em{color:#8a3d2a;background:#ffe4da}.mobile-player-card{background:var(--color-linen-white);border:1px solid #d8e2dc;border-radius:8px;overflow:hidden}.mobile-player-summary{color:#17231f;text-align:left;background:0 0;border:0;grid-template-columns:42px minmax(0,1fr) minmax(66px,auto);align-items:center;gap:9px;width:100%;padding:10px;display:grid}.mobile-player-summary:focus-visible{outline-offset:-3px;outline:3px solid #4f9a8747}.mobile-player-gender{border:1px solid #cfd8d1;border-radius:8px;place-items:center;min-height:36px;font-size:.86rem;font-weight:950;display:inline-grid}.mobile-player-card.male .mobile-player-gender{background:#e8f4ff;border-color:#b7dcff}.mobile-player-card.female .mobile-player-gender{background:#fff0f6;border-color:#ffc2da}.mobile-player-main{gap:2px;min-width:0;display:grid}.mobile-player-main strong,.mobile-player-main small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mobile-player-main strong{color:var(--color-ink);font-size:1rem;font-weight:950}.mobile-player-main small{color:#69776f;font-size:.74rem;font-weight:780}.mobile-player-count{justify-items:end;gap:4px;min-width:62px;display:grid}.mobile-player-count strong{color:var(--color-ink);white-space:nowrap;font-size:.92rem;font-weight:950}.mobile-player-count em{text-align:center;border-radius:999px;min-width:36px;padding:4px 7px;font-size:.68rem;font-style:normal;font-weight:950}.mobile-player-count.even em{color:#17634f;background:#e0f2ec}.mobile-player-count.over em{color:#7a4b00;background:#fff0c9}.mobile-player-count.under em{color:#8a3d2a;background:#ffe4da}.mobile-player-detail{background:#fbfcfa;border-top:1px solid #e3e9e4;padding:10px}.mobile-player-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mobile-edit-field{gap:4px;min-width:0;display:grid}.mobile-edit-field.full{grid-column:1/-1}.mobile-edit-field span{color:#69776f;font-size:.68rem;font-weight:900}.mobile-edit-field select,.mobile-edit-field input{width:100%;min-width:0;min-height:42px;font-size:.92rem}.mobile-remove-player-button{color:#8a3d2a;background:#fff1eb;border:1px solid #f0c9bc;border-radius:8px;grid-column:1/-1;justify-content:center;align-items:center;gap:6px;min-height:42px;font-weight:900;display:inline-flex}.result-panel{min-width:0;padding:18px}.result-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.result-header-side{justify-items:end;gap:8px;min-width:0;display:grid}.type-summary{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.type-summary span{color:color-mix(in srgb, var(--type-color) 45%, var(--color-forest-ink));border:1px solid color-mix(in srgb, var(--type-color) 28%, var(--color-linen-white));background:color-mix(in srgb, var(--type-color) 9%, var(--color-linen-white));border-radius:8px;padding:8px 10px;font-size:.83rem;font-weight:900}.manual-edit-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.manual-edit-primary{min-height:40px;color:var(--color-linen-white);border:1px solid var(--color-ink);background:var(--color-ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:.86rem;font-weight:950;display:inline-flex;box-shadow:0 10px 18px #17231f1f}.manual-edit-primary.active{color:var(--color-ink);box-shadow:none;background:#dff3ec;border-color:#b9d9cf}.manual-edit-primary:focus-visible{outline-offset:2px;outline:3px solid #1f9d8a3d}.manual-edit-help{color:#49685f;background:#f4faf7;border:1px solid #cfe1da;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:.82rem;font-weight:760;display:grid}.manual-edit-help strong{color:var(--color-ink);white-space:nowrap;font-weight:950}.manual-edit-help.warning{color:#7a4b00;background:#fff8df;border-color:#f1d38a}.warning-box{color:#7a4b00;background:#fff8df;border:1px solid #f1d38a;border-radius:8px;margin-bottom:14px;padding:12px;font-weight:760}.warning-box p{margin:0}.warning-box p+p{margin-top:4px}.mobile-result-mode-tabs{display:none}.schedule-grid{gap:14px;display:grid}.court-header-row{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:10px;display:grid}.court-header-actions{gap:7px;display:grid}.court-header-actions>span{color:#49685f;font-size:.78rem;font-weight:900}.court-save-button{min-height:34px;color:var(--color-ink);cursor:pointer;background:#f7fbf8;border:1px solid #cddad3;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:.82rem;font-weight:900;display:inline-flex}.court-save-button.compact{white-space:nowrap;min-height:42px;padding:0 9px}.court-save-button.dirty{color:var(--color-linen-white);border-color:var(--color-ink);background:var(--color-ink)}.court-save-button:focus-visible{outline-offset:2px;outline:3px solid #1f9d8a3d}.court-save-message{color:#49685f;grid-column:2;margin:-2px 0 0;font-size:.78rem;font-weight:760}.court-save-message.dirty{color:#7a4b00}.court-save-message.done{color:#1f7d68}.court-name-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;min-width:0;display:grid}.court-name-field{grid-template-columns:minmax(0,1fr) auto;gap:7px;min-width:0;display:grid}.court-name-grid input{min-width:0;min-height:42px;color:var(--color-ink);text-align:center;background:#f7fbf8;border-color:#c9d9d1;font-weight:900}.round-block{grid-template-columns:96px minmax(0,1fr);align-items:start;gap:10px;display:grid}.round-block.editable{background:#fbfdfb;border:1px dashed #c8d8d0;border-radius:8px;margin:-8px;padding:8px}.round-time{color:var(--color-ink);padding-top:10px;position:sticky;left:0}.round-time strong{font-size:.92rem;display:block}.round-time span{color:#65736d;margin-top:3px;font-size:.76rem;font-weight:850;display:block}.round-drag-handle{min-height:28px;color:var(--color-linen-white);background:var(--color-ink);cursor:grab;border:0;border-radius:8px;justify-content:center;align-items:center;margin-bottom:6px;padding:0 9px;font-size:.76rem;font-weight:900;display:inline-flex}.manual-slot-controls{gap:6px;display:grid}.slot-order-controls{gap:4px;display:none}.slot-order-controls button{min-height:30px;color:var(--color-forest-ink);background:#f7fbf8;border:1px solid #cddad3;border-radius:8px;padding:0 8px;font-size:.75rem;font-weight:900}.slot-order-controls button:disabled{cursor:not-allowed;opacity:.38}.round-drag-handle:active{cursor:grabbing}.warmup-card{min-height:56px;color:var(--color-ink);background:#edf7f3;border:1px solid #cfe1da;border-left:5px solid #0f3e17;border-radius:8px;align-items:center;padding:14px;font-weight:900;display:flex}.court-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;min-width:0;display:grid}.match-card{border:1px solid #dfe4dc;border-top:5px solid var(--type-color);background:var(--color-linen-white);border-radius:8px;min-width:0;min-height:136px;padding:14px}.match-card-head{color:#65736d;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;font-size:.82rem;font-weight:900;display:flex}.match-card-head span,.match-card-head strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.match-card-head strong{min-height:28px;color:color-mix(in srgb, var(--type-color) 45%, var(--color-forest-ink));border:1px solid color-mix(in srgb, var(--type-color) 34%, var(--color-linen-white));background:color-mix(in srgb, var(--type-color) 12%, var(--color-linen-white));border-radius:8px;align-items:center;padding:4px 10px;font-size:.88rem;display:inline-flex}.mobile-match-court-name{color:#65736d;min-width:0;font-size:.78rem;font-weight:900;display:none}.court-schedule-list{gap:14px;display:grid}.court-schedule-section{gap:10px;display:grid}.court-schedule-title{min-height:42px;color:var(--color-linen-white);background:var(--color-ink);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;display:flex}.court-schedule-title strong,.court-schedule-title span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:950;overflow:hidden}.court-schedule-title span{opacity:.82;font-size:.82rem}.court-schedule-matches{gap:9px;display:grid}.court-schedule-row{grid-template-columns:96px minmax(0,1fr);align-items:stretch;gap:10px;display:grid}.court-schedule-time{min-height:70px;color:var(--color-ink);background:#fbfcfa;border:1px solid #dfe4dc;border-radius:8px;align-content:center;gap:4px;padding:10px;display:grid}.court-schedule-time strong{font-size:.96rem;font-weight:950}.court-schedule-time span{color:#65736d;font-size:.78rem;font-weight:850}.teams{gap:6px;display:grid}.match-line{white-space:nowrap;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.inline-team{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;min-width:0;display:grid}.inline-team .male,.inline-team .female{text-overflow:ellipsis;white-space:nowrap;text-align:center;border:1px solid #0000;border-radius:8px;min-width:0;padding:7px 8px;font-size:.94rem;font-weight:900;display:block;overflow:hidden}.inline-team .editable-player-chip{border-style:dashed;border-color:color-mix(in srgb, currentColor 32%, transparent);cursor:grab}.inline-team .editable-player-chip.selected{color:var(--color-ink);border-color:var(--color-ink);background:#fff3bf;box-shadow:0 0 0 3px #0f3e1729,inset 0 0 0 1px #0f3e1733}.inline-team .editable-player-chip:active{cursor:grabbing}.inline-team .editable-player-chip:focus-visible{outline-offset:2px;outline:3px solid #1f9d8a3d}.versus{color:#8a9690;justify-self:center;font-size:.72rem;font-weight:900}.warmup-note{color:#48645c;background:#edf7f3;border-radius:8px;margin:2px 0 0;padding:6px 8px;font-size:.78rem;font-weight:850}.empty-match{color:#8a9690;place-items:center;min-height:72px;margin:0;font-weight:900;display:grid}.stats-panel{border-top:1px solid #e6e9e1;margin-top:20px;padding-top:16px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:8px;display:grid}.stat-row{border:1px solid #0000;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 8px;padding:10px;display:grid}.stat-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.stat-row span{font-weight:900}.stat-row small{color:#65736d;grid-column:1/-1;font-weight:760}.spin{animation:.9s linear infinite spin}.mobile-view-tabs{display:none}.modal-backdrop{z-index:80;background:#17231f52;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.app-modal{background:var(--color-linen-white);border:1px solid #dfe4dc;border-radius:8px;grid-template-rows:auto minmax(0,1fr);width:min(860px,100%);max-height:min(86vh,820px);display:grid;overflow:hidden;box-shadow:0 24px 60px #17231f38}.club-modal{width:min(980px,100%)}.import-modal{width:min(680px,100%)}.duplicate-modal{width:min(520px,100%)}.modal-header{border-bottom:1px solid #e6e9e1;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 18px 14px;display:flex}.modal-close,.icon-button{min-width:38px;min-height:38px;color:var(--color-ink);background:#f7fbf8;border:1px solid #d8e2dc;border-radius:8px;place-items:center;display:inline-grid}.icon-button.danger{color:#8a3d2a;background:#fff1eb}.modal-body{gap:12px;min-height:0;padding:16px 18px 18px;display:grid;overflow-y:auto}.modal-field-grid,.modal-action-row,.member-create-row{gap:8px;display:grid}.modal-field-grid.two{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.modal-action-row{grid-template-columns:1.1fr .9fr .95fr}.member-editor-card,.member-list-card{background:#fbfcfa;border:1px solid #dfe4dc;border-radius:8px;gap:10px;padding:12px;display:grid}.member-editor-title{gap:2px;display:grid}.member-editor-title strong{color:var(--color-ink);font-size:.95rem}.member-editor-title small{color:#69776f;font-size:.78rem;font-weight:760}.member-create-row{grid-template-columns:72px minmax(120px,1fr) minmax(132px,.9fr) 112px}.club-member-list-wrap{gap:8px;display:grid}.member-list-toolbar{background:#f8fbf7;border:1px solid #dfe7e2;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.member-list-toolbar span{color:#53655e;font-size:.78rem;font-weight:860}.member-list-toolbar-actions{gap:6px;display:inline-flex}.member-list-toolbar .mini-action{min-height:32px;padding:0 9px;font-size:.76rem}.club-member-list{gap:7px;display:grid}.club-member-row{grid-template-columns:36px 64px minmax(120px,1fr) minmax(132px,.86fr) 66px 38px;align-items:center;gap:7px;display:grid}.club-member-row.present{opacity:.72}.member-check{background:var(--color-linen-white);border:1px solid #d8e2dc;border-radius:8px;place-items:center;min-height:38px;display:grid}.member-check input{width:16px;height:16px}.member-status{color:#17634f;white-space:nowrap;background:#e0f2ec;border-radius:999px;place-items:center;min-height:32px;padding:0 8px;font-size:.72rem;font-weight:900;display:inline-grid}.modal-empty{color:#69776f;background:var(--color-linen-white);border:1px dashed #cfd8d1;border-radius:8px;margin:0;padding:14px;font-size:.86rem;font-weight:760}.modal-footer{background:linear-gradient(180deg, #fff0, var(--color-linen-white) 22%);grid-template-columns:minmax(0,1fr) 120px;gap:8px;padding-top:6px;display:grid;position:sticky;bottom:-18px}.modal-import-box{margin-bottom:0}.duplicate-confirm{gap:14px;display:grid}.duplicate-confirm p{color:#49685f;margin:0;font-size:.94rem;font-weight:760;line-height:1.5}.duplicate-confirm p strong{color:var(--color-ink);font-weight:950}.duplicate-rename-list{gap:8px;display:grid}.duplicate-rename-row{background:#fbfcfa;border:1px solid #dfe4dc;border-radius:8px;grid-template-columns:72px minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:9px;display:grid}.duplicate-rename-row.new{background:#f2faf6;border-color:#bdd9cf}.duplicate-rename-row span{color:#69776f;font-size:.76rem;font-weight:900}.duplicate-rename-row em,.duplicate-rename-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.duplicate-rename-row em{color:#7b8882;font-style:normal;font-weight:800}.duplicate-rename-row strong{color:var(--color-ink);font-weight:950}.duplicate-footer{background:0 0;padding-top:0;position:static}.app-shell.force-mobile{width:min(430px,100%);padding:12px 12px calc(128px + env(safe-area-inset-bottom))}.app-shell.force-mobile .topbar{flex-direction:column;align-items:stretch}.app-shell.force-mobile .topbar-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.app-shell.force-mobile .primary-action,.app-shell.force-mobile .save-all-action,.app-shell.force-mobile .view-link-action{width:100%;padding-left:8px;padding-right:8px}.app-shell.force-mobile h1{font-size:2.2rem;line-height:1.12}.app-shell.force-mobile h1 span{display:block}.app-shell.force-mobile h1 span+span:before{content:""}.app-shell.force-mobile .metric-strip{grid-template-columns:1fr 1fr;gap:8px}.app-shell.force-mobile .metric{padding:10px}.app-shell.force-mobile .metric-icon{display:none}.app-shell.force-mobile .control-panel{grid-template-columns:1fr}.app-shell.force-mobile .control-panel .panel-block:last-child{grid-column:auto}.app-shell.force-mobile.mobile-settings .result-panel,.app-shell.force-mobile.mobile-results .roster-panel,.app-shell.force-mobile.mobile-results .control-panel{display:none}.app-shell.force-mobile .field-grid.two,.app-shell.force-mobile .segmented,.app-shell.force-mobile .pair-card,.app-shell.force-mobile .quality-rule-box,.app-shell.force-mobile .team-ban-controls{grid-template-columns:1fr}.app-shell.force-mobile .roster-header{gap:8px;display:grid}.app-shell.force-mobile .roster-header>span{justify-self:start}.app-shell.force-mobile .allocation-status{flex-direction:column;align-items:flex-start}.app-shell.force-mobile .allocation-row{grid-template-columns:1fr}.app-shell.force-mobile .allocation-controls{grid-template-columns:minmax(0,1fr) 72px}.app-shell.force-mobile .club-grid,.app-shell.force-mobile .club-actions,.app-shell.force-mobile .member-add-row,.app-shell.force-mobile .import-actions{grid-template-columns:1fr}.app-shell.force-mobile .time-control{grid-template-columns:repeat(3,minmax(0,1fr))}.app-shell.force-mobile .desktop-player-list{display:none}.app-shell.force-mobile .mobile-player-list{gap:8px;padding-bottom:12px;display:grid}.app-shell.force-mobile .mobile-roster-hint{display:block}.app-shell.force-mobile .result-panel,.app-shell.force-mobile .roster-panel,.app-shell.force-mobile .panel-block{padding:14px}.app-shell.force-mobile .result-header{display:grid}.app-shell.force-mobile .result-header-side,.app-shell.force-mobile .manual-edit-actions{justify-content:flex-start;justify-items:start}.app-shell.force-mobile .manual-edit-actions{grid-template-columns:1fr;width:100%;display:grid}.app-shell.force-mobile .manual-edit-primary{width:100%;min-height:46px;font-size:.94rem}.app-shell.force-mobile .manual-edit-help{grid-template-columns:1fr}.app-shell.force-mobile .type-summary{justify-content:flex-start}.app-shell.force-mobile .mobile-result-mode-tabs{background:#edf5f1;border:1px solid #d6e0d9;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:5px;display:grid}.app-shell.force-mobile .mobile-result-mode-tabs button{min-height:38px;color:var(--color-ink);background:0 0;border:0;border-radius:7px;font-weight:950}.app-shell.force-mobile .mobile-result-mode-tabs button.active{color:var(--color-linen-white);background:var(--color-ink)}.app-shell.force-mobile .round-block,.app-shell.force-mobile .court-header-row{grid-template-columns:1fr}.app-shell.force-mobile .court-header-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center}.app-shell.force-mobile .court-save-message{grid-column:1}.app-shell.force-mobile .court-name-grid,.app-shell.force-mobile .court-grid{grid-template-columns:1fr}.app-shell.force-mobile .mobile-match-court-name{justify-self:end;display:inline-flex}.app-shell.force-mobile .court-schedule-row{grid-template-columns:72px minmax(0,1fr);gap:8px}.app-shell.force-mobile .court-schedule-time{min-height:auto;padding:8px}.app-shell.force-mobile .court-schedule-time strong{font-size:.86rem}.app-shell.force-mobile .court-schedule-time span{font-size:.72rem}.app-shell.force-mobile .round-time{padding-top:0}.app-shell.force-mobile .round-drag-handle{margin-bottom:0;margin-right:6px}.app-shell.force-mobile .manual-slot-controls{grid-template-columns:auto minmax(0,1fr);align-items:center}.app-shell.force-mobile .slot-order-controls{grid-template-columns:repeat(2,minmax(0,1fr));display:inline-grid}.app-shell.force-mobile .mobile-view-tabs{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;background:#fffffff5;border:1px solid #d6e0d9;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-width:406px;margin:0 auto;padding:6px;display:grid;position:fixed;left:12px;box-shadow:0 14px 30px #0000}.app-shell.force-mobile .mobile-view-tabs button{min-height:48px;color:var(--color-ink);background:#e4eee9;border:0;border-radius:7px;font-weight:900}.app-shell.force-mobile .mobile-view-tabs button.active{color:var(--color-linen-white);background:var(--color-ink)}.app-shell.force-mobile .modal-backdrop{align-items:end;padding:10px}.app-shell.force-mobile .app-modal{border-radius:8px 8px 0 0;width:100%;max-height:calc(100vh - 20px)}.app-shell.force-mobile .modal-field-grid.two,.app-shell.force-mobile .modal-action-row,.app-shell.force-mobile .member-create-row,.app-shell.force-mobile .member-list-toolbar,.app-shell.force-mobile .club-member-row,.app-shell.force-mobile .modal-footer{grid-template-columns:1fr}.app-shell.force-mobile .member-list-toolbar{align-items:stretch;display:grid}.app-shell.force-mobile .member-list-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.app-shell.force-mobile .member-check{justify-items:start;padding:0 10px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1180px){.control-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.control-panel .panel-block:last-child{grid-column:1/-1}}@media (width<=980px){.app-shell{padding:16px}.topbar{flex-direction:column;align-items:stretch}.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.primary-action,.save-all-action{width:100%}h1{font-size:3rem}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.control-panel{grid-template-columns:1fr}.control-panel .panel-block:last-child{grid-column:auto}}@media (width<=640px){.app-shell{padding:12px 12px calc(128px + env(safe-area-inset-bottom))}.app-shell.mobile-settings .result-panel,.app-shell.mobile-results .roster-panel,.app-shell.mobile-results .control-panel{display:none}h1{font-size:2.2rem;line-height:1.12}h1 span{display:block}h1 span+span:before{content:""}.metric-strip{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:10px}.metric-icon{display:none}.field-grid.two,.segmented,.pair-card,.quality-rule-box,.team-ban-controls{grid-template-columns:1fr}.roster-header{gap:8px;display:grid}.roster-header>span{justify-self:start}.allocation-status{flex-direction:column;align-items:flex-start}.allocation-row{grid-template-columns:1fr}.allocation-controls{grid-template-columns:minmax(0,1fr) 72px}.club-grid,.club-actions,.member-add-row,.import-actions{grid-template-columns:1fr}.time-control{grid-template-columns:repeat(3,minmax(0,1fr))}.desktop-player-list{display:none}.mobile-player-list{gap:8px;padding-bottom:12px;display:grid}.mobile-roster-hint{display:block}.result-panel,.roster-panel,.panel-block{padding:14px}.modal-backdrop{align-items:end;padding:10px}.app-modal{border-radius:8px 8px 0 0;width:100%;max-height:calc(100vh - 20px)}.modal-field-grid.two,.modal-action-row,.member-create-row,.member-list-toolbar,.club-member-row,.modal-footer{grid-template-columns:1fr}.member-list-toolbar{align-items:stretch;display:grid}.member-list-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.member-check{justify-items:start;padding:0 10px}.result-header{display:grid}.result-header-side,.manual-edit-actions{justify-content:flex-start;justify-items:start}.manual-edit-actions{grid-template-columns:1fr;width:100%;display:grid}.manual-edit-primary{width:100%;min-height:46px;font-size:.94rem}.manual-edit-help{grid-template-columns:1fr}.type-summary{justify-content:flex-start}.mobile-result-mode-tabs{background:#edf5f1;border:1px solid #d6e0d9;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:5px;display:grid}.mobile-result-mode-tabs button{min-height:38px;color:var(--color-ink);background:0 0;border:0;border-radius:7px;font-weight:950}.mobile-result-mode-tabs button.active{color:var(--color-linen-white);background:var(--color-ink)}.round-block,.court-header-row{grid-template-columns:1fr}.court-header-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center}.court-save-message{grid-column:1}.court-name-grid{grid-template-columns:1fr}.round-time{padding-top:0}.round-drag-handle{margin-bottom:0;margin-right:6px}.manual-slot-controls{grid-template-columns:auto minmax(0,1fr);align-items:center}.slot-order-controls{grid-template-columns:repeat(2,minmax(0,1fr));display:inline-grid}.court-grid{grid-template-columns:1fr}.mobile-match-court-name{justify-self:end;display:inline-flex}.court-schedule-row{grid-template-columns:72px minmax(0,1fr);gap:8px}.court-schedule-time{min-height:auto;padding:8px}.court-schedule-time strong{font-size:.86rem}.court-schedule-time span{font-size:.72rem}.mobile-view-tabs{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;background:#fffffff5;border:1px solid #d6e0d9;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px;display:grid;position:fixed;left:12px;box-shadow:0 14px 30px #0000}.mobile-view-tabs button{min-height:48px;color:var(--color-ink);background:#e4eee9;border:0;border-radius:7px;font-weight:900}.mobile-view-tabs button.active{color:var(--color-linen-white);background:var(--color-ink)}.mobile-view-tabs button:disabled{cursor:default;opacity:1}}.allocation-status,.mobile-roster-hint,.balance-mode-box,.club-box,.tool-launch-card,.import-box,.pair-card,.quality-rule-box,.team-ban-rule-box,.player-game-summary,.mobile-player-detail,.member-editor-card,.member-list-card,.duplicate-rename-row{color:var(--color-ink);border-color:var(--color-fog);background:var(--color-paper)}.allocation-status{background:var(--color-mist)}.allocation-status strong,.mini-action,.quality-rule-box button.active,.court-save-button.dirty,.mobile-view-tabs button.active,.app-shell.force-mobile .mobile-view-tabs button.active,.member-status{color:var(--color-paper);border-color:var(--color-charcoal);background:var(--color-charcoal)}.allocation-status.warning,.warning-box,.import-message.done,.import-message.error,.import-message.reading,.pair-help,.warmup-note,.modal-empty,.duplicate-rename-row.new{color:var(--color-ink);border-color:var(--color-fog);background:var(--color-mist)}.allocation-status.warning strong{background:var(--color-charcoal)}.allocation-row,.play-auto-card,.mobile-player-card,.match-card,.stat-row,.app-modal{border-color:var(--color-fog);background:var(--color-paper)}.allocation-row.locked{border-color:color-mix(in srgb, var(--allocation-color) 32%, var(--color-fog));background:color-mix(in srgb, var(--allocation-color) 5%, var(--color-paper))}.allocation-row small,.allocation-help,.play-auto-card p,.balance-mode-box p,.tool-launch-card small,.import-box p,.pair-card-copy,.quality-rule-box small,.team-ban-rule-title small,.player-game-summary small,.mobile-player-main small,.mobile-edit-field span,.stat-row small,.court-save-message,.duplicate-confirm p,.member-editor-title small,.modal-empty,.duplicate-rename-row span,.duplicate-rename-row em{color:var(--color-smoke)}.allocation-detail.warning,.allocation-detail.locked,.court-save-message.dirty,.court-save-message.done,.duplicate-confirm p strong,.play-auto-card strong,.club-title,.import-title,.pair-card-title,.quality-rule-box strong,.team-ban-rule-title strong,.player-game-summary strong,.mobile-player-main strong,.mobile-player-count strong,.member-editor-title strong,.duplicate-rename-row strong,.round-time,.court-header-actions>span,.court-save-button,.court-name-grid input,.warmup-card,.match-card-head,.stat-row span,.modal-close,.icon-button,.member-check,.mobile-player-summary,.mobile-player-count,.mobile-player-gender,.pair-select,.skill-select{color:var(--color-ink)}.lock-toggle,.quality-rule-box button,.court-save-button,.modal-close,.icon-button,.mini-action.subtle,.mobile-remove-player-button,.team-ban-list span{color:var(--color-ink);border-color:var(--color-pewter);background:var(--color-paper)}.mini-action.subtle:hover,.lock-toggle:hover,.quality-rule-box button:hover,.court-save-button:hover,.modal-close:hover,.icon-button:hover{border-color:var(--color-ink);background:var(--color-mist)}.import-box textarea,.member-check,.court-name-grid input{color:var(--color-ink);border-color:var(--color-fog);background:var(--color-paper)}.import-box textarea:focus,.mobile-player-summary:focus-visible,.court-save-button:focus-visible{border-color:var(--color-ink);outline:3px solid var(--focus-ring);outline-offset:2px;box-shadow:none}.player-row.male .gender-dot,.player-row.male .gender-select,.player-row.female .gender-dot,.player-row.female .gender-select,.team .male,.team .female,.inline-team .male,.inline-team .female,.stat-row.male,.stat-row.female,.mobile-player-card.male .mobile-player-gender,.mobile-player-card.female .mobile-player-gender{color:var(--color-ink);border-color:var(--color-ash);background:var(--color-mist)}.player-game-summary.even em,.player-game-summary.over em,.player-game-summary.under em,.mobile-player-count.even em,.mobile-player-count.over em,.mobile-player-count.under em{color:var(--color-paper);background:var(--color-charcoal)}.participant-delete-button,.icon-button.danger,.mobile-remove-player-button,.team-ban-list button{color:var(--color-ink);border-color:var(--color-ash);background:var(--color-mist)}.type-summary span{color:color-mix(in srgb, var(--type-color) 45%, var(--color-forest-ink));border-color:color-mix(in srgb, var(--type-color) 28%, var(--color-paper));background:color-mix(in srgb, var(--type-color) 8%, var(--color-paper))}.warmup-card{border-color:var(--color-fog);border-left-color:var(--color-charcoal);background:var(--color-mist)}.match-card-head strong{color:color-mix(in srgb, var(--type-color) 45%, var(--color-forest-ink));border-color:color-mix(in srgb, var(--type-color) 34%, var(--color-paper));background:color-mix(in srgb, var(--type-color) 10%, var(--color-paper))}.versus,.empty-match{color:var(--color-smoke)}.app-modal{box-shadow:none}.member-status{border:0}.club-member-row.present .member-status{color:var(--color-smoke);background:var(--color-mist)}.mobile-player-card.expanded{border-color:var(--color-ink);box-shadow:none}.mobile-view-tabs,.app-shell.force-mobile .mobile-view-tabs{border-color:var(--color-fog);background:var(--color-paper);box-shadow:none}.mobile-view-tabs button,.app-shell.force-mobile .mobile-view-tabs button{color:var(--color-ink);background:var(--color-mist);border:0}body,.app-shell,.app-modal{color:var(--color-true-black);background:var(--color-linen-white);font-family:var(--font-suisse-intl);letter-spacing:0;font-weight:400}.app-shell :where(p,span,small,strong,em,label,button,input,select,textarea,a),.app-modal :where(p,span,small,strong,em,label,button,input,select,textarea,a){font-weight:400}.hero-accent,h1,h2,.panel-title,.roster-header>span,.metric strong,.allocation-status strong,.play-auto-card span,.match-card-head strong,.stats-panel .panel-title h2{color:var(--color-forest-ink)}.topbar{border-color:var(--color-hairline-gray);background:var(--color-linen-white)}.topbar-actions{gap:11px}.primary-action,.mini-action,.save-all-action.done,.allocation-status strong,.quality-rule-box button.active,.court-save-button.dirty,.mobile-view-tabs button.active,.app-shell.force-mobile .mobile-view-tabs button.active,.member-status,.player-game-summary.even em,.player-game-summary.over em,.player-game-summary.under em,.mobile-player-count.even em,.mobile-player-count.over em,.mobile-player-count.under em{color:var(--color-linen-white);border-color:var(--color-forest-ink);background:var(--color-forest-ink)}.primary-action:hover,.save-all-action.done:hover,.mini-action:hover{color:var(--color-linen-white);border-color:var(--color-forest-ink);background:color-mix(in srgb, var(--color-forest-ink) 92%, var(--color-linen-white))}.secondary-action,.save-all-action,.view-link-action,.mini-action.subtle,.lock-toggle,.quality-rule-box button,.court-save-button,.modal-close,.icon-button,.mobile-remove-player-button{color:var(--color-forest-ink);border-color:var(--color-hairline-gray);border-radius:var(--radius-buttons);background:var(--color-linen-white)}.secondary-action:hover,.save-all-action:hover,.view-link-action:hover,.mini-action.subtle:hover,.lock-toggle:hover,.quality-rule-box button:hover,.court-save-button:hover,.modal-close:hover,.icon-button:hover{color:var(--color-forest-ink);border-color:var(--color-forest-ink);background:var(--color-linen)}.metric,.control-panel .panel-block,.roster-panel,.result-panel,.allocation-row,.play-auto-card,.tool-launch-card,.pair-card,.quality-rule-box,.team-ban-rule-box,.mobile-player-card,.match-card,.stat-row,.app-modal,.member-editor-card,.member-list-card,.duplicate-rename-row,.import-box,.club-box,.balance-mode-box{border-color:var(--color-hairline-gray);border-radius:var(--radius-cards);background:var(--color-linen-white);box-shadow:none!important}.metric:first-child,.control-panel .panel-block:first-child,.balance-mode-box,.mobile-player-detail{background:var(--color-linen)}.metric:nth-child(2),.metric:nth-child(4),.control-panel .panel-block:nth-child(2){background:var(--color-play-panel)}.pair-card,.member-editor-card,.duplicate-rename-row.new{background:var(--color-mint-veil)}.metric:nth-child(3),.result-panel,.member-list-card{background:var(--color-citrus-card)}.control-panel .panel-block:nth-child(3){border-color:color-mix(in srgb, var(--color-citrus-cream) 68%, var(--color-hairline-gray));background:var(--color-citrus-card)}.control-panel .panel-block:nth-child(3) .balance-mode-box{border-color:color-mix(in srgb, var(--color-citrus-cream) 54%, var(--color-hairline-gray));background:color-mix(in srgb, var(--color-citrus-cream) 22%, var(--color-linen-white))}.control-panel .panel-block:nth-child(3) .tool-launch-card{border-color:color-mix(in srgb, var(--color-citrus-cream) 48%, var(--color-hairline-gray));background:color-mix(in srgb, var(--color-linen-white) 90%, var(--color-citrus-cream))}.control-panel .panel-block:nth-child(3) .tool-launch-card:hover{border-color:color-mix(in srgb, var(--color-citrus-cream) 82%, var(--color-forest-ink));background:color-mix(in srgb, var(--color-citrus-cream) 34%, var(--color-linen-white))}.roster-panel,.allocation-status,.warning-box,.import-message,.pair-help,.warmup-note,.modal-empty{background:color-mix(in srgb, var(--color-sage-wash) 32%, var(--color-linen-white))}.metric-icon,.gender-dot,.player-row.male .gender-select,.player-row.female .gender-select,.mobile-player-gender,.team .male,.team .female,.inline-team .male,.inline-team .female,.stat-row.male,.stat-row.female,.participant-delete-button,.icon-button.danger,.team-ban-list button{color:var(--color-forest-ink);border-color:var(--color-hairline-gray);border-radius:var(--radius-nav);background:var(--color-linen-white)}.eyebrow,.type-summary span,.play-auto-card span,.team-ban-list span,.member-status{border-radius:var(--radius-badges)}.type-summary span,.match-card-head strong{color:color-mix(in srgb, var(--type-color) 45%, var(--color-forest-ink));border-color:color-mix(in srgb, var(--type-color) 26%, var(--color-linen-white));background:color-mix(in srgb, var(--type-color) 13%, var(--color-linen-white))}.segmented,.period-toggle,.mobile-view-tabs,.app-shell.force-mobile .mobile-view-tabs{border-color:var(--color-hairline-gray);border-radius:var(--radius-cards);background:color-mix(in srgb, var(--color-linen) 70%, var(--color-linen-white));box-shadow:none!important}.segmented button,.period-toggle button,.mobile-view-tabs button,.app-shell.force-mobile .mobile-view-tabs button{color:var(--color-charcoal);border-radius:var(--radius-nav);background:0 0}.segmented button:not(.active),.period-toggle button:not(.active){border-color:color-mix(in srgb, var(--color-hairline-gray) 80%, transparent);background:var(--color-linen-white)}.segmented button.active,.period-toggle button.active{color:var(--color-linen-white);border-color:var(--color-forest-ink);background:var(--color-forest-ink)}input,select,textarea,.import-box textarea,.court-name-grid input{color:var(--color-true-black);border-color:var(--color-hairline-gray);border-radius:var(--radius-buttons);background:var(--color-linen-white)}input:focus,select:focus,textarea:focus,.import-box textarea:focus,.mobile-player-summary:focus-visible,.court-save-button:focus-visible{border-color:var(--color-forest-ink);outline-color:var(--focus-ring);box-shadow:0 0 0 3px var(--focus-ring)}.allocation-row.locked{background:color-mix(in srgb, var(--allocation-color,var(--color-forest-ink)) 8%, var(--color-linen-white))}.play-auto-card{background:color-mix(in srgb, var(--play-color,var(--color-forest-ink)) 10%, var(--color-linen-white))}.allocation-row strong{color:color-mix(in srgb, var(--allocation-color,var(--color-forest-ink)) 82%, var(--color-forest-ink))}.lock-toggle.locked{color:var(--color-forest-ink);border-color:color-mix(in srgb, var(--allocation-color,var(--color-forest-ink)) 80%, var(--color-linen-white));background:color-mix(in srgb, var(--allocation-color,var(--color-forest-ink)) 78%, var(--color-linen-white))}.warmup-card{color:var(--color-forest-ink);border-color:var(--color-hairline-gray);border-left-color:var(--color-forest-ink);border-radius:var(--radius-cards);background:var(--color-linen)}.match-card{border-top-color:color-mix(in srgb, var(--type-color) 64%, var(--color-linen-white))}.round-time,.court-header-actions>span,.court-save-message,.allocation-help,.pair-card-copy,.quality-rule-box small,.team-ban-rule-title small,.tool-launch-card small,.mobile-player-main small,.stat-row small,.metric small,.metric-detail{color:var(--color-charcoal)}.stats-panel,.mobile-player-detail,.modal-header{border-color:var(--color-hairline-gray)}.modal-backdrop{background:#0f3e1738}.modal-footer{background:linear-gradient(180deg, #fffefc00, var(--color-linen-white) 22%)}.app-shell{width:min(1460px,100%);padding:21px 28px 56px}.topbar{border:1px solid var(--color-hairline-gray);border-radius:var(--radius-cards);background:var(--color-sage-wash);isolation:isolate;grid-template-columns:minmax(320px,1fr) minmax(500px,560px) minmax(172px,auto);align-items:stretch;gap:16px;margin:0 0 28px;padding:35px;display:grid;position:relative;overflow:hidden}.topbar:before,.topbar:after{content:none}.topbar>div:first-child{z-index:1;align-content:center;min-width:0;display:grid;position:relative}.topbar .eyebrow{background:var(--color-linen-white);margin-bottom:18px}.topbar h1{max-width:900px;font-family:var(--font-suisse-intl);letter-spacing:0;font-size:clamp(5.6rem,8vw,8.6rem);font-weight:900;line-height:.88}.topbar h1 span{display:block}.topbar h1 span:first-child{color:color-mix(in srgb, var(--color-forest-ink) 88%, var(--color-charcoal));font-family:var(--font-suisse-intl);font-size:1em;font-weight:900;line-height:.88}.topbar h1 .hero-accent{color:var(--color-forest-ink);font-family:var(--font-suisse-intl);letter-spacing:0;margin-top:12px;font-size:.26em;font-weight:700;line-height:1.1}h2,.panel-title h2{font-family:var(--font-suisse-intl);letter-spacing:0;font-weight:760}.panel-title h2{color:var(--color-forest-ink);font-size:1.08rem;font-weight:900;line-height:1.1}.panel-title.compact h2{font-size:1rem}.topbar h1 span+span:before{content:""}.hero-mascots{z-index:1;place-items:center;min-width:0;min-height:318px;display:grid;position:relative}.mascot-stage{width:min(100%,620px);height:318px;position:relative;transform:translate(-178px)}.hero-mascot{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;filter:drop-shadow(0 18px 20px #0f3e1729);display:block;position:absolute}.hero-mascot-basic{z-index:3;width:286px;height:304px;top:0;left:50%;transform:translate(-50%)rotate(-1deg)}.hero-mascot-backhand,.hero-mascot-bite,.hero-mascot-standing{width:151px;height:146px}.hero-mascot-backhand{z-index:1;top:4px;left:0;transform:rotate(-10deg)}.hero-mascot-bite{z-index:2;top:0;right:-151px;transform:rotate(8deg)}.hero-mascot-standing{z-index:4;width:142px;height:158px;bottom:0;right:8px;transform:scaleX(-1)rotate(-5deg)}.topbar-actions{z-index:2;grid-template-columns:1fr;align-self:start;min-width:172px;display:grid;position:relative}.topbar-actions .primary-action,.topbar-actions .save-all-action,.topbar-actions .view-link-action{width:100%}.metric-strip{gap:14px;margin-bottom:21px}.metric{gap:14px;min-height:96px;padding:21px}.metric-icon{width:40px;height:40px;color:var(--color-linen-white);border-color:var(--color-forest-ink);background:var(--color-forest-ink);flex-basis:40px}.metric small,.field span,.mobile-edit-field span{font-size:.78rem}.metric strong{letter-spacing:0;font-size:1.45rem;line-height:1}.workspace{gap:21px}.control-panel{gap:14px}.control-panel .panel-block,.roster-panel,.result-panel{padding:21px}.panel-title{gap:9px;margin-bottom:18px}.panel-title svg,.pair-card-title svg,.tool-launch-card svg,.import-title svg,.club-title svg,.member-editor-title svg{color:var(--color-forest-ink)}.field-grid,.allocation-list,.tool-launch-grid,.player-list,.mobile-player-list,.schedule-grid,.stats-grid{gap:11px}.field{gap:7px}input,select,textarea,.import-box textarea,.court-name-grid input{min-height:49px}.segmented{padding:7px}.segmented button,.period-toggle button{min-height:42px}.allocation-status{padding:11px 14px}.allocation-status strong,.type-summary span,.play-auto-card span,.team-ban-list span{padding:5px 11px}.allocation-row,.play-auto-card,.tool-launch-card,.pair-card,.quality-rule-box,.team-ban-rule-box,.mobile-player-card,.match-card,.stat-row,.import-box,.balance-mode-box,.club-box{padding:14px}.allocation-row{border-left-color:color-mix(in srgb, var(--allocation-color) 76%, var(--color-linen-white))}.pair-card{gap:14px}.pair-help,.warmup-note,.warning-box,.modal-empty{border:1px solid var(--color-hairline-gray);border-radius:var(--radius-cards)}.result-header,.roster-header{margin-bottom:21px}.court-header-row,.round-block{gap:14px}.court-name-grid,.court-grid{gap:11px}.round-time strong{color:var(--color-forest-ink);font-size:1rem;font-weight:950}.round-time span{color:#65736d;font-size:.78rem;font-weight:760}.match-card{min-height:144px}.inline-team .male,.inline-team .female{min-height:38px;padding-top:9px;padding-bottom:9px}.versus{color:var(--color-forest-ink)}.mobile-view-tabs,.app-shell.force-mobile .mobile-view-tabs{border-radius:var(--radius-cards);background:var(--color-linen-white)}@media (width<=980px){.topbar{grid-template-columns:1fr;gap:20px;padding:28px}.topbar:before,.topbar:after{content:none}.hero-mascots{min-height:280px}.mascot-stage{width:min(100%,470px);height:280px;transform:translate(-32px)}.hero-mascot-basic{width:224px;height:240px;top:18px}.hero-mascot-backhand,.hero-mascot-bite{width:118px;height:115px}.hero-mascot-backhand{top:10px;left:0}.hero-mascot-bite{top:2px;right:0}.hero-mascot-standing{width:108px;height:122px;bottom:0;right:6px;transform:scaleX(-1)rotate(-5deg)}.topbar-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.app-shell{padding:12px 12px calc(128px + env(safe-area-inset-bottom))}.topbar{gap:16px;padding:21px}.topbar:before,.topbar:after{content:none}.topbar h1{font-size:3.3rem}.hero-mascots{min-height:230px}.mascot-stage{width:min(100%,340px);height:230px;transform:translate(-10px)}.hero-mascot{filter:drop-shadow(0 14px 15px #0f3e1726)}.hero-mascot-basic{width:160px;height:170px;top:28px}.hero-mascot-backhand,.hero-mascot-bite{width:84px;height:82px}.hero-mascot-backhand{top:20px;left:0}.hero-mascot-bite{top:4px;right:0}.hero-mascot-standing{width:79px;height:91px;bottom:6px;right:4px;transform:scaleX(-1)rotate(-5deg)}.topbar-actions,.app-shell.force-mobile .topbar-actions{grid-template-columns:1fr}.topbar-actions .primary-action,.topbar-actions .save-all-action,.topbar-actions .view-link-action{justify-content:center;min-width:0}.metric{min-height:0}}.app-shell.force-mobile .topbar-actions .primary-action,.app-shell.force-mobile .topbar-actions .save-all-action,.app-shell.force-mobile .topbar-actions .view-link-action{min-width:0}.app-shell.force-mobile .topbar{grid-template-columns:1fr;gap:16px}.app-shell.force-mobile .topbar:before,.app-shell.force-mobile .topbar:after{content:none}.app-shell.force-mobile .hero-mascots{min-height:230px}.app-shell.force-mobile .mascot-stage{width:min(100%,340px);height:230px;transform:translate(-10px)}.app-shell.force-mobile .hero-mascot{filter:drop-shadow(0 14px 15px #0f3e1726)}.app-shell.force-mobile .hero-mascot-basic{width:160px;height:170px;top:28px}.app-shell.force-mobile .hero-mascot-backhand,.app-shell.force-mobile .hero-mascot-bite{width:84px;height:82px}.app-shell.force-mobile .hero-mascot-backhand{top:20px;left:0}.app-shell.force-mobile .hero-mascot-bite{top:4px;right:0}.app-shell.force-mobile .hero-mascot-standing{width:79px;height:91px;bottom:6px;right:4px;transform:scaleX(-1)rotate(-5deg)}.app-shell{padding-bottom:118px}.app-shell.mobile-settings .result-panel,.app-shell.mobile-results .control-panel,.app-shell.mobile-results .roster-panel{display:none}.app-shell.mobile-results .workspace{grid-template-columns:minmax(0,1fr)}.app-shell.mobile-results .result-panel{display:block}.mobile-view-tabs,.app-shell.force-mobile .mobile-view-tabs{right:max(28px,50vw - 702px);bottom:calc(24px + env(safe-area-inset-bottom));z-index:30;pointer-events:none;background:0 0;border:0;justify-content:space-between;align-items:center;gap:21px;padding:0;display:flex;position:fixed;left:max(28px,50vw - 702px)}.mobile-view-tabs button,.app-shell.force-mobile .mobile-view-tabs button{min-width:172px;min-height:56px;color:var(--color-linen-white);border:1px solid var(--color-forest-ink);border-radius:var(--radius-buttons);background:var(--color-forest-ink);pointer-events:auto;justify-content:center;align-items:center;gap:9px;padding:0 21px;font-weight:700;display:inline-flex}.mobile-view-tabs button:disabled,.app-shell.force-mobile .mobile-view-tabs button:disabled{visibility:hidden;pointer-events:none}@media (width<=640px){.app-shell{padding:12px 12px calc(128px + env(safe-area-inset-bottom))}.mobile-view-tabs,.app-shell.force-mobile .mobile-view-tabs{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));border:1px solid var(--color-hairline-gray);background:color-mix(in srgb, var(--color-linen-white) 96%, transparent);pointer-events:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px;display:grid;left:12px}.mobile-view-tabs button,.app-shell.force-mobile .mobile-view-tabs button{gap:7px;min-width:0;min-height:48px}.mobile-view-tabs button:disabled,.app-shell.force-mobile .mobile-view-tabs button:disabled{visibility:visible;color:var(--color-forest-ink);background:var(--color-linen);border-color:#0000}}
