.tournament-group-nav[data-v-3e553426]{box-sizing:border-box;border:1px solid var(--ui-color-border);background:var(--ui-color-surface-translucent,var(--ui-color-surface));scrollbar-width:none;border-radius:999px;align-items:center;gap:4px;width:max-content;max-width:calc(100% - 32px);margin:14px auto 10px;padding:4px;display:flex;overflow-x:auto}.tournament-group-nav[data-v-3e553426]::-webkit-scrollbar{display:none}.tournament-group-nav__item[data-v-3e553426]{box-sizing:border-box;min-height:36px;color:var(--ui-color-label);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:9px 14px;font-family:inherit;font-size:14px;font-weight:800;line-height:1;text-decoration:none;transition:background .12s,color .12s,opacity .12s;display:flex}.tournament-group-nav__item[data-v-3e553426]:hover{background:var(--ui-color-primary-soft);color:var(--ui-color-primary-strong);text-decoration:none}.tournament-group-nav__item.is-active[data-v-3e553426]{background:var(--ui-color-primary);color:var(--ui-page-bg);pointer-events:none}.tournament-group-nav__item.is-switching[data-v-3e553426]{opacity:.58}.tournament-group-nav[aria-busy=true] .tournament-group-nav__item[data-v-3e553426]:not(.is-switching){opacity:.72}.tournament-group-nav__item[data-v-3e553426]:focus-visible{box-shadow:0 0 0 4px var(--ui-focus-ring);outline:none}@media (width<=720px){.tournament-group-nav[data-v-3e553426]{max-width:calc(100% - 16px);margin:10px auto}}:root{--draw-col-w:2.75em}*{box-sizing:border-box}html,body{height:100%}body{padding-top:var(--app-topbar-height,64px)}.modal-overlay[hidden]{display:none!important}.modal-overlay{background:var(--ui-overlay-bg);z-index:3000;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--ui-dialog-bg);border:1px solid var(--border);width:min(980px,100%);max-height:min(82vh,900px);box-shadow:var(--ui-shadow-dialog);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.modal-title{margin:0;font-size:18px;font-weight:800}.modal-actions{align-items:center;gap:8px;display:inline-flex}.modal-body{padding:12px 14px 14px}.roster-modal__body{grid-template-columns:1fr 1fr;gap:12px;display:grid}.roster-textarea{resize:vertical;border:1px solid var(--border);width:100%;height:56vh;min-height:360px;box-shadow:none;border-radius:12px;outline:none;padding:10px 12px;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.roster-textarea:focus{border-color:var(--ui-focus-border);box-shadow:0 0 0 4px var(--ring)}.roster-preview{border:1px solid var(--border);background:var(--ui-surface-translucent-soft);border-radius:12px;height:56vh;min-height:360px;padding:10px 12px;font-size:13px;line-height:1.35;overflow:auto}.roster-preview__empty{color:var(--muted)}.roster-preview__row{border-radius:10px;grid-template-columns:3.2em 1fr;gap:8px;padding:4px 8px;display:grid}.roster-preview__idx{color:var(--muted);font-variant-numeric:tabular-nums}.roster-preview__name{word-break:break-word}.roster-overlimit{background:#ff4e8b29;border:1px solid #ff4e8b47}@media (width<=820px){.roster-modal__body{grid-template-columns:1fr}.roster-textarea,.roster-preview{height:40vh;min-height:260px}}.btn-link__icon--stroke{stroke-width:2.35px}body.game-page .game-header-meta-row{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px 10px;display:flex}body.game-page .game-header-meta-row .tournament-info{flex:0 auto;min-width:0}body.game-page .game-header-edit-link{flex-shrink:0;align-self:center}.game-body-table{font-variant-numeric:tabular-nums}table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow);border-radius:12px;overflow:hidden}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px}th{background:var(--ui-table-head-bg);color:var(--ui-color-label);white-space:nowrap;font-weight:600}tr:last-child td{border-bottom:none}.toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px;margin:12px auto;display:flex}body.game-page .game-toolbar-title{letter-spacing:.2px;color:var(--ui-color-text);flex-shrink:0;align-self:flex-end;margin:0;padding:0;font-size:22px;font-weight:700;line-height:1.2}body.game-page #tableWrap{overflow:visible}body.game-page .game-table-split{background:var(--surface);border:1px solid var(--border);width:max-content;min-width:0;max-width:100%;box-shadow:var(--shadow);border-radius:12px;position:relative;overflow:clip}body.game-page .game-table-head-scroll{top:var(--sticky-top);z-index:80;scrollbar-width:none;background:0 0;width:max-content;min-width:0;max-width:100%;position:sticky;overflow:auto hidden}body.game-page .game-table-head-scroll::-webkit-scrollbar{display:none}body.game-page .game-table-body-scroll{scrollbar-width:none;width:max-content;min-width:0;max-width:100%;overflow:auto hidden}body.game-page .game-table-body-scroll::-webkit-scrollbar{height:0;display:none}body.game-page .game-table-bottom-scroll{z-index:2100;height:16px;max-height:calc(16px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:border-box;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);background:#fffffff0;display:none;position:fixed;bottom:0;left:0;right:0;overflow:auto hidden;box-shadow:0 -4px 16px #10182814}body.game-page .game-table-bottom-scroll__inner{pointer-events:none;height:1px}@media (width<=600px){body.game-page .game-table-bottom-scroll{display:none!important}}.toolbar .btn-mini:not(.btn-mini--icon-only){border-radius:10px}body.game-page .toolbar .btn-mini:not(.btn-mini--icon-only){box-sizing:border-box;min-height:34px}.toolbar .btn-mini:not(.btn-mini--icon-only):disabled{cursor:not-allowed;box-shadow:none;opacity:1;background:#98a2b3;transform:none}.toolbar .btn-mini:not(.btn-mini--icon-only):disabled:hover{background:#98a2b3}body.game-page .game-head-table,body.game-page .game-body-table{width:max-content;min-width:0;box-shadow:none;border-collapse:separate;border-spacing:0;table-layout:fixed;background:0 0;border:0;border-radius:0;font-size:15px;overflow:visible}body.game-page #tableWrap table.game-head-table,body.game-page #tableWrap table.game-body-table{width:max-content;min-width:0;max-width:none}body.game-page th,body.game-page td{text-align:center;box-sizing:border-box;border-color:var(--border);border-bottom:1px solid var(--border);min-width:2em;padding:2px 4px}body.game-page th{background:#f8fafc}body.game-page .game-head-table thead th{background:linear-gradient(#fff,#eef2f6);box-shadow:0 1px #1018281a}body.game-page th.round-header,body.game-page th.opp-header,body.game-page th.sort-header{cursor:pointer}body.game-page th.sort-header:hover,body.game-page th.round-header:hover,body.game-page th.opp-header:hover,body.game-page th.th-tiebreak:hover{background:#b8ccf8}body.game-page th.th-tiebreak{cursor:help}.th-tip-popup{z-index:9999;border:1px solid var(--ui-color-primary-border);background:var(--ui-color-primary-strong);max-width:260px;color:var(--ui-color-on-primary);box-shadow:var(--ui-shadow-floating);white-space:pre-wrap;pointer-events:none;border-radius:10px;padding:7px 10px;font-size:13px;line-height:1.5;position:fixed}body.game-page th.round-header.selected,body.game-page th.opp-header.selected{background:#f90}body.game-page th.round-header,body.game-page td.score-cell{min-width:0}body.game-page td.score-cell{cursor:pointer}body.game-page td.score-cell.has-score{background:#cce5ff}body.game-page td.score-cell.round-complete,body.game-page td.score-cell.round-complete:hover,body.game-page #gameTableBodyScroll tbody tr:hover td.score-cell.round-complete,body.game-page #gameTableBodyScroll tbody tr:hover td.score-cell.round-complete:hover{background:#d9f99d}body.game-page td.opp-cell{background:0 0}body.game-page td.opp-cell.first-move{color:#c00}body.game-page td.bye{background:#e8e8e8}body.game-page td.total-score-cell{background:#b3d9ff}body.game-page td.rank-cell{background:#f8bbd0}body.game-page td.withdrawn{color:#999;text-decoration:line-through}body.game-page td.name-cell.withdrawn{background:#e8e8e8}body.game-page td.name-cell[data-withdrawn="1"]{background:#9aa3b2}body.game-page .name-cell{cursor:pointer;text-align:left;white-space:nowrap;min-width:min-content}body.game-page td.name-cell,body.game-page .game-head-table thead th.name-col{left:var(--draw-col-w);z-index:30;position:sticky}body.game-page td.name-cell{background:#c8e6c9}body.game-page .game-head-table thead th.name-col{z-index:60;background:linear-gradient(#fff,#eef2f6)}body.game-page td.draw-col,body.game-page .game-head-table thead th.draw-col{z-index:55;white-space:nowrap;background:#f8fafc;min-width:min-content;position:sticky;left:0}body.game-page .game-head-table thead th.draw-col{z-index:70}body.game-page .game-head-table thead th.draw-col:hover{background:#b8ccf8}body.game-page .editable{cursor:pointer;min-width:min-content}body.game-page .editable:hover{background:#f0f8ff}body.game-page .editable input{border:1px solid var(--primary);width:100%;font-size:inherit;background:var(--ui-color-surface);border-radius:6px;outline:none;padding:1px 3px;font-family:inherit}body.game-page .editable input:focus{box-shadow:0 0 0 4px var(--ring)}body.game-page td.score-cell:hover{cursor:pointer;background:#155eef1a;box-shadow:inset 0 0 0 1px #155eef59}body.game-page td.score-cell.has-score:hover{background:#cce5ff;box-shadow:inset 0 0 0 1px #155eef73}body.game-page #gameTableBodyScroll tbody td{transition:box-shadow .15s}body.game-page #gameTableBodyScroll tbody tr:nth-child(2n) td{box-shadow:inset 0 0 0 9999px #10182809}body.game-page #gameTableBodyScroll tbody tr:hover td{box-shadow:inset 0 0 0 9999px #ffc8781f}body.game-page #gameTableBodyScroll tbody tr:hover td.score-cell:hover{box-shadow:inset 0 0 0 1px #155eef61,inset 0 0 0 9999px #ffb45a2e}body.game-page #gameTableBodyScroll tbody tr:hover td.score-cell.has-score:hover{box-shadow:inset 0 0 0 1px #155eef73,inset 0 0 0 9999px #ffb45a33}body.game-page .game-header-strip{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:12px;max-width:100%;margin:10px 0;padding:0;display:flex}body.game-page .game-header-card{background:var(--ui-color-surface);border:1px solid var(--border);border-radius:10px;flex:0 auto;min-width:0;padding:10px 12px;box-shadow:0 1px #1018280a}body.game-page .game-header-card--actions[hidden]{display:none!important}body.game-page .game-header-card .toolbar{align-items:flex-end;margin:0}body.game-page .game-page-qrcode-block{flex-direction:row;flex-shrink:0;align-self:flex-end;align-items:flex-end;gap:8px;display:flex}body.game-page .game-page-qrcode-block[hidden]{display:none!important}body.game-page .game-page-qrcode-panel{background:var(--ui-color-surface);border:1px solid var(--border);text-align:center;border-radius:10px;padding:4px;box-shadow:0 4px 16px #1018281f}body.game-page .game-page-qrcode-panel[hidden]{display:none!important}body.game-page .game-page-qrcode{flex-shrink:0;width:120px;height:120px;line-height:0;display:inline-block;overflow:hidden}body.game-page .game-page-qrcode img,body.game-page .game-page-qrcode canvas{display:block;width:100%!important;height:100%!important}body.game-page .tournament-info{min-width:0;max-width:100%;color:var(--ui-color-label);flex:0 auto;margin:0;padding:0;font-size:17px;line-height:1.45}body.game-page .tournament-info span{margin-right:1rem}.pair-preview-panel{max-width:100%;color:var(--text);border:1px solid var(--border);background:#ffffffb8;border-radius:10px;margin-top:1.25rem;padding:12px 14px;font-size:13px;line-height:1.45;box-shadow:0 1px #1018280a}.pair-preview-panel__title{margin:0 0 8px;font-size:14px;font-weight:700}.pair-preview-panel__subtitle{color:var(--muted);text-transform:none;letter-spacing:0;margin:14px 0 6px;font-size:12px;font-weight:700}.pair-preview-panel__hint{color:var(--muted);margin:0 0 10px;font-size:12px}.pair-preview-panel__loading,.pair-preview-panel__err{margin:0 0 8px;font-size:12px}.pair-preview-panel__err{color:var(--danger)}.pair-preview-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.pair-preview-table th,.pair-preview-table td{border:1px solid var(--border);text-align:left;padding:4px 8px}.pair-preview-table th{white-space:nowrap;background:#155eef0f;font-weight:600}.pair-preview-table tbody tr:nth-child(2n){background:#10182805}body.game-page .game-page-qrcode-panel,body.game-page .game-page-qrcode{background:var(--ui-form-control-bg-focus)}body.game-page>.sched-game-app-host{box-sizing:border-box;width:100%;min-width:0}body.game-page>.sched-game-app-host>#game-area{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));width:100%;max-width:none;padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px));box-sizing:border-box;margin-left:auto;margin-right:auto}body.game-page>.sched-game-app-host>#game-area>.game-header-strip,body.game-page>.sched-game-app-host>#game-area>#tableWrap{box-sizing:border-box;width:100%;max-width:none;margin-left:0;margin-right:0;padding-left:0;padding-right:0}@media (width>=600px){body.game-page>.sched-game-app-host>#game-area{width:100%;max-width:1100px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin-left:auto;margin-right:auto}body.game-page>.sched-game-app-host>#game-area>.game-header-strip,body.game-page>.sched-game-app-host>#game-area>#tableWrap{width:100%;max-width:100%}}.game-initial-loading{text-align:center;color:var(--ui-color-muted);padding:24px}.game-table-stage{position:relative}.game-table-stage>:not(.game-group-switch-overlay){transition:opacity .16s}.game-table-stage.is-switching>:not(.game-group-switch-overlay){opacity:.52}.game-group-switch-overlay{z-index:30;box-sizing:border-box;cursor:progress;justify-content:center;align-items:flex-start;padding-top:20px;display:flex;position:absolute;inset:0}.game-group-switch-overlay__label{border:3px solid var(--ui-color-border);border-top-color:var(--ui-color-primary);width:32px;height:32px;box-shadow:none;color:#0000;background:0 0;border-radius:50%;flex:0 0 32px;padding:0;font-size:0;line-height:0;animation:.72s linear infinite game-group-switch-spin}@keyframes game-group-switch-spin{to{transform:rotate(360deg)}}.game-empty-roster{color:var(--ui-color-muted);padding:16px}@media (prefers-reduced-motion:reduce){.game-table-stage>:not(.game-group-switch-overlay){transition:none}.game-group-switch-overlay__label{animation:none}}
