/* Admin only: client brand pages retain their own typography and colors. */
.ops-console,.ops-dialog{
 --font-sans:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--font-display:var(--font-sans);--font-serif:var(--font-sans);
 --bg:#f4f6fa;--surface:#fff;--surface-2:#f7f9fc;--brd:#e0e5ee;--brd-2:#cbd3e0;--ink:#172033;--ink-2:#536078;--ink-3:#68758c;--primary:#4f46e5;--primary-hover:#4338ca;--primary-active:#3730a3;--primary-soft:#eef2ff;--primary-on:#fff;--primary-fg:#fff;--shadow:0 8px 24px #17203308;--shadow-sm:0 2px 8px #17203306;--radius-lg:14px;
 --el-color-primary:#4f46e5;--el-color-primary-light-3:#818cf8;--el-color-primary-light-9:#eef2ff;--el-text-color-primary:#172033;--el-text-color-regular:#536078;--el-bg-color:#fff;--el-fill-color-blank:#fff;--el-fill-color-light:#f7f9fc;--el-border-color:#e0e5ee;
 font-family:var(--font-sans);color:var(--ink);background:var(--bg)
}
.ops-console{min-height:100dvh}.ops-console :is(h1,h2,h3,h4,button,input,select,textarea){font-family:var(--font-sans)}
.ops-console :is(button,a,input,select,textarea,summary):focus-visible,.ops-dialog :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #818cf8;outline-offset:3px}
.ops-console :is(.btn-primary,.btn-secondary,.el-button){min-height:40px}.ops-console .el-table{--el-table-header-bg-color:#f7f9fc;--el-table-row-hover-bg-color:#f5f7ff;--el-table-border-color:#e8edf4;font-size:13px}.ops-console .el-table .cell{padding:9px 14px;line-height:1.5}
.ops-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:32px;min-height:76px;padding:12px max(24px,calc((100vw - 1440px)/2));border-bottom:1px solid var(--brd);background:#ffffffed;backdrop-filter:blur(16px)}
.ops-brand{font-weight:750;font-size:18px;white-space:nowrap;color:var(--ink);text-decoration:none}.ops-navigation{display:flex;gap:6px;flex:1}.ops-navigation>a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;text-decoration:none;color:var(--ink-2);font-weight:550;border-radius:9px;white-space:nowrap}.ops-navigation>a.active{background:var(--primary-soft);color:var(--primary)}.ops-count{font-size:11px;padding:2px 6px;border-radius:5px;background:#dfe5ff;min-width:22px;text-align:center}.ops-user{display:flex;align-items:center;gap:14px;font-size:13px}.ops-user button{border:1px solid var(--brd);border-radius:8px;background:var(--surface);padding:8px 12px;color:var(--ink-2);cursor:pointer}.ops-page{width:100%;max-width:1440px;margin:auto;padding:30px 24px 48px}.ops-secondary{display:flex;gap:10px;flex-wrap:wrap;max-width:1440px;margin:0 auto;padding:16px 24px 0}.ops-secondary a{padding:9px 12px;border-radius:8px;color:var(--ink-2);font-size:13px}.ops-secondary a.router-link-active{color:var(--primary);background:var(--primary-soft)}
.ops-fold{padding:16px 20px;background:var(--surface);border:1px solid var(--brd);border-radius:12px}.ops-fold>summary{cursor:pointer;min-height:32px;line-height:32px;font-size:14px;font-weight:600;color:var(--ink-2)}.ops-fold[open]>summary{margin-bottom:18px}.ops-quick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ops-quick a{min-height:44px;display:inline-flex;align-items:center;padding:10px 16px;border:1px solid var(--brd);border-radius:9px;background:var(--surface);font-size:14px}.ops-quick a:first-child{color:var(--primary);background:var(--primary-soft);border-color:#dce1ff}.ops-console h1{font-size:28px;letter-spacing:-.02em}.ops-console .text-muted{color:var(--ink-2)}
@media(max-width:760px){.ops-header{padding:12px 16px;gap:12px;flex-wrap:wrap}.ops-brand{flex:1}.ops-navigation{order:3;flex-basis:100%;gap:4px}.ops-navigation>a{flex:1;padding:9px 5px;font-size:12px}.ops-count{font-size:10px;padding:1px 4px}.ops-user span{display:none}.ops-page{padding:22px 16px 40px}.ops-console :is(.btn-primary,.btn-secondary,.el-button){min-height:44px}.ops-dialog.el-drawer{width:100vw!important}.ops-secondary{padding:10px 16px 0}.ops-secondary a{min-height:44px;display:inline-flex;align-items:center}}

/* Shared administrative page structure; never applies to public brand pages. */
.ops-console{--line:var(--brd);--muted:var(--ink-2);--text-primary:var(--ink);--border-color:var(--brd);color-scheme:light}
.ops-console .card,.ops-console .el-card{background:var(--surface);border:1px solid var(--brd);border-radius:14px;box-shadow:var(--shadow-sm)}
.ops-console .card{padding:24px}.ops-console .el-card__header{padding:20px 24px;border-bottom:1px solid var(--brd)}.ops-console .el-card__body{padding:24px}
.ops-console :is(.btn-primary,.btn-secondary){border-radius:9px;font-weight:550;box-shadow:none;text-transform:none;letter-spacing:normal;background-image:none}.ops-console .btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}.ops-console .btn-secondary{background:#fff;color:var(--ink-2);border:1px solid var(--brd-2)}
.ops-console .input{border:1px solid var(--brd-2);background:#fff;color:var(--ink);border-radius:9px;min-height:44px}.ops-console .el-form-item__label{color:var(--ink);font-weight:550;line-height:1.5}.ops-console .el-input__wrapper,.ops-console .el-select__wrapper{min-height:40px;border-radius:8px}.ops-console .el-form-item__content{min-width:0}.ops-console .el-button{white-space:normal;line-height:1.45}.ops-console .el-button+.el-button{margin-left:0}
.ops-route-page{display:grid;gap:24px;min-width:0}.ops-route-page>*{min-width:0}.ops-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}.ops-page-heading h1{font-weight:700;margin:3px 0 8px}.ops-page-heading p:not(.ops-eyebrow){font-size:14px;color:var(--ink-2);line-height:1.7;margin:0}.ops-eyebrow{font-size:11px;font-weight:650;letter-spacing:.1em;color:var(--ink-3);margin:0 0 6px}.ops-page-heading>div{min-width:0}.ops-page-heading h1,.ops-section-title h2{overflow-wrap:anywhere}
.ops-section-title,.ops-form-section>header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.ops-section-title h2,.ops-form-section h2,.ops-side-stack h2{font-size:18px;font-weight:650;margin:0}.ops-section-title p,.ops-form-section header p{font-size:13px;color:var(--ink-2);margin:6px 0 0}.ops-settings-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);align-items:start;gap:24px}.ops-side-stack{display:grid;gap:18px}.ops-form-width{max-width:760px}.ops-form-section .el-form{max-width:none}.ops-form-section .el-form-item{margin-bottom:22px}.ops-field-help{font-size:12px;color:var(--ink-2);line-height:1.6;margin:7px 0 0;width:100%}
.ops-inline-actions,.ops-form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ops-inline-actions{margin:12px 0 18px}.ops-form-actions{border-top:1px solid var(--brd);padding-top:18px;margin-top:22px}.ops-readout{display:block;font-size:24px;font-weight:650;overflow-wrap:anywhere;margin-top:18px}.ops-inner-fold{margin:14px 0;padding:12px 0;border-block:1px solid var(--brd)}.ops-inner-fold summary{cursor:pointer;min-height:40px;display:flex;align-items:center;color:var(--ink-2);font-weight:550;font-size:13px}.ops-inner-fold summary::before{content:'▸';margin-right:8px}.ops-inner-fold[open] summary::before{content:'▾'}.ops-inner-fold[open]>summary{margin-bottom:14px}.ops-inner-fold dl{font-size:12px}.ops-inner-fold dt{color:var(--ink-3)}.ops-inner-fold dd{margin:4px 0 12px;overflow-wrap:anywhere}
.ops-section-nav,.ops-context-nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ops-section-nav{border-bottom:1px solid var(--brd);padding-bottom:12px}.ops-section-nav a{min-height:44px;padding:10px 14px;border-radius:8px;font-size:13px;color:var(--ink-2);background:#fff;border:1px solid var(--brd);text-decoration:none}.ops-section-nav a:hover{background:var(--primary-soft);color:var(--primary)}.ops-context-nav{font-size:12px;color:var(--ink-3)}.ops-context-nav a{color:var(--primary);min-height:40px;display:inline-flex;align-items:center}.ops-context-nav span:before{content:'/';margin:0 12px;color:var(--brd-2)}.ops-route-page [id]{scroll-margin-top:170px}
.ops-state,.ops-note{background:var(--surface-2);border-radius:9px;padding:14px 16px;font-size:13px;color:var(--ink-2);line-height:1.7}.ops-empty-card{text-align:center;padding:36px 24px;border:1px dashed var(--brd-2);border-radius:12px;background:var(--surface)}.ops-empty-card h2,.ops-empty-card h3{font-size:17px;font-weight:600;margin:0 0 10px}.ops-empty-card p{font-size:13px;line-height:1.7;color:var(--ink-2);margin:0 0 18px}.ops-empty-card a{margin:0 8px}.ops-event-list{display:grid;gap:12px}.ops-event-row{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px;padding:18px;border:1px solid var(--brd);border-radius:10px;background:var(--surface)}.ops-event-row h3{font-size:15px;margin:0 0 7px;overflow-wrap:anywhere}.ops-event-row p{font-size:13px;margin:0 0 7px;overflow-wrap:anywhere}.ops-event-row time{font-size:12px;color:var(--ink-3)}.ops-event-row .ops-inner-fold{margin:0;border:0;padding:0}
.ops-console .alert{border-radius:10px;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.ops-console .alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.ops-console .alert-success{background:#effaf4;color:#166534;border:1px solid #bbf7d0}.ops-console .alert .el-button{margin-left:12px}
.ops-dialog.el-dialog{max-width:min(100vw - 32px,1040px);max-height:calc(100dvh - 48px);overflow-y:auto;border:1px solid var(--brd);border-radius:14px;padding:0;background:#fff}.ops-dialog .el-dialog__header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--brd);padding:20px 56px 20px 24px;margin:0;z-index:2}.ops-dialog .el-dialog__title{font-size:18px;font-weight:650}.ops-dialog .el-dialog__body{padding:24px}.ops-dialog .el-dialog__footer{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--brd);padding:16px 24px;display:flex;justify-content:flex-end;gap:10px}.ops-dialog .el-dialog__headerbtn{top:12px}.ops-dialog :is(input,select,textarea){max-width:100%}.ops-dialog .result-grid{display:grid;gap:12px}.ops-dialog .result-tile{padding:15px;border:1px solid var(--brd);border-radius:9px}.ops-dialog .result-tile .k{color:var(--ink-2);font-size:12px}.ops-dialog .result-tile .v{overflow-wrap:anywhere;margin-top:6px}.ops-dialog .el-button{min-height:44px;white-space:normal}
.ops-auth{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(440px,1.15fr);min-height:100dvh}.ops-auth-intro{padding:48px clamp(32px,5vw,88px);display:flex;flex-direction:column;justify-content:space-between;background:#edf1f8;border-right:1px solid var(--brd);gap:44px}.ops-auth-intro h2{font-size:clamp(28px,3.8vw,52px);font-weight:650;line-height:1.3;letter-spacing:-.035em;margin:16px 0 22px}.ops-auth-intro p{font-size:14px;line-height:1.8;color:var(--ink-2);max-width:340px}.ops-auth-intro .ops-auth-foot{font-size:12px}.ops-auth-main{padding:70px 32px;display:flex;justify-content:center;align-items:center;position:relative;min-width:0}.ops-auth-tools{position:absolute;inset:24px 32px auto;display:flex;align-items:center;justify-content:space-between;font-size:13px}.ops-auth-card{width:100%;max-width:460px;padding:32px;background:#fff;border:1px solid var(--brd);border-radius:16px;box-shadow:var(--shadow);display:grid;gap:24px}.ops-auth-card header p{font-size:13px;color:var(--ink-2);line-height:1.7;margin:10px 0 0}.ops-auth-card h1{margin:0;font-size:26px;font-weight:700}.ops-auth-card .form-group{display:grid;gap:8px;margin:0}.ops-auth-card .form-group label{font-size:13px;font-weight:550}.ops-auth-card button{min-height:44px}.ops-setup .ops-auth-card{max-width:550px}.ops-setup-steps{padding:0;list-style:none;display:grid;gap:12px;font-size:13px;color:var(--ink-2)}.ops-setup-steps li{padding:12px 16px;border:1px solid var(--brd);border-radius:9px}.ops-setup-steps .current{background:#fff;color:var(--primary);border-color:#c7d2fe}
@media(max-width:1000px){.ops-settings-grid{grid-template-columns:1fr}.ops-side-stack{grid-template-columns:1fr 1fr}.ops-auth{grid-template-columns:minmax(260px,.75fr) 1fr}.ops-auth-intro{padding:36px 26px}}
@media(max-width:760px){.ops-console .card,.ops-console .el-card__body{padding:18px}.ops-console .el-card__header{padding:16px 18px}.ops-route-page{gap:20px}.ops-page-heading{gap:14px}.ops-page-heading h1{font-size:25px}.ops-form-section>header{align-items:flex-start}.ops-side-stack{grid-template-columns:1fr}.ops-form-actions>*{flex:1 1 150px}.ops-section-nav a{padding:10px 12px}.ops-event-row{grid-template-columns:1fr;gap:12px}.ops-dialog.el-dialog{width:100vw!important;max-width:100vw;height:100dvh;max-height:100dvh;margin:0!important;border:0;border-radius:0}.ops-dialog .el-dialog__header{padding:18px 56px 18px 18px;padding-top:max(18px,env(safe-area-inset-top))}.ops-dialog .el-dialog__body{padding:18px}.ops-dialog .el-dialog__footer{padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));flex-wrap:wrap}.ops-auth{display:block}.ops-auth-intro{padding:24px;border:0;gap:0}.ops-auth-intro>div,.ops-auth-foot,.ops-setup-steps{display:none}.ops-auth-main{padding:65px 16px 32px}.ops-auth-card{padding:24px}.ops-auth-tools{inset:14px 20px auto}.ops-console .el-form-item__label{white-space:normal}.ops-console .el-pagination{max-width:100%;flex-wrap:wrap;gap:6px}.ops-console .el-pagination .el-pagination__sizes{margin:0}.ops-console .el-pagination .el-pagination__total{display:none}}
.ops-skip-link{position:fixed;top:-80px;left:20px;z-index:9999;padding:12px 18px;background:#fff;border:2px solid var(--primary);border-radius:8px;color:var(--primary)}.ops-skip-link:focus{top:12px}.ops-brand-preview{padding:22px 24px;background:var(--surface-2);border:1px solid var(--brd);border-radius:12px;margin-bottom:24px}.ops-brand-preview>strong{display:block;font-size:24px;margin:6px 0;color:var(--ink);overflow-wrap:anywhere}.ops-brand-preview>p{color:var(--ink-2);font-size:14px;margin:0;overflow-wrap:anywhere}.ops-console .skin-picker .sp-mode-btns button{min-height:44px;border-radius:8px}.ops-console .admin-settings .el-form-item__content>.ml-3{margin:8px 0 0;width:100%}.ops-console .admin-settings .el-form-item__content>.max-w-xs{max-width:100%}.ops-console .admin-settings .el-form-item__label{padding-bottom:8px}
.ops-filter-grid{display:flex;flex-wrap:wrap;align-items:end;gap:14px;min-width:0}.ops-filter-field{display:grid;gap:7px;min-width:0;flex:1 1 150px;font-size:12px;color:var(--ink-2)}.ops-filter-field:has(input[aria-label="搜索订单"]),.ops-filter-field:has(input[aria-label="搜索历史卡密"]){flex-basis:220px}.ops-filter-field .el-input,.ops-filter-field .el-select{width:100%!important;min-width:0}.ops-order-filters>p{font-size:12px;line-height:1.7;margin:14px 0 0}.ops-order-filters .date-filter{display:grid;gap:7px;font-size:12px;flex:1 1 150px}.ops-order-filters .date-filter input{width:100%;box-sizing:border-box;min-height:40px}.ops-console .add-prod-row{width:100%;min-height:62px;text-align:left}.ops-console .add-prod-row:disabled{cursor:not-allowed;opacity:.6}.ops-console .selection-page>.card h2{font-size:19px}.ops-console .selection-page>.card>div:has(>h3){border-top:1px solid var(--brd);padding-top:20px}.ops-console .selection-page .prod-card{padding:16px}.ops-console .selection-page .rule-row{min-height:70px}.ops-console .selection-page .ops-inner-fold{flex-basis:100%;font-size:12px}.ops-console .selection-page .rule-disabled{opacity:.65}.ops-console .cdk-list-filters>span.flex-1{display:none}.ops-console .cdk-more-tools summary,.ops-console .cdk-text-button{min-height:44px;line-height:30px}.ops-console .cdk-management-tabs button{min-height:44px}.ops-console .batch-summary__actions .ops-inner-fold{padding:0;margin:0}.ops-console .batch-summary__title{align-items:baseline;gap:12px}
@media(max-width:760px){.ops-filter-field,.ops-order-filters .date-filter{flex-basis:calc(50% - 12px)}.ops-filter-field:has(input[aria-label="搜索订单"]),.ops-filter-field:has(input[aria-label="搜索历史卡密"]){flex-basis:100%}.ops-filter-grid>.el-button{flex:1}.ops-console .selection-page .rule-info{flex-basis:calc(100% - 90px)}.ops-console .selection-page .rule-actions{margin-left:auto}.ops-console .selection-page .add-prod-row{flex-wrap:wrap}.ops-console .admin-settings .el-table{max-width:100%}.ops-console .cdk-main-actions>button{white-space:normal}.ops-console .cdk-workspace .el-input,.ops-console .cdk-workspace .el-select{max-width:100%}}

.ops-inner-fold{overflow-wrap:anywhere}
