:root{--primary:#409eff;--success:#67c23a;--warning:#e6a23c;--danger:#f56c6c;--info:#909399;--text:#606266;--strong:#303133;--muted:#909399;--border:#dcdfe6;--light:#ebeef5;--page:#f0f2f5;--nav:#304156}*{box-sizing:border-box}body{color:var(--text);background:var(--page);margin:0;font:14px/1.5 Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button,a,input,textarea,select{outline:none}button:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #79bbff}a{color:var(--primary);text-decoration:none}p{margin:0 0 12px}.icon{vertical-align:middle;fill:currentColor;flex-shrink:0;display:inline-block}.btn{border:1px solid var(--border);height:32px;color:var(--text);white-space:nowrap;background:#fff;border-radius:4px;justify-content:center;align-items:center;gap:3px;padding:8px 15px;font-family:Arial,Microsoft YaHei,sans-serif;font-size:14px;font-weight:500;line-height:1;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{color:var(--primary);background:#ecf5ff;border-color:#c6e2ff}.btn:disabled{opacity:.5}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:#79bbff;border-color:#79bbff}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.success:hover{background:#95d475}.btn.warning{background:var(--warning);border-color:var(--warning);color:#fff}.btn.warning:hover{background:#eebe77}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{background:#f89898}.btn.info{background:var(--info);border-color:var(--info);color:#fff}.btn.small{border-radius:3px;height:24px;padding:5px 9px;font-size:12px}.input{border:1px solid var(--border);width:100%;min-width:0;height:32px;color:var(--text);background:#fff;border-radius:4px;padding:0 11px;font-size:14px;line-height:30px;transition:border-color .15s}.input:hover{border-color:#c0c4cc}.input:focus{border-color:var(--primary)}.input:disabled,.disabled .input{color:#a8abb2;cursor:not-allowed;background:#f5f7fa;border-color:#e4e7ed}.input::placeholder{color:#a8abb2}.textarea{resize:vertical;height:80px;padding:6px 11px;line-height:1.5}.text-button{color:inherit;text-align:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.text-button:hover{color:var(--primary)}.hint{color:var(--muted);margin:5px 0;font-size:12px}.danger-text{color:var(--danger)!important}.success-text{color:#67c23a}.disabled{color:#a8abb2}.loading-page{justify-content:center;align-items:center;gap:12px;height:100vh;display:flex}.loading-spinner{border:2px solid #d9ecff;border-top-color:var(--primary);border-radius:50%;width:22px;height:22px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.select{width:100%;min-width:0;position:relative}.select-trigger{border:1px solid var(--border);width:100%;height:32px;color:var(--text);text-align:left;background:#fff;border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:4px 11px;display:flex}.select-trigger>span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.select-trigger .placeholder,.select-trigger>.icon{color:#a8abb2}.select-trigger:focus{border-color:var(--primary)}.select-trigger:disabled{color:#a8abb2;background:#f5f7fa}.select-options{z-index:2100;background:#fff;border:1px solid #e4e7ed;border-radius:4px;width:max-content;min-width:100%;max-width:500px;max-height:280px;padding:6px 0;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 2px 12px #0000001a}.select-options button{text-align:left;width:100%;min-height:34px;color:var(--text);white-space:nowrap;background:#fff;border:0;justify-content:space-between;align-items:center;gap:14px;padding:7px 20px;display:flex}.select-options button:hover,.select-options button.active{background:#f5f7fa}.select-options button.selected{color:var(--primary);font-weight:600}.select-options button:disabled{color:#c0c4cc}.select-empty{color:#909399;text-align:center;padding:6px 20px}.select-tag{color:#909399;background:#f0f2f5;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:12px;line-height:22px}.select-tag:after{content:""}.number-input{border:1px solid var(--border);border-radius:4px;flex-shrink:0;align-items:stretch;width:150px;min-width:110px;height:32px;display:flex;overflow:hidden}.number-input input{appearance:textfield;width:100%;min-width:0;color:var(--text);text-align:center;background:#fff;border:0;outline:0;padding:0 4px}.number-input input::-webkit-inner-spin-button{appearance:none}.number-input button{color:#606266;background:#f5f7fa;border:0;flex:0 0 31px;justify-content:center;align-items:center;display:flex}.number-input button:first-child{border-right:1px solid var(--border)}.number-input button:last-child{border-left:1px solid var(--border)}.number-input button:hover{color:var(--primary)}.number-input button:disabled{color:#c0c4cc}.number-input.disabled{border-color:#e4e7ed}.number-input.disabled input{color:#a8abb2;background:#f5f7fa}.radios{white-space:nowrap;align-items:center;gap:26px;min-height:32px;display:flex}.radios label{cursor:pointer;align-items:center;gap:7px;display:flex}.radios input{appearance:none;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:50%;width:14px;height:14px;margin:0}.radios input:checked{border:5px solid var(--primary)}.radios input:checked+span{color:var(--primary)}.radios input:disabled{cursor:not-allowed;background:#f5f7fa;border-color:#e4e7ed}.radios input:disabled:checked{border-color:#c0c4cc}.radios input:disabled+span{color:#a8abb2}.checkboxes{flex-wrap:wrap;align-items:center;gap:22px;min-height:32px;display:flex}.checkboxes label{white-space:nowrap;align-items:center;gap:8px;display:flex}.checkboxes input{accent-color:var(--primary);width:14px;height:14px;margin:0}.dropdown{vertical-align:middle;display:inline-block;position:relative}.split-button{display:flex}.split-button.split>.btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.split-button.split>.btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;padding-left:8px;padding-right:8px}.split-button.split>.danger:last-child{border-left-color:#f89898}.split-button.split>.info:last-child{border-left-color:#b1b3b8}.dropdown-menu{z-index:1100;background:#fff;border:1px solid #e4e7ed;border-radius:4px;min-width:130px;max-width:280px;padding:5px 0;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 2px 12px #0000001a}.dropdown-menu>button{color:#606266;text-align:left;white-space:nowrap;background:#fff;border:0;width:100%;padding:7px 18px;font-size:14px;line-height:22px;display:block}.dropdown-menu>button:hover{color:var(--primary);background:#ecf5ff}.dropdown-menu>button:disabled{color:#bbb;background:#fff}.dropdown-menu>button.divider{border-top:1px solid var(--light);margin-top:6px;padding-top:10px}.navbar{background:var(--nav);color:#bfcbd9;z-index:1000;align-items:stretch;height:50px;display:flex;position:relative}.brand{color:#fff;background:#263445;flex-shrink:0;align-items:center;gap:10px;padding:0 24px;font-size:14px;font-weight:600;display:flex}.brand img{object-fit:cover;width:20px;height:20px}.brand span{white-space:nowrap}.main-navigation{flex:1;min-width:50px;overflow:visible}.main-navigation nav{align-items:stretch;height:50px;display:flex}.nav-item{white-space:nowrap;color:#bfcbd9;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:6px;min-width:110px;padding:0 17px;font-size:14px;display:flex}.nav-item:hover{background:#263445}.nav-item.active{color:var(--primary);border-bottom-color:var(--primary)}.nav-item .dropdown .btn{height:48px;color:inherit;background:0 0;border:0;padding:0}.nav-overflow .btn,.account-menu .btn{color:#bfcbd9;background:0 0;border:0;gap:8px;height:50px}.nav-overflow .btn:hover,.account-menu .btn:hover{background:#263445}.nav-overflow .btn>.icon:last-child,.account-menu .btn>.icon:last-child{display:none}.current-name{color:#e5eaf3;white-space:nowrap;flex-shrink:1;align-items:center;gap:8px;min-width:0;max-width:220px;padding:0 10px;display:flex}.current-name span{text-overflow:ellipsis;overflow:hidden}.fullscreen-button{color:#bfcbd9;background:0 0;border:0;padding:0 14px}.account-menu{flex-shrink:0;margin-right:3px}.account-menu .dropdown-menu{left:auto;right:8px}.avatar{color:#5f87a7;background:#d9ecff;border:2px solid #f8fafb;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;display:flex}.app-main{min-height:calc(100vh - 50px);padding:10px}.panel{border:1px solid var(--light);background:#fff;border-radius:3px;min-width:0;margin-bottom:10px;padding:20px}.filter-row{flex-wrap:wrap;align-items:center;gap:18px 28px;min-height:28px;display:flex}.filter-row>.input{width:190px}.filter-row>.select{width:100px}.filter-row>.btn+.btn{margin-left:-16px}.date-range{border:1px solid var(--border);color:#a8abb2;background:#fff;border-radius:4px;flex-shrink:0;align-items:center;gap:5px;width:260px;height:32px;padding:0 8px;display:flex}.date-range input{width:104px;min-width:0;color:var(--text);background:0 0;border:0;font-size:12px}.date-range input::-webkit-calendar-picker-indicator{display:none}.race-filters{padding:18px 10px;box-shadow:0 2px 12px #00000014}.race-filters .filter-row{column-gap:28px}.race-list,.current-race-panel{padding:20px}.current-race-panel{padding-bottom:12px}.table-scroll{width:100%;min-width:0;overflow-x:auto}.data-table{border-collapse:collapse;table-layout:auto;width:100%;color:var(--text);font-size:12px}.data-table th{color:#909399;border-bottom:1px solid var(--light);white-space:nowrap;padding:6px 9px;font-size:12px;font-weight:600;line-height:18px}.data-table td{text-align:center;border-bottom:1px solid var(--light);overflow-wrap:break-word;padding:10px 9px;line-height:23px}.data-table tbody>tr:nth-child(2n){background:#fafafa}.data-table tbody>tr:hover{background:#f5f7fa}.race-list .data-table th,.race-list .data-table td,.current-race-panel .data-table th,.current-race-panel .data-table td{border:1px solid var(--light)}.race-list .data-table td{padding:6px 9px}.race-name{width:200px;min-width:180px}.race-name .text-button{line-height:23px}.race-name .text-button:hover{color:#409eff}.data-table .dates{white-space:nowrap;min-width:140px;font-size:12px}.qr-thumb{vertical-align:middle;background:#fff;border:0;justify-content:center;align-items:center;width:48px;height:48px;padding:0;display:inline-flex}.qr-thumb img{object-fit:contain;width:100%;height:100%}.qr-thumb:hover{outline:1px solid #c6e2ff}.expand-cell{width:36px;min-width:36px}.expand{color:#a8abb2;justify-content:center;align-items:center;width:100%;min-height:25px;display:flex}.actions{white-space:nowrap}.actions>div{justify-content:center;align-items:center;gap:6px;display:flex}.actions .row-dropdown .btn{height:24px;padding:4px 7px;font-size:12px}.row-dropdown .dropdown-menu{left:auto;right:0}.race-list .actions{min-width:220px}.summary-row{background:#f7fbff!important}.expanded-row>td{color:#909399;padding:20px!important}.status-register{color:#67c23a}.pagination{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;margin-top:16px;padding:0 10px;font-size:14px;display:flex}.pagination .select{width:128px;margin:0 8px}.pagination .btn{background:#f0f2f5;border:0;border-radius:2px;width:32px;padding:0}.pagination .btn.primary{background:#409eff}.pagination .input{text-align:center;width:56px}.pagination>.btn:last-of-type{margin-right:10px}.empty{color:#909399;justify-content:center;align-items:center;min-height:60px;display:flex}.empty p{margin:0;font-size:14px}.empty.illustrated{flex-direction:column;min-height:260px;padding:40px}.empty.illustrated img{width:160px;height:173px}.empty.illustrated p{margin-top:20px}.choose-race{text-align:center;padding:60px}.dialog-overlay{background:#0008;justify-content:center;align-items:flex-start;padding:15vh 16px 40px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:#fff;border-radius:3px;outline:0;max-width:calc(100vw - 32px);margin:auto 0 0;box-shadow:0 12px 32px #0002}.dialog-overlay:not(.full) .dialog{margin-top:0;margin-bottom:auto}.dialog-header{color:#303133;justify-content:space-between;align-items:center;padding:16px 16px 14px;font-size:18px;line-height:24px;display:flex;position:relative}.dialog-header>button{color:#909399;background:0 0;border:0;padding:2px;display:flex}.dialog-header>button:hover{color:var(--primary)}.dialog-body{min-width:0;padding:10px 16px 16px;font-size:14px}.dialog-footer{text-align:right;justify-content:flex-end;align-items:center;gap:12px;padding:16px;display:flex}.dialog-overlay.full{background:#fff;padding:0}.full>.dialog{max-width:100%;min-height:100vh;box-shadow:none;border-radius:0;margin:0}.full .dialog-header{padding-top:16px}.full .dialog-body{padding:0 16px 20px}.tabs{border-bottom:2px solid #e4e7ed;align-items:stretch;gap:40px;min-height:44px;margin:0 0 16px;display:flex;position:relative;overflow:auto hidden}.tabs>button{color:#303133;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex-shrink:0;min-height:42px;margin-bottom:-2px;padding:0;font-size:14px;font-weight:500;position:relative}.tabs>button.active{color:#409eff;border-bottom:2px solid #409eff}.tabs>button:hover{color:#409eff}.race-editor .tabs{gap:39px}.race-editor .tabs:has(button:nth-child(7)){gap:27px}.race-tab-content{padding-top:0}.form-grid{grid-template-columns:1fr 1fr;align-items:start;gap:18px 22px;padding-top:0;display:grid}.field{align-items:flex-start;min-width:0;min-height:32px;display:flex}.field-label{white-space:nowrap;color:#606266;flex:0 0 100px;justify-content:flex-end;align-items:center;gap:4px;width:100px;min-height:32px;padding-right:12px;font-size:14px;line-height:20px;display:flex}.field-label i{color:#f56c6c;font-style:normal}.field-control{flex:1;min-width:0;position:relative}.span-two{grid-column:1/-1}.single-column{grid-template-columns:1fr;gap:18px}.single-column>.field>.field-control{display:block!important}.single-column>.field>.field-control>.input{width:100%!important}.single-column .field-label{flex-basis:100px;width:100px}.single-column .select{max-width:100%}.single-column>.hint.indented{margin:-13px 0 0 100px}.form-grid>.field:has(.datetime-field) .field-label{flex-basis:96px;width:96px}.form-error,.field-error{color:#f56c6c;margin-top:8px;font-size:12px}.has-error .input{border-color:#f56c6c}.compact-form .field-label{flex-basis:90px;width:90px}.race-editor .dialog-body{padding-top:0}.address-row{gap:10px;margin-bottom:8px;display:flex}.upload{cursor:pointer;color:#8c939d;background:#fff;border:1px dashed #d9d9d9;border-radius:6px;justify-content:center;align-items:center;width:100px;height:100px;display:flex;overflow:hidden}.upload:hover{border-color:var(--primary)}.upload input,.file-input{display:none}.upload img{object-fit:contain;width:100%;height:100%}.upload.disabled{cursor:not-allowed}.upload+.text-button{color:#f56c6c;margin-top:3px;font-size:12px;display:block}.inline-fields{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline-fields .number-input{width:110px}.inline-fields .number-input button{flex-basis:25px}.awards-editor{flex-direction:column;gap:18px;display:flex}.awards-editor>.btn{align-self:flex-start}.award-row{align-items:center;gap:8px;display:flex}.award-row>.input:first-of-type{width:100px}.award-row>.number-input{width:120px;min-width:100px}.award-row>.btn{color:#f56c6c;border:0;padding:6px}.editor{background:#fff;border:1px solid #ccc;width:100%}.editor-toolbar{background:#fff;border-bottom:1px solid #ccc;flex-wrap:wrap;align-items:center;gap:2px;min-height:42px;padding:5px;display:flex}.editor-toolbar button{color:#606266;background:#fff;border:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:13px;display:flex}.editor-toolbar button:hover{color:#409eff;background:#ecf5ff}.editor-toolbar button:disabled{opacity:.4}.editor-toolbar select{color:#606266;background:#fff;border:0;width:95px;font-size:12px}.editor-content{color:#333;outline:0;min-height:230px;max-height:380px;padding:12px 15px;line-height:1.6;overflow:auto}.editor-content:empty:before{content:attr(data-placeholder);color:#a8abb2}.editor-content h1{font-size:28px}.editor-content h2{font-size:23px}.editor-content h3{font-size:19px}.editor-content table{border-collapse:collapse}.editor-content td{border:1px solid #ccc;min-width:90px;padding:6px}.editor textarea{border:0;width:100%;min-height:230px;padding:12px;font:12px monospace}.editor.disabled{background:#f5f7fa}.editor.disabled .editor-content{color:#a8abb2}.qr-preview{text-align:center}.qr-preview>img{width:320px;max-width:100%;margin:0 auto 15px;display:block}.toast-stack{z-index:10000;pointer-events:none;flex-direction:column;align-items:center;gap:10px;max-width:calc(100vw - 32px);display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast{color:#67c23a;white-space:pre-wrap;text-align:center;background:#f0f9eb;border:1px solid #e1f3d8;border-radius:4px;padding:11px 18px;box-shadow:0 2px 10px #0001}.toast.error{color:#f56c6c;background:#fef0f0;border-color:#fde2e2}.team-filters .filter-row{gap:18px 28px}.team-filters>.filter-row>.select{width:190px}.team-filters .filter-row>.btn{margin-left:0}.team-list .data-table td{padding:12px 10px;font-size:14px;line-height:24px}.team-list .data-table th{padding:12px 10px;font-size:14px;font-weight:400}.team-list .actions .btn{font-size:12px}.team-list .actions{min-width:390px}.team-list .data-table td:first-child{min-width:65px}.team-list .data-table td:nth-child(2){min-width:140px}.team-list .data-table td:nth-child(3),.team-list .data-table td:nth-child(4){min-width:110px}.team-list .data-table td.source-cell{width:140px;min-width:130px}.team-list .data-table td.dual-state{width:125px;min-width:105px}.checked{position:relative}.checked:after{content:"";background:#f56c6c;border-radius:50%;width:5px;height:5px;position:absolute;top:0;right:-4px}.badge-label{display:inline-block;position:relative}.badge-label sup{color:#fff;background:#f56c6c;border:1px solid #fff;border-radius:10px;padding:0 5px;font-size:12px;line-height:16px;position:absolute;top:-8px;left:100%;transform:translate(-4px)}.order-filters{margin-bottom:15px}.order-filters>.select{width:160px}.tag{white-space:nowrap;color:#409eff;background:#ecf5ff;border:1px solid #d9ecff;border-radius:4px;padding:0 7px;font-size:12px;line-height:22px;display:inline-block}.tag.warning{color:#e6a23c;background:#fdf6ec;border-color:#faecd8}.tag.success{color:#67c23a;background:#f0f9eb;border-color:#e1f3d8}.tag.info{color:#909399;background:#f4f4f5;border-color:#e9e9eb}.import-tools{flex-wrap:wrap;align-items:center;gap:14px;margin:18px 0;display:flex}.club-logo{object-fit:cover;width:50px;height:50px}.vertical-actions{white-space:normal;width:90px}.vertical-actions>.btn{margin:3px auto;display:flex}.club-tab-content{padding:0 0 6px}.club-tab-content>.single-column>.field-label{width:110px}.fee-plans{flex-direction:column;gap:12px;display:flex}.fee-plan{align-items:center;display:flex}.fee-plan>.input{text-align:center;border-radius:0;width:80px}.fee-plan>.input:nth-of-type(2){width:62px}.fee-plan>.input:nth-of-type(3){width:65px}.fee-plan>.input:first-child{border-radius:4px 0 0 4px}.fee-plan .addon{border:1px solid var(--border);color:#909399;background:#f5f7fa;border-left:0;justify-content:center;align-items:center;height:32px;padding:0 18px;display:flex}.fee-plan>.btn{border-radius:50%;width:24px;margin-left:10px;padding:4px}.fee-plan>.btn.danger{color:#f56c6c;background:#fef0f0;border-color:#fde2e2}.fee-plan>.btn.primary{color:#409eff;background:#ecf5ff;border-color:#d9ecff}.score-field{align-items:center;gap:28px;display:flex}.score-field>.input{width:230px}.member-filters{margin:0 0 20px}.full .data-table td{height:110px;font-size:14px}.full .data-table th{padding:15px 8px;font-size:14px}.full .data-table td:nth-child(11),.full .data-table td:nth-child(12){max-width:100px}.audit-table{margin-top:16px}.penalty-remark{max-width:500px;text-align:left!important}.rank-layout{grid-template-columns:1fr 1fr;gap:0;display:grid}.rank-layout.group-rank{grid-template-columns:1fr}.rank-scroll{min-width:0;overflow-x:auto}.rank-table{border-collapse:collapse;table-layout:auto;color:#606266;width:100%;font-size:12px}.rank-table th{color:#fff;white-space:nowrap;background:#e99b4c;border:1px solid #dcdfe6;padding:4px 5px;font-size:12px;font-weight:400;line-height:18px}.rank-table th:first-child{background:#304e7b;min-width:45px}.rank-table td{text-align:center;white-space:nowrap;border:1px solid #dcdfe6;min-width:40px;padding:4px 5px;line-height:22px}.rank-table tbody tr:nth-child(2n){background:#f5f7fa}.rank-table td:nth-child(2){min-width:70px}.tables-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.timer{color:#303133;font-variant-numeric:tabular-nums;margin-left:auto;font-size:28px}.match-grid{flex-wrap:wrap;align-items:flex-start;gap:10px;padding-top:8px;display:flex}.match-card-wrap{position:relative}.match-card{color:#111;background:#e4e7ed;border-radius:7px;grid-template-columns:1fr 90px 1fr;width:280px;min-height:128px;padding:8px 10px;display:grid;box-shadow:1px 1px 5px #0002}.side{flex-direction:column;min-width:0;display:flex}.side.ew{align-items:flex-start}.side.ns{align-items:flex-end}.direction{color:#fff;white-space:nowrap;border-radius:4px;padding:0 5px;font-size:18px;font-weight:400;line-height:22px}.ew .direction{background:#e65b45}.ns .direction{background:#304e7b}.team-number{white-space:nowrap;font-size:22px;line-height:34px}.ew .team-number{color:#df5f48}.ns .team-number{color:#304e7b}.players{white-space:nowrap;flex-direction:column;margin-top:3px;font-size:20px;font-weight:600;line-height:24px;display:flex}.ns .players{text-align:right}.side small{text-overflow:ellipsis;white-space:nowrap;max-width:85px;font-size:12px;font-weight:400;overflow:hidden}.match-center{flex-direction:column;align-items:center;display:flex}.table-number{color:#111;background:0 0;border:0;padding:0;font-size:40px;font-weight:700;line-height:37px}.table-number small{margin-left:3px;font-size:23px}.match-score{white-space:nowrap;font-size:28px;font-weight:500;line-height:32px}.match-score>span:first-child{color:#e65b45}.match-score>span:last-child{color:#304e7b}.match-ended{color:#f56c6c;font-size:16px;font-weight:600;line-height:24px;text-decoration:underline}.score-popover{z-index:100;background:#fff;border:1px solid #e4e7ed;border-radius:3px;width:445px;max-width:calc(100vw - 20px);padding:12px;position:absolute;top:58px;left:-30px;overflow-x:auto;box-shadow:0 3px 12px #0002}.score-popover table{border-collapse:collapse;width:100%;min-width:300px}.score-popover th,.score-popover td{text-align:center;border:1px solid #dcdfe6;min-width:40px;padding:5px;font-size:14px;font-weight:400}.score-popover th:first-child{min-width:70px}.login-page{background:radial-gradient(at 25% 35%,#e9edf9aa,#0000 55%),linear-gradient(115deg,#f2f5fb,#f9fbff);justify-content:center;align-items:center;min-height:100vh;padding:50px 20px 100px;display:flex;position:relative}.login-card{background:#ffffff45;border:1px solid #ffffff40;border-radius:18px;width:400px;padding:40px 30px 50px;box-shadow:0 2px 14px #00000015}.login-title{justify-content:flex-end;align-items:center;gap:20px;margin-bottom:50px;display:flex;position:relative}.login-title h1{color:#303133;white-space:nowrap;margin:0;font-size:24px;font-weight:700;line-height:30px}.login-title>span{color:#409eff;background:#d9ecff;border:1px solid #c6e2ff;border-radius:2px;padding:2px 9px;font-size:12px;position:absolute;top:-2px;right:-10px;transform:translate(0)}.login-title h1{margin-right:60px;padding-right:0}.login-card form>.btn{width:100%;height:40px;margin-top:18px}.login-card form>.btn:last-child{margin-top:20px}.login-input{border:1px solid var(--border);background:#ffffff10;border-radius:4px;align-items:center;gap:8px;height:50px;margin-bottom:18px;padding:0 10px;display:flex;position:relative;box-shadow:0 0 3px #00000008}.login-input>.input{background:0 0;border:0;outline:0;height:48px;padding:0;line-height:48px}.login-input .icon{color:#606266;width:12px}.login-input.invalid{border-color:#f56c6c}.login-input>span{color:#f56c6c;font-size:12px;position:absolute;top:100%;left:0}.login-card form>.btn:first-of-type{margin-top:0}.login-page footer{text-align:center;color:#000;font-size:10px;line-height:24px;position:absolute;bottom:10px;left:0;right:0}.wechat-mode{padding-bottom:30px}.wechat-mode .login-title{margin-bottom:25px}.wechat-panel{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.wechat-panel h2{color:#333;font-size:20px;font-weight:400}.wechat-avatar{color:#a0cfff;background:#ecf5ff;border-radius:12px;padding:15px}.wechat-panel>.btn{width:100%;height:40px}.wechat-panel>.text-button{color:#576b95;font-size:12px}.presentation{color:#fff;background:#23578c url(/assets/presentation-bg.jpg) 50%/cover no-repeat fixed;height:100vh;min-height:100vh;padding:0 30px;position:relative;overflow:hidden}.presentation>h1{color:#ffde73;white-space:nowrap;margin:8px 0 15px;font-size:clamp(30px,5.7vw,90px);font-weight:700;line-height:1.35;overflow:hidden}.presentation-control{z-index:20;position:absolute;top:2px;right:4px}.presentation-control>button{color:#fff;background:0 0;border:0;display:flex}.presentation-control>div{background:#fff;border-radius:3px;width:100px;padding:5px 0;display:none;position:absolute;top:38px;right:0}.presentation-control.open>div{display:block}.presentation-control>div>button{color:#606266;white-space:nowrap;background:#fff;border:0;width:100%;padding:8px 16px}.presentation-control>div>button:disabled{color:#c0c4cc}.presentation-qr{text-align:center;width:25.2%;position:absolute;top:35%;left:2.4%}.presentation-qr>img{border-radius:15px;width:100%}.presentation-qr>strong{white-space:nowrap;margin-top:4px;font-size:clamp(18px,3.8vw,54px);display:block}.presentation-roster{background:#294366;border:2px solid #fff;border-radius:10px;position:absolute;inset:19.7% 1.6% 2.3% 31.6%}.presentation-count{white-space:nowrap;background:#294366;border-radius:12px 12px 0 0;padding:8px 20px;font-size:28px;font-weight:600;position:absolute;bottom:100%;left:-2px}.presentation-count>b{color:#e65b45}.presentation-names{grid-template-columns:1fr 1fr;align-content:start;gap:15px 10px;max-height:100%;padding:10px 15px;display:grid;overflow:auto}.presentation-names>div{color:#294366;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:4px;padding:3px 10px;font-size:clamp(16px,2.3vw,38px);font-weight:700;overflow:hidden}.form-grid>.field:nth-child(2n):not(.span-two)>.field-control{justify-content:initial;display:block}.form-grid>.field:nth-child(2n):not(.span-two)>.field-control>.input{width:100%}.form-grid>.field.right-field{justify-content:flex-end}.form-grid>.field.right-field>.field-control{flex:0 0 150px}.form-grid>.field.capacity-field>.field-control{flex-basis:120px}.capacity-field .number-input{width:120px}.race-editor .form-grid>.field:has([aria-label=赛事赛制]) .select{max-width:150px}.race-editor .dialog-footer{padding-top:16px}.datetime-input{border:1px solid var(--border);background:#fff;border-radius:4px;align-items:center;height:32px;display:flex;position:relative}.datetime-input:focus-within{border-color:var(--primary)}.datetime-input.invalid{border-color:#f56c6c}.datetime-field{width:100%}.datetime-input>.input{background:0 0;height:30px;padding-left:0;border:0!important}.datetime-input>button{color:#a8abb2;background:0 0;border:0;padding:0 10px;display:flex}.datetime-input.disabled{background:#f5f7fa}.date-time-picker .dialog-body{padding-top:6px}.date-time-picker .dialog-footer{justify-content:space-between;gap:6px}.date-time-picker .dialog-footer .btn{margin:0;padding:0 13px}.calendar-heading{justify-content:space-between;align-items:center;gap:6px;margin-bottom:12px;display:flex}.calendar-heading>button{color:#606266;cursor:pointer;background:0 0;border:0;padding:5px}.calendar-heading>input{width:90px}.calendar-heading>select{width:82px}.calendar-week,.calendar-days{text-align:center;grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.calendar-week{color:#909399;border-bottom:1px solid #ebeef5;margin-bottom:5px;padding-bottom:8px}.calendar-days button{color:#606266;cursor:pointer;background:#fff;border:0;border-radius:50%;width:32px;height:32px;margin:auto}.calendar-days button:hover,.calendar-days button:focus-visible{color:#409eff;background:#ecf5ff}.calendar-days button.outside{color:#c0c4cc}.calendar-days button.today{color:#409eff;font-weight:600}.calendar-days button.selected{color:#fff;background:#409eff}.calendar-time{border-top:1px solid #ebeef5;align-items:center;gap:8px;margin-top:8px;padding-top:14px;display:flex}.calendar-time select{width:67px}.calendar-preview{color:#606266;text-align:center;margin:14px 0 0;font-size:13px}.dropdown-portal{z-index:1800;max-height:calc(100vh - 70px);overflow:auto}.login-page{padding-top:100px;padding-bottom:100px}.login-title{justify-content:center}.login-title h1{margin-right:0}.login-title>span{right:-10px;transform:translate(0)}.login-card{transform:translateY(0)}.form-grid>.field.test-radio>.field-control{flex-basis:96px}.race-editor .tabs{margin-bottom:14px}.tables-panel>.tabs{min-height:40px}.tables-panel>.tabs>button{min-height:38px}.players{max-width:100%}.players>span{text-overflow:ellipsis;max-width:100%;overflow:hidden}.side .players{width:85px}.ns .players{align-items:flex-end}.side .players>span{max-width:85px}.club-tab-content .upload{width:80px;height:80px}.club-tab-content .editor-content{min-height:50px;max-height:150px}.club-tab-content .editor-toolbar{flex-wrap:nowrap;overflow:auto}.club-tab-content .editor-toolbar button{flex-shrink:0}.editor-source-icon{justify-content:center;align-items:center;width:16px;height:16px;display:flex}.editor-source-icon>svg{fill:currentColor;width:14px;height:14px;display:block}.editor-toolbar{gap:8px}.editor-image{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.editor-image:hover{color:#409eff;background:#ecf5ff}.editor-content img{max-width:100%;height:auto}@media (min-width:1500px){.brand{width:230px}.current-name{max-width:290px}}@media (max-width:1050px){.brand{padding:0 14px}.brand span{display:none}.nav-item{min-width:100px;padding:0 13px}.current-name{max-width:170px}.account-menu .btn{padding:0 8px}.filter-row{gap:18px 25px}.dialog-overlay{padding-top:15vh}.presentation-count{font-size:22px}.presentation-qr{width:25%}}@media (max-width:600px){.brand{padding:0 12px}.main-navigation{min-width:45px}.nav-item{min-width:90px;padding:0 8px}.current-name{max-width:135px;padding:0 5px;font-size:12px}.fullscreen-button{padding:0 8px}.account-menu .btn>span:last-of-type{display:none}.account-menu .btn{padding:0 8px}.app-main{padding:10px}.panel{padding:16px}.filter-row{gap:18px 16px}.filter-row>.input,.team-filters>.filter-row>.select,.filter-row>.select{width:calc(50% - 8px)}.race-filters .filter-row{gap:18px 16px}.race-filters .filter-row>.input{width:190px}.date-range{width:260px}.filter-row>.btn+.btn{margin-left:0}.dialog-overlay{padding:8vh 10px 24px}.dialog{max-width:calc(100vw - 20px)}.dialog-header{font-size:16px}.dialog-body{padding:8px 14px 14px}.form-grid{grid-template-columns:1fr;gap:16px}.form-grid>.field:nth-child(2n)>.field-control{display:block}.form-grid>.field:nth-child(2n)>.field-control>.input{width:100%}.span-two{grid-column:auto}.race-editor .tabs{gap:24px}.race-editor .tabs:has(button:nth-child(7)){gap:24px}.field-label{flex-basis:90px;width:90px;padding-right:8px;font-size:13px}.single-column .field-label{flex-basis:90px;width:90px}.field-control{flex:1}.single-column>.hint.indented{margin-left:90px}.tabs{gap:30px}.rank-layout{grid-template-columns:1fr}.rank-scroll{margin-bottom:6px}.award-row{flex-wrap:wrap}.award-row>.input{width:calc(50% - 24px)!important}.fee-plan{flex-wrap:wrap;row-gap:8px}.score-field{flex-wrap:wrap;gap:5px}.score-field>.input{width:100%}.club-tab-content .field:has(.checkboxes){flex-direction:column;gap:10px}.club-tab-content .checkboxes{gap:12px}.tables-toolbar{flex-wrap:wrap}.tables-toolbar .btn{padding:6px 8px;font-size:12px}.timer{font-size:22px}.match-card{width:280px}.score-popover{left:-10px}.login-page{padding:50px 16px 100px}.login-card{padding:40px 24px 45px}.login-title h1{margin-right:42px;font-size:21px}.login-title>span{padding:2px 6px;right:-8px}.login-page footer{padding:0 10px;font-size:8px;line-height:20px}.presentation{padding:0 15px}.presentation-qr{width:30%;top:auto;bottom:4%;left:3%}.presentation-roster{top:22%;left:36%;right:3%}.presentation-count{padding:6px;font-size:14px}.presentation-names{grid-template-columns:1fr;gap:8px;padding:8px}.presentation-names>div{padding:5px;font-size:16px}.presentation-qr>strong{font-size:15px}.pagination{gap:5px;padding:0}.pagination .select{width:110px;margin:0}.pagination .btn{width:27px;height:28px}.member-filters>.input{width:calc(50% - 8px)}}
.race-filters .date-range{width:240px}.race-list .data-table,.current-race-panel .data-table{table-layout:fixed}.race-list .data-table th:first-child,.current-race-panel .data-table th:first-child{width:48px}.race-list .data-table th:nth-child(2),.race-list .data-table th:nth-child(3),.current-race-panel .data-table th:nth-child(2),.current-race-panel .data-table th:nth-child(3){width:80px}.race-list .data-table th:nth-child(4),.current-race-panel .data-table th:nth-child(4){width:200px}.race-list .data-table th:nth-child(5),.race-list .data-table th:nth-child(6),.current-race-panel .data-table th:nth-child(5),.current-race-panel .data-table th:nth-child(6){width:80px}.race-list .data-table th:nth-child(7),.current-race-panel .data-table th:nth-child(7){width:120px}.race-list .data-table th:nth-child(8),.current-race-panel .data-table th:nth-child(8){width:180px}.race-list .data-table th:nth-child(9),.current-race-panel .data-table th:nth-child(9){width:100px}.race-list .data-table th:nth-child(10),.race-list .data-table th:nth-child(11),.current-race-panel .data-table th:nth-child(10),.current-race-panel .data-table th:nth-child(11){width:80px}.race-list .data-table th:nth-child(12),.current-race-panel .data-table th:nth-child(12){width:220px}.race-list .data-table td:nth-child(7),.race-list .data-table td:nth-child(9),.race-list .data-table td:nth-child(10),.race-list .data-table td:nth-child(11),.current-race-panel .data-table td:nth-child(7),.current-race-panel .data-table td:nth-child(11){white-space:nowrap}.race-list .data-table .expand-cell{z-index:1;background:#fff;position:sticky;left:0}.dialog-body{padding-top:3px}.dialog:has(.club-tab-content) .dialog-body{padding-top:0}.dialog:has(.club-tab-content) .tabs{min-height:42px;margin-bottom:14px}.dialog:has(.club-tab-content) .tabs>button{min-height:40px}.dialog:has(.club-tab-content) .dialog-footer{padding-top:13px}.field:has(.upload)>.field-label{align-self:center}.club-tab-content .upload>.icon{width:18px;height:18px}.club-tab-content .field:has([aria-label=是否展示会员]){margin-top:20px}.member-date{width:220px;max-width:100%}.rank-table{table-layout:fixed}.rank-table th,.rank-table td{width:80px;min-width:80px}.rank-table th{padding:6px 5px}.rank-table td{padding:5px}.select-trigger[aria-disabled=true]{color:#a8abb2;cursor:not-allowed;background:#f5f7fa}.select-tag{align-items:center;gap:4px;display:inline-flex}.tag-close{color:#909399;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:13px;height:13px;padding:0;display:flex}.tag-close:hover{color:#fff;background:#909399}.team-filters{padding:19px 10px 16px}.team-filters .filter-row{gap:18px 32px}.split-button.split>.btn:last-child{margin-left:0;padding-left:9px;padding-right:9px}.team-filters .select:has([aria-label=团体筛选]){width:150px}.team-filters .select:has([aria-label=签到筛选]){width:100px}.team-list .tabs{min-height:40px;margin-bottom:14px}.team-list .tabs>button{min-height:38px}.team-list .data-table th{padding:10px}.team-list .data-table td{padding:8px 10px}.paired-table .data-table{table-layout:fixed}.team-list .paired-table .data-table td{min-width:0}.paired-table .data-table th:first-child{width:8.5%}.paired-table .data-table th:nth-child(2){width:11.5%}.paired-table .data-table th:nth-child(3),.paired-table .data-table th:nth-child(4){width:10%}.paired-table .data-table th:nth-child(5){width:13%}.paired-table .data-table th:nth-child(6){width:12%}.paired-table .data-table th:nth-child(7){width:35%}.paired-table .dual-state{white-space:nowrap}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.presentation>h1{margin-left:15px;font-size:clamp(30px,5.82vw,90px)}@media (max-width:1199px){.brand span,.nav-item>span,.current-name,.fullscreen-button{display:none}.brand{padding:0 16px}.nav-item{min-width:36px;padding:0 10px}.nav-item .dropdown .btn{font-size:0}}@media (max-width:600px){.team-list .paired-table .data-table{min-width:941px!important}.paired-table .data-table th:first-child{width:96px}.paired-table .data-table th:nth-child(2),.paired-table .data-table th:nth-child(3),.paired-table .data-table th:nth-child(4){width:80px}.paired-table .data-table th:nth-child(5){width:105px}.paired-table .data-table th:nth-child(6){width:120px}.paired-table .data-table th:nth-child(7){width:380px}.team-list .paired-table .data-table td{padding:20px 8px}.paired-table .data-table th{white-space:normal}.select-options{width:100%;max-width:100%}.select-options button{white-space:normal}.team-filters .filter-row{column-gap:32px}.team-filters .filter-row>.input{width:190px}.team-filters .filter-row>.dropdown{flex-shrink:0}.account-menu .btn>span:last-of-type{text-overflow:ellipsis;max-width:55px;display:inline-block;overflow:hidden}.main-navigation{min-width:42px}.brand{padding:0 15px}.club-tab-content .field:has([aria-label=是否展示会员]){margin-top:10px}}
.event-heading{background:linear-gradient(115deg,#ecf5ff,#fff);border:1px solid #dae6f2;border-radius:12px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;padding:28px 30px;display:flex}.event-heading h1{color:#193a58;margin:8px 0;font-size:27px}.event-heading p{color:#607488;margin:6px 0}.eyebrow{letter-spacing:2px;color:#557a9c;font-size:12px;font-weight:700}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.toolbar h2{margin-right:auto}.toolbar>.input{max-width:230px}.toolbar>.select{min-width:160px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0;display:grid}.stat-grid>div{background:#fff;border:1px solid #dde6ef;border-radius:10px;padding:24px}.stat-grid span{color:#687e92;font-size:13px;display:block}.stat-grid strong{color:#184a75;margin-top:10px;font-size:30px;display:block}.stat-grid strong small{color:#7d92a5;font-size:16px;font-weight:400}.stat-grid .stat-label{font-size:24px}.tournament-shell>.panel{border-radius:12px;margin:18px 0}.tournament-shell h2{color:#28445f;font-size:19px}.tournament-shell .tabs{background:#fff;border-radius:10px;padding:4px 20px}.workflow-steps{flex-wrap:wrap;gap:14px;padding:16px 0;list-style:none;display:flex}.workflow-steps li{flex:1;align-items:center;gap:8px;min-width:140px;font-size:14px;display:flex}.workflow-steps b{color:#2370b4;background:#e9f2fc;border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.rule-note{color:#3c5871;background:#f1f6fc;border-left:3px solid #4d8ac5;border-radius:4px;padding:16px 20px;font-size:14px;line-height:1.8}.rule-note p{margin:6px 0}.score-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px;padding:20px 0;display:grid}.score-card{background:#fff;border:1px solid #dce6ef;border-radius:12px;overflow:hidden}.score-card-head{background:#f6f9fc;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.status-pill{color:#26689f;white-space:nowrap;background:#e9f2fe;border-radius:20px;padding:5px 10px;font-size:12px}.status-pill.done{color:#267c51;background:#e7f6ee}.score-sides{text-align:center;grid-template-columns:1fr 30px 1fr;align-items:center;gap:8px;padding:24px 16px;display:grid}.score-sides small{color:#71869a}.score-sides p{min-height:28px;font-size:16px;line-height:1.7}.score-sides b{color:#245d8c;font-size:34px}.score-sides>span{color:#9aabba}.score-card>.toolbar{justify-content:space-between;padding:0 20px 12px}.score-card>.toolbar>span{color:#8292a3;font-size:13px}.score-entry-buttons{flex-wrap:wrap;gap:12px;padding:18px 0;display:flex}.score-entry-buttons .btn{min-height:44px}.score-dialog .field{margin:18px 0}.round-clock{font-variant-numeric:tabular-nums;color:#356482;font-size:23px}.empty-state{text-align:center;color:#7d8e9e;padding:50px}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;display:grid}.asset-grid img{object-fit:contain;background:#f3f6fa;width:100%;height:160px}.asset-grid figure{border:1px solid #dbe4ed;border-radius:10px;margin:0;padding:15px}.asset-grid figcaption{padding:10px 0}.public-shell{color:#273d52;background:#f4f7fb;min-height:100vh}.public-header{background:#fff;border-bottom:1px solid #e1e8f1;justify-content:space-between;align-items:center;padding:20px max(24px,50vw - 620px);display:flex}.public-header nav{align-items:center;gap:20px;display:flex}.public-shell main{max-width:1240px;margin:auto;padding:28px 24px}.public-shell .panel{border-radius:12px;margin:20px 0}.public-shell h1{font-size:30px}.public-shell details{border-bottom:1px solid #e6edf5;padding:18px}.event-card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin:20px 0;display:grid}.event-card{text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid #dbe6ef;border-radius:12px;padding:24px;display:block}.event-card h2{font-size:20px}.event-card p{color:#6f8193;line-height:1.8}.event-card strong{color:#246694}button.event-card{cursor:pointer}button.event-card:hover{border-color:#4f92cd;box-shadow:0 6px 20px #224c7110}.live-screen{color:#fff;text-align:center;background:#102c44 0 0/cover;min-height:100vh;padding:5vh 5vw}.live-screen h1{margin:20px;font-size:clamp(28px,3vw,64px)}.live-screen h2{color:#9fcfff;margin:28px 0;font-size:clamp(22px,2vw,40px)}.live-screen p{font-size:clamp(18px,1.6vw,30px);line-height:1.8}.live-screen .eyebrow{color:#9dbbda}.live-screen table{border-collapse:collapse;background:#163650;width:100%;font-size:clamp(16px,1.5vw,30px)}.live-screen td,.live-screen th{border-bottom:1px solid #ffffff20;padding:14px}.live-screen th{color:#9fcfff}.live-screen .round-clock{color:#b3d9ff;margin:12vh 0;font-size:clamp(60px,9vw,160px);display:block}.live-screen footer{color:#8ca9c3;margin-top:30px;font-size:14px}.screen-full{color:#fff;background:#ffffff20;border:1px solid #ffffff40;border-radius:5px;padding:8px;position:absolute;top:20px;right:20px}.screen-roster{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.screen-roster>div{background:#1a3d58;padding:20px;font-size:22px}.screen-roster span{color:#99c9f1;margin-top:10px;font-size:16px;display:block}.screen-url{color:#a9dafb;margin:50px 0;font-size:clamp(16px,2vw,36px);display:block}.screen-warning{background:#723d1c;padding:8px}.tournament-shell button:focus-visible,.public-shell button:focus-visible{outline-offset:3px;outline:3px solid #76b4ec}.score-dialog .table-wrap{max-height:300px;overflow:auto}@media (max-width:900px){.event-heading{flex-direction:column;align-items:flex-start}.stat-grid{grid-template-columns:repeat(2,1fr)}.score-grid{grid-template-columns:1fr}.screen-roster{grid-template-columns:repeat(2,1fr)}.public-header{gap:10px;padding:16px}.public-header nav{gap:10px}.workflow-steps li{min-width:130px}}@media print{.navbar,.toolbar,.btn,.tabs,.screen-full{display:none!important}.score-grid{grid-template-columns:repeat(2,1fr)}.score-card{break-inside:avoid}.tournament-shell,.app-main{padding:0}.panel{box-shadow:none}.live-screen{color:#000;background:#fff}}
