:root{color:#17211b;background:#f4f6f1;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button{border-radius:0;font:inherit}.auth-page{align-items:center;background:#f4f6f1;display:flex;min-height:100vh;padding:24px}.auth-card{background:#fff;border:1px solid #d8ded3;display:grid;gap:18px;margin:0 auto;padding:30px;width:min(420px,100%)}.auth-brand{align-items:center;color:#17211b;display:flex;font-weight:800;gap:10px}.auth-card p{color:#6f7a70;font-size:13px;margin:0 0 6px}.auth-card h1{font-size:28px;letter-spacing:0;line-height:1.25;margin:0}.auth-card label{color:#506052;display:grid;font-size:13px;gap:8px}.auth-card input{border:1px solid #d8ded3;color:#17211b;font:inherit;height:42px;padding:0 12px}.auth-error{background:#f8e3dc;color:#17211b;font-size:13px;padding:10px 12px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#17211b;color:#f7f8f3;padding:24px 18px}.brand{display:flex;gap:12px;align-items:center;margin-bottom:36px}.brand span,.topbar p,.panel p,.metric span{color:#6f7a70;display:block;font-size:13px;margin:0}.brand span{color:#b9c4bb}.mode-switch{display:grid;gap:8px;margin-bottom:22px}.mode-switch button{background:transparent;border:1px solid #445448;color:#d9e2da;cursor:pointer;height:38px;text-align:center}.mode-switch button.active,.mode-switch button:hover{background:#b7dc57;border-color:#b7dc57;color:#17211b}.nav{display:grid;gap:8px}.nav button{align-items:center;background:transparent;border:0;color:#d9e2da;cursor:pointer;display:flex;gap:10px;height:42px;padding:0 12px;text-align:left}.nav button.active,.nav button:hover{background:#314237}.content{padding:30px}.topbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.topbar h1{font-size:30px;letter-spacing:0;line-height:1.25;margin:6px 0 0}.primary{align-items:center;background:#b7dc57;border:0;color:#17211b;cursor:pointer;display:inline-flex;gap:8px;height:42px;padding:0 16px}.metrics{display:grid;gap:14px;grid-template-columns:repeat(6,minmax(120px,1fr));margin-bottom:12px}.metric{background:#fff;border:1px solid #e0e5dc;display:grid;gap:8px;min-height:130px;padding:18px}.metric strong{font-size:28px}.panel{background:#fff;border:1px solid #e0e5dc;margin-top:16px;padding:24px}.panel h2{font-size:22px;letter-spacing:0;margin:6px 0 8px}.panel-copy{color:#506052;display:block;font-size:14px;margin-bottom:22px}.work-list{display:grid;gap:10px}.work-item{align-items:center;background:#fff;border:1px solid #e6eadf;color:#17211b;cursor:pointer;display:flex;gap:12px;min-height:52px;padding:0 14px;text-align:left}.work-item:hover,.work-item.selected{background:#f4f8e9;border-color:#b7dc57}.work-item span{align-items:center;background:#eff5df;display:inline-flex;height:28px;justify-content:center;width:28px}.detail{background:#f8faf3;border:1px solid #e0e5dc;margin-top:18px;padding:18px}.status-line{display:flex;gap:10px;justify-content:flex-end}.status-line span{background:#fff;border:1px solid #e0e5dc;color:#506052;font-size:13px;padding:8px 12px}.review-card,.voucher-card{background:#fff;border:1px solid #e0e5dc;display:grid;gap:20px;grid-template-columns:1fr 260px;margin-top:16px;padding:24px}.review-sync-card{align-items:center;background:#fff;border:1px solid #e0e5dc;display:flex;gap:16px;justify-content:space-between;margin-top:16px;padding:20px 24px}.review-sync-card p{color:#6f7a70;font-size:13px;margin:0 0 6px}.review-sync-card h2{font-size:20px;letter-spacing:0;margin:0 0 8px}.review-sync-card span{color:#506052;font-size:14px}.review-queue{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.queue-item{background:#fff;border:1px solid #e0e5dc;color:#17211b;cursor:pointer;display:grid;gap:8px;min-height:74px;padding:14px;text-align:left}.queue-item.selected{border-color:#17211b}.queue-item span{color:#506052;font-size:13px}.review-main p,.voucher-main p{color:#6f7a70;font-size:13px;margin:0 0 6px}.review-main h2,.voucher-main h2{font-size:22px;letter-spacing:0;margin:0 0 10px}.review-main span,.review-side span,.voucher-main span,.voucher-side span{color:#506052;font-size:14px}.voucher-main strong{display:block;font-size:30px;letter-spacing:0;margin-top:22px}.proof{background:#f8faf3;border:1px solid #e0e5dc;display:grid;gap:6px;margin-top:18px;padding:14px}.proof-meta{display:flex;gap:10px;margin-top:12px}.proof-meta span{background:#eff5df;color:#17211b;font-size:13px;padding:8px 10px}.review-side,.voucher-side{align-content:start;border-left:1px solid #e0e5dc;display:grid;gap:12px;padding-left:20px}.status-badge{background:#eff5df;color:#17211b;display:inline-flex;font-weight:700;height:32px;justify-content:center;padding:7px 12px;width:fit-content}.status-badge.approved{background:#dff2c0}.status-badge.rejected{background:#f8e3dc}.status-badge.redeemed{background:#dce7f8}.status-badge.active{background:#eff5df}.stylist-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.stylist-card{background:#fff;border:1px solid #e0e5dc;display:grid;gap:18px;padding:22px}.stylist-head{align-items:flex-start;display:flex;justify-content:space-between}.stylist-head h2{font-size:22px;letter-spacing:0;margin:0 0 8px}.stylist-head span,.qr-link span,.stylist-stats span{color:#506052;font-size:14px}.qr-link{background:#f8faf3;border:1px solid #e0e5dc;display:grid;gap:8px;padding:14px}.qr-link span{overflow-wrap:anywhere}.stylist-stats{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.stylist-stats span{background:#fff;border:1px solid #e6eadf;padding:10px;text-align:center}.rule-card,.management-card{background:#fff;border:1px solid #e0e5dc;display:grid;gap:18px;margin-top:16px;padding:24px}.rule-card p,.management-card p{color:#6f7a70;font-size:13px;margin:0 0 6px}.rule-card h2,.management-card h2{font-size:22px;letter-spacing:0;margin:0 0 8px}.rule-card span,.entity-row span,.empty-line{color:#506052;font-size:14px}.rule-list{display:grid;gap:10px}.rule-list span,.empty-line{background:#f8faf3;border:1px solid #e0e5dc;display:block;padding:12px 14px}.reward-form{border:1px solid #e0e5dc;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}.reward-form label{color:#506052;display:grid;font-size:13px;gap:8px}.reward-form input,.reward-form select{border:1px solid #d8ded3;color:#17211b;font:inherit;height:40px;padding:0 10px}.reward-form button{align-self:end}.rule-row-edit{background:#f8faf3;border:1px solid #e0e5dc;display:grid;gap:10px;padding:12px 14px}.rule-row-edit span{border:0;padding:0}.rule-row-edit small{color:#506052;font-size:13px}.rule-row-edit div{display:flex;gap:8px}.brand-store-layout{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.management-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.entity-list{display:grid;gap:10px}.entity-row{align-items:center;border:1px solid #e6eadf;display:flex;gap:16px;justify-content:space-between;min-height:64px;padding:12px 14px}.entity-row div{display:grid;gap:6px}.review-actions{display:flex;gap:10px}.secondary{background:#fff;border:1px solid #d8ded3;color:#17211b;cursor:pointer;height:42px;padding:0 16px}.detail p{margin-bottom:6px}.modal-backdrop{align-items:center;background:#17211b8c;display:flex;inset:0;justify-content:center;position:fixed;z-index:10}.modal{background:#fff;border:1px solid #d8ded3;display:grid;gap:16px;padding:24px;width:min(460px,calc(100vw - 40px))}.modal-head{align-items:center;display:flex;justify-content:space-between}.modal h2{font-size:22px;letter-spacing:0;margin:0}.modal-head button{background:transparent;border:1px solid #d8ded3;color:#17211b;cursor:pointer;height:34px;padding:0 12px}.modal label{color:#506052;display:grid;font-size:13px;gap:8px}.modal input,.modal select{border:1px solid #d8ded3;color:#17211b;font:inherit;height:40px;padding:0 10px}.form-error{background:#f8e3dc;color:#17211b;font-size:13px;padding:10px 12px}@media(max-width:960px){.shell{grid-template-columns:1fr}.sidebar{display:none}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stylist-grid,.brand-store-layout,.review-card,.voucher-card{grid-template-columns:1fr}.review-side,.voucher-side{border-left:0;border-top:1px solid #e0e5dc;padding-left:0;padding-top:18px}}
