body.admin-page{--ops-bg:#f5f7f6;--ops-surface:#fff;--ops-soft:#f0f4f2;--ops-border:#dce4e0;--ops-ink:#202b28;--ops-muted:#5d6b65;--ops-primary:#146b52;--line:var(--ops-border);--green:var(--ops-primary);background:var(--ops-bg);color:var(--ops-ink);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px}
body.admin-page *{box-sizing:border-box}
body.admin-page [hidden]{display:none!important}
body.admin-page main{display:block;max-width:none;margin:0;padding:0;min-height:calc(100vh - 60px)}
body.admin-page footer{max-width:1500px;margin:0 auto;border-top:1px solid var(--ops-border);color:var(--ops-muted);padding:18px 20px;font-size:12px}
.ops-topnav{position:sticky;top:0;z-index:100;background:var(--ops-surface);border-bottom:1px solid var(--ops-border)}
.ops-nav-inner{max-width:1500px;min-height:60px;padding:0 20px;margin:0 auto;display:flex;gap:22px;align-items:center}
.ops-brand{display:flex;align-items:center;gap:9px;flex-shrink:0;color:var(--ops-ink);text-decoration:none;font-size:16px}
.ops-brand .lucide{color:var(--ops-primary);width:20px;height:20px}
.ops-nav-pills{display:flex;gap:4px;flex:1;align-items:center}
.ops-nav-pills button{border:0;background:transparent;border-radius:6px;display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:13px;color:var(--ops-muted);white-space:nowrap;min-height:36px}
.ops-nav-pills button .lucide{width:15px;height:15px}
.ops-nav-pills button:hover{background:var(--ops-soft)}
.ops-nav-pills button.active{background:#e6f2ec;color:var(--ops-primary);font-weight:600}
body.admin-page .admin-workspace{max-width:1500px;padding:28px 20px 44px;margin:0 auto;min-width:0}
body.admin-page .admin-head{margin:0 0 18px;padding:0;border:0;display:block}
body.admin-page h1,body.admin-page h2,body.admin-page h3{color:var(--ops-ink);letter-spacing:0}
body.admin-page .admin-head h1{font-size:24px;line-height:1.3;font-weight:650}
body.admin-page h2{font-size:17px;margin:0 0 6px}
body.admin-page h3{font-size:15px}
body.admin-page .muted,body.admin-page small{color:var(--ops-muted);line-height:1.7}
body.admin-page p{line-height:1.7}
body.admin-page .primary{border:1px solid var(--ops-primary);background:var(--ops-primary);color:#fff;box-shadow:none;border-radius:8px;font-weight:500}
body.admin-page .primary:hover{background:#10573f;border-color:#10573f}
body.admin-page .secondary{border:1px solid var(--ops-border);background:var(--ops-surface);color:var(--ops-ink);border-radius:8px;box-shadow:none}
body.admin-page button{min-height:36px;cursor:pointer}
body.admin-page button:disabled{cursor:not-allowed;opacity:.5}
body.admin-page button:focus-visible,body.admin-page summary:focus-visible{outline:2px solid var(--ops-primary);outline-offset:3px}
body.admin-page a{color:var(--ops-primary)}
body.admin-page input,body.admin-page select,body.admin-page textarea{background:#fff;color:var(--ops-ink);border:1px solid var(--ops-border);border-radius:6px;font-size:13px;min-height:38px;padding:9px 12px;box-shadow:none;max-width:100%}
body.admin-page input:focus,body.admin-page select:focus,body.admin-page textarea:focus{border-color:var(--ops-primary);outline:2px solid #146b5220}
body.admin-page input[type=checkbox]{min-height:auto;accent-color:var(--ops-primary)}
body.admin-page .panel,body.admin-page .workspace-section,body.admin-page .pool-workspace{background:var(--ops-surface);border:1px solid var(--ops-border);border-radius:8px;padding:20px;margin:0 0 18px;box-shadow:none}
body.admin-page .table-wrap{border:1px solid var(--ops-border);border-radius:8px;background:var(--ops-surface);overflow:auto}
body.admin-page table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}
body.admin-page table th{background:var(--ops-soft);color:var(--ops-muted);font-weight:600}
body.admin-page table th,body.admin-page table td{padding:13px 12px;border-bottom:1px solid var(--ops-border);text-align:left}
body.admin-page table tr:last-child td{border-bottom:0}
body.admin-page table tbody tr:nth-child(even){background:#fafbfa}
body.admin-page table tbody tr:hover{background:#edf5f0}
body.admin-page table td .secondary{border:0;padding:4px 6px;min-height:28px;background:transparent;color:var(--ops-primary)}
body.admin-page .empty{padding:44px 16px;text-align:center;color:var(--ops-muted)}
body.admin-page .badge{background:#eaf0e7;color:#58714c;border:1px solid #d4dfcf;border-radius:5px;font-size:11px;padding:4px 7px}
body.admin-page .badge.warn,body.admin-page .banner{background:#fff5e8;color:#80551f;border:1px solid #f1dcb9;border-radius:6px}
body.admin-page .banner{padding:12px 15px;margin:0 0 18px;font-size:13px}
body.admin-page .toolbar{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}
body.admin-page .toolbar>:first-child{margin-right:auto}
body.admin-page .toolbar p{margin:0}
.ops-page-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:-5px 0 22px;font-size:12px}
.ops-page-tools .muted{margin-right:auto}
.ops-fold{border:1px solid var(--ops-border);border-radius:12px;background:var(--ops-surface);margin:0 0 18px;overflow:hidden}
.ops-fold>summary{display:flex;align-items:center;gap:16px;padding:18px 20px;cursor:pointer;list-style:none}
.ops-fold>summary::-webkit-details-marker{display:none}
.ops-fold>summary>span{font-size:12px;color:var(--ops-muted)}
.ops-fold .fold-caret{margin-left:auto;font-weight:400;font-size:12px;color:var(--ops-primary)}
.ops-fold .fold-caret:after{content:'展开 ＋'}
.ops-fold[open] .fold-caret:after{content:'收起 −'}
.ops-fold-body{padding:20px;border-top:1px solid var(--ops-border)}
.ops-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
body.admin-page .ops-plan{background:#fffdf9;border:1px solid var(--ops-border);border-radius:10px;text-align:left;padding:16px;display:flex;flex-direction:column;gap:6px;min-height:100px;color:var(--ops-ink)}
.ops-plan span,.ops-plan small{font-size:12px}
body.admin-page .ops-plan.selected{border-color:var(--ops-primary);background:#c0563a09;box-shadow:0 0 0 1px var(--ops-primary)}
.ops-issue-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ops-issue-row #cdkeys-count{width:84px;margin-right:4px}
.ops-issue-row #cdkeys-generate{margin-left:8px}
.ops-issued{background:#edf1e6;border:1px solid #cfdbc3;border-radius:8px;padding:16px;margin-top:15px}
.ops-issued textarea{width:100%;min-height:90px;margin:12px 0;font-family:Consolas,monospace}
body.admin-page .filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0}
body.admin-page .filters>input{width:270px}
body.admin-page .filters>select{width:auto;min-width:130px}
body.admin-page .admin-subnav{display:flex;gap:4px;border-bottom:1px solid var(--ops-border);margin:0 0 22px;padding-bottom:0}
.admin-subnav button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--ops-muted);padding:10px 15px}
.admin-subnav button.active{color:var(--ops-primary);border-bottom-color:var(--ops-primary)}
body.admin-page .manual-config{background:var(--ops-surface);border:1px solid var(--ops-border);border-radius:8px;margin:0 0 18px;padding:20px}
body.admin-page .manual-config>summary{padding:0;cursor:pointer;font-size:15px}
body.admin-page .manual-config>p{margin-bottom:18px}
body.admin-page .manual-config-grid.simple-product-grid{display:block}
.simple-product-grid>.table-wrap{margin-top:18px}
.simple-product-grid .manual-products-table{min-width:760px}
.catalog-switch{display:flex;align-items:center;gap:8px;white-space:nowrap;margin:0 0 8px}
body.admin-page .catalog-switch input[role="switch"]{appearance:none;position:relative;width:36px;height:20px;min-height:20px;padding:0;border:1px solid var(--ops-border);border-radius:12px;background:#c8c3bb;cursor:pointer;flex-shrink:0}
.catalog-switch input[role="switch"]::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:white;transition:transform .15s}
body.admin-page .catalog-switch input[role="switch"]:checked{background:var(--ops-primary);border-color:var(--ops-primary)}
.catalog-switch input[role="switch"]:checked::after{transform:translateX(16px)}
.catalog-switch input[role="switch"]:focus-visible{outline:2px solid var(--ops-primary);outline-offset:3px}
.simple-editor{border:1px solid var(--ops-border);border-radius:8px;background:var(--ops-surface);padding:16px;margin:18px 0 0}
.simple-editor>summary{cursor:pointer;font-size:14px;font-weight:600}
.simple-editor[open]>summary{margin-bottom:20px}
body.admin-page .admin-form{max-width:700px}
body.admin-page .admin-form.query{margin:0;padding:22px;background:var(--ops-surface);border:1px solid var(--ops-border);border-radius:12px}
body.admin-page .settings-split{display:block}
body.admin-page .manual-counts,body.admin-page .pool-metrics{border:1px solid var(--ops-border);border-radius:8px;background:var(--ops-soft);margin:18px 0}
body.admin-page .manual-counts>div,body.admin-page .pool-metrics>div{border-color:var(--ops-border)}
body.admin-page .manual-pagination{margin-top:16px}
body.admin-page .login{max-width:440px;margin:70px auto}
body.admin-page .auth-panel{max-width:470px;margin:56px auto;padding:30px}
.auth-panel h1{font-size:26px;margin-bottom:12px}
.auth-panel .admin-form{margin-top:24px}
.auth-captcha-row{display:flex;align-items:center;gap:10px}
.auth-captcha-row>input{min-width:0;width:130px;flex:1;text-transform:uppercase}
body.admin-page .captcha-image{width:170px;height:56px;flex-shrink:0;padding:0;overflow:hidden;border:1px solid var(--ops-border);border-radius:8px;background:var(--ops-surface)}
.captcha-image img{display:block;width:100%;height:100%;object-fit:contain}
.auth-link{border:0;padding:8px 0;background:transparent;color:var(--ops-primary);font-size:13px;margin-top:16px}
.security-panel{max-width:800px}
.security-verify{margin-top:24px;padding-top:20px;border-top:1px solid var(--ops-border)}
.security-panel .admin-form{margin-top:20px}
.security-panel input[readonly]{background:var(--ops-soft)}
@media(max-width:760px){body.admin-page .auth-panel{margin:30px 14px;padding:24px 18px}.auth-captcha-row{gap:8px}body.admin-page .captcha-image{width:145px;height:52px}.auth-captcha-row>input{width:100px}}
body.admin-page main:has(>.login){padding:24px}
@media(max-width:1000px){.ops-nav-inner{gap:12px;flex-wrap:wrap;padding-top:12px;padding-bottom:10px}.ops-brand{flex:1}.ops-nav-pills{order:3;flex-basis:100%;overflow:auto}.ops-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body.admin-page .admin-workspace{padding:22px 14px}.ops-nav-inner{padding-left:14px;padding-right:14px}.ops-topnav{position:static}.ops-nav-pills{display:none}body.admin-page .mobile-admin-nav{display:flex;margin-bottom:22px;gap:12px;align-items:center}.mobile-admin-nav select{flex:1}body.admin-page .admin-head h1{font-size:25px}.ops-fold>summary{padding:15px;gap:8px}.ops-fold>summary>span{display:none}.ops-fold-body{padding:15px}.ops-plan-grid{grid-template-columns:1fr}body.admin-page .panel,body.admin-page .workspace-section,body.admin-page .pool-workspace,body.admin-page .manual-config{padding:16px}body.admin-page .filters>input{width:100%}.ops-issue-row #cdkeys-generate{margin-left:0}.admin-subnav{flex-wrap:wrap}.admin-subnav button{padding:9px 11px}.ops-page-tools .muted{flex-basis:70%}}
.home-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.home-metrics button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:#fff;border:1px solid var(--ops-border);border-radius:6px;padding:14px;color:var(--ops-ink)}
.home-metrics button:hover,.home-stock-row:hover{border-color:var(--ops-primary);background:#f4faf6}
.home-metrics span{font-size:12px;color:var(--ops-muted)}
.home-metrics strong{font-size:24px;line-height:1.2}
.home-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}
.local-cards-table .pool-inactive{background:#f0f1f2;color:#777}
.product-card-row summary{cursor:pointer;color:var(--ops-muted);white-space:normal}
.product-card-row .panel{margin-top:12px}
@media(max-width:760px){
 body.admin-page .manual-products-table,body.admin-page .local-cards-table{display:block;min-width:0;width:100%;white-space:normal}
 .manual-products-table>thead,.local-cards-table>thead{display:none}
 .manual-products-table>tbody,.local-cards-table>tbody{display:block}
 .manual-products-table>tbody>tr:not(.product-card-row),.local-cards-table>tbody>tr{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:10px 0;border-top:1px solid var(--ops-border)}
 body.admin-page .manual-products-table>tbody>tr>td,body.admin-page .local-cards-table>tbody>tr>td{display:block;padding:8px 12px;border:0;min-width:0}
 .manual-products-table>tbody>tr:not(.product-card-row)>td:nth-child(2){text-align:right}
 .manual-products-table>tbody>tr:not(.product-card-row)>td:nth-child(n+3){grid-column:1/-1}
 .manual-products-table .product-card-row{display:block;background:var(--ops-soft)}
 body.admin-page .product-card-row .panel{padding:12px 6px}
 .product-card-row .panel>.toolbar{flex-wrap:wrap}
 .local-cards-table>tbody>tr>td:first-child,.local-cards-table>tbody>tr>td:last-child{grid-column:1/-1}
 .local-cards-table td:nth-child(3)::before{content:'成功 / 上限：';display:block;color:var(--ops-muted)}
 .local-cards-table td:nth-child(4)::before{content:'占用 / 可用次数：';display:block;color:var(--ops-muted)}
 .manual-products-table button{margin:2px 4px 2px 0}
}
.pool-card-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#pool-editor{margin-top:20px;border-top:1px solid var(--ops-border);padding-top:16px}
#pool-editor summary{cursor:pointer;font-weight:600;margin-bottom:14px}
.home-list{border-top:1px solid var(--ops-border);padding-top:18px;margin-bottom:24px}
.home-list>.muted{margin:4px 0 14px}
.home-stock-row{display:flex;justify-content:space-between;gap:16px;width:100%;padding:12px 14px;text-align:left;background:#fff;border:1px solid var(--ops-border);border-radius:6px;margin-top:6px;color:var(--ops-ink)}
@media(max-width:900px){.home-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.home-metrics button:last-child{grid-column:span 2}.home-stock-row{flex-wrap:wrap}}
