:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f6f8;font-family:Segoe UI,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#409eff1f,#0000 30%),#f4f6f8;min-width:320px;margin:0}pre,code{font-family:Cascadia Code,Consolas,monospace}#app{min-height:100vh}.w-full{width:100%}.mb-16{margin-bottom:16px}.mt-16{margin-top:16px}.page-stack{flex-direction:column;gap:16px;display:flex}.app-shell{min-height:100vh}.app-aside{background:#fff;border-right:1px solid #e5e7eb}.app-logo{border-bottom:1px solid #eef2f7;align-items:center;gap:12px;height:74px;padding:0 18px;display:flex}.app-logo-copy{min-width:0}.app-logo-mark{letter-spacing:1px;color:#94a3b8;margin:0 0 4px;font-size:12px}.app-logo-copy h1{white-space:nowrap;margin:0;font-size:17px;font-weight:700}.app-side-scroll{flex-direction:column;gap:8px;height:calc(100vh - 74px);padding:12px;display:flex;overflow:auto}.app-menu{background:0 0!important;border-right:none!important}.app-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex}.app-header-left,.app-header-right{align-items:center;gap:12px;display:flex}.app-header-title{white-space:nowrap;font-size:18px;font-weight:700}.app-header-subtitle{color:#909399;font-size:13px}.app-header-mobile-top,.app-header-mobile-main,.app-header-mobile-actions{display:flex}.app-header-mobile-hero{gap:8px;width:100%;padding:8px 0;display:grid}.app-header-mobile-copy{min-width:0}.app-header-menu-button{flex:none;width:40px!important;height:40px!important}.app-header-user-button{text-overflow:ellipsis;white-space:nowrap;max-width:116px;min-height:30px;overflow:hidden}.app-env-badge{flex:none}.app-main{padding:20px}.app-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.app-page-title{margin:0;font-size:26px}.app-page-description{color:#909399;margin:8px 0 0}.app-page-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.app-card-section{border-radius:18px!important}.query-form{margin-bottom:8px}.page-data-summary{color:#909399;margin-bottom:12px;font-size:13px}.page-pagination{justify-content:flex-end;margin-top:16px;display:flex}.page-form-actions{flex-wrap:wrap;gap:12px;display:flex}.detail-descriptions .el-descriptions__label,.detail-descriptions .el-descriptions__content{word-break:break-word}.page-tabs .el-tabs__nav{display:flex}.system-page{place-items:center;min-height:70vh;display:grid}.login-page{grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:40px;width:min(1180px,100% - 48px);min-height:100vh;margin:0 auto;padding:40px 0;display:grid}.login-cover{flex-direction:column;gap:24px;min-width:0;display:flex}.login-cover-intro,.login-cover-details{flex-direction:column;display:flex}.login-cover-mark{color:#409eff;letter-spacing:2px;margin:0 0 12px;font-size:13px;font-weight:700}.login-cover h1{margin:0;font-size:44px;line-height:1.2}.login-cover-desc{color:#606266;max-width:560px;margin:18px 0 24px;line-height:1.8}.login-cover-tags{margin-bottom:24px}.login-cover-feature-list{gap:12px;display:grid}.login-cover-feature-item{background:#ffffffb8;border:1px solid #ebeef5;border-radius:16px;padding:16px 18px}.login-cover-feature-title{font-size:16px;font-weight:700}.login-cover-feature-desc{color:#606266;margin-top:8px;line-height:1.7}.login-card{overflow:hidden;border-radius:20px!important}.login-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.login-card-title{font-size:22px;font-weight:700}.login-card-subtitle{color:#909399;margin-top:6px;font-size:13px}.login-captcha-row{grid-template-columns:minmax(0,1fr) 180px;gap:12px;display:grid}.login-captcha-input{margin-bottom:0!important}.login-captcha-preview{align-items:stretch;display:flex}.login-captcha-box{color:#909399;background:#fafafa;border:1px dashed #dcdfe6;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;min-height:112px;display:flex}.login-captcha-action{cursor:pointer;padding:12px;transition:border-color .2s}.login-captcha-action:hover{border-color:#409eff}.login-captcha-action img{border-radius:8px;max-width:100%}.login-captcha-refresh-text{color:#606266;font-size:12px}.auth-form{padding-top:8px}.login-form-footer{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.billiards-page{flex-direction:column;gap:16px;display:flex}.billiards-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.billiards-filter-bar{margin-bottom:12px}.billiards-pagination{justify-content:flex-end;margin-top:16px;display:flex}.billiards-summary-grid{margin-bottom:12px}.summary-label{color:var(--el-text-color-secondary);font-size:13px}.summary-value{margin-top:8px;font-size:26px;font-weight:700}.summary-value--compact{font-size:22px}.entry-card{border:1px solid var(--el-border-color-light);border-radius:12px;margin-bottom:12px;padding:12px}.entry-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-weight:600;display:flex}.entry-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.entry-warning{margin-bottom:12px}.ball-summary{color:var(--el-text-color-secondary);font-size:13px}.player-tip{color:var(--el-text-color-secondary);flex-direction:column;justify-content:center;gap:6px;font-size:13px;display:flex}.preview-placeholder{color:var(--el-text-color-secondary);font-size:12px}.pattern-stats-card{margin-top:12px}.pattern-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.pattern-meta__text{flex-direction:column;gap:6px;display:flex}.pattern-name{font-size:18px;font-weight:700}.pattern-desc{color:var(--el-text-color-secondary);font-size:13px}.mobile-card-list{gap:12px;display:grid}.mobile-data-card{background:#fff;border:1px solid #ebeef5;border-radius:16px;flex-direction:column;padding:14px;display:flex}.mobile-data-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.mobile-data-card-title{color:#111827;word-break:break-all;font-size:16px;font-weight:700}.mobile-data-card-subtitle{color:#909399;margin-top:4px;font-size:13px}.mobile-data-card-body{gap:10px;display:grid}.mobile-data-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mobile-data-label{color:#909399;min-width:72px;font-size:13px}.mobile-data-value{text-align:right;word-break:break-word;flex:1}.mobile-data-card-footer{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.mobile-meta-tags{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.mobile-action-sheet-panel{padding:8px 0 16px}.mobile-action-sheet-title{text-align:center;color:#606266;margin-bottom:12px;font-size:14px}.mobile-action-sheet{width:100%}.mobile-action-sheet>.el-button{width:100%;min-height:40px;margin-left:0!important}.responsive-popup-dialog .el-dialog__body{padding-bottom:20px}@media (width<=1024px){.app-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border-bottom:1px solid #e2e8f0eb;min-height:auto;padding:10px 12px;height:auto!important}.app-header-left,.app-header-right{flex-wrap:wrap;width:100%}.app-header-mobile{background:0 0;border-bottom:none;flex-direction:column;align-items:stretch;gap:8px;padding-top:0;padding-bottom:0}.app-header-mobile-top{justify-content:space-between;align-items:flex-start;gap:10px}.app-header-mobile-main{flex:1;align-items:center;gap:10px;min-width:0}.app-header-mobile-actions{gap:8px;display:flex}.app-header-mobile-actions .el-button{white-space:nowrap;border-radius:10px;width:auto;min-height:36px;margin:0;font-weight:500}.app-header-mobile-copy .app-header-title{font-size:17px}.app-header-mobile-copy .app-header-subtitle{display:none}.app-main{padding:10px 12px 12px}.app-page-header{gap:12px}.app-page-actions{width:100%}.app-page-actions .el-button{flex:140px}.page-pagination,.billiards-pagination{justify-content:flex-start;overflow-x:auto}.app-card-section{border-radius:16px!important}.mobile-data-card{padding:16px}.mobile-data-row{flex-direction:column;gap:4px}.mobile-data-value{text-align:left}.mobile-data-label{min-width:0;font-size:12px}.query-form.el-form--inline,.billiards-filter-bar.el-form--inline{gap:0;display:grid}.query-form.el-form--inline .el-form-item,.billiards-filter-bar.el-form--inline .el-form-item{width:100%;margin-right:0}.query-form.el-form--inline .el-form-item__content,.billiards-filter-bar.el-form--inline .el-form-item__content{width:100%}.query-form .el-input,.query-form .el-select,.query-form .el-date-editor,.query-form .el-input-number,.billiards-filter-bar .el-input,.billiards-filter-bar .el-select,.billiards-filter-bar .el-date-editor,.billiards-filter-bar .el-input-number{width:100%!important}.billiards-card-header,.mobile-data-card-header,.mobile-data-card-footer,.pattern-meta{flex-direction:column;align-items:flex-start}.mobile-data-card-footer>*{width:100%}.page-form-actions,.page-form-actions .el-button{width:100%;margin-left:0}.entry-header{flex-direction:column;align-items:flex-start}.entry-actions{justify-content:flex-start;width:100%}.login-page{grid-template-columns:1fr;gap:20px;width:min(100%,100% - 24px);padding:24px 0}.login-cover{display:contents}.login-cover-intro{order:1;gap:0}.login-card{order:2}.login-cover-details{order:3}.login-cover-intro,.login-cover-details{padding:12px 0 0}.login-cover h1{font-size:32px}.login-captcha-row{grid-template-columns:1fr}.login-card-header{flex-wrap:wrap;align-items:flex-start}.app-page-title{font-size:22px}.page-tabs .el-tabs__nav{width:100%}.page-tabs .el-tabs__item{flex:1 1 0;padding-left:8px;padding-right:8px}}@media (width<=768px){.responsive-popup-dialog{border-radius:0!important;margin:0!important}.responsive-popup-dialog .el-dialog__header{margin-right:0;padding:16px 16px 12px}.responsive-popup-dialog .el-dialog__body{padding:12px 16px 20px}.responsive-popup-dialog .el-dialog__footer{z-index:2;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #ebeef5;gap:12px;display:flex;position:sticky;bottom:0}.responsive-popup-dialog .el-dialog__footer .el-button{flex:1;margin:0}}
