.side-action-icon.cart{position:relative;background:var(--navy, #20324e)}.cart-badge{position:absolute;top:-6px;right:-8px;min-width:17px;padding:0 4px;border-radius:999px;background:#e5484d;font-size:12px;font-style:normal;line-height:17px;text-align:center;color:#fff}.cart-overlay{position:fixed;inset:0;z-index:120;background:#182b4c55;display:flex;justify-content:flex-end}.cart-drawer{display:flex;flex-direction:column;width:min(380px,100%);background:#fff;box-shadow:-12px 0 40px #10233f2e}.cart-drawer header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line, #e7ebf0)}.cart-drawer header h2{display:flex;gap:8px;align-items:center;margin:0;font-size:18px;color:var(--navy, #20324e)}.cart-drawer header .icon{display:grid;place-items:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--muted, #748094);cursor:pointer}.cart-body{flex:1;overflow-y:auto;padding:8px 20px}.cart-empty{padding:48px 0;text-align:center;font-size:16px;color:var(--muted, #748094)}.cart-error{margin:12px 20px 0;padding:8px 12px;border-radius:8px;background:#fdecec;font-size:15px;color:#b4232a}.cart-line{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #f0f3f7}.cart-line.blocked{opacity:.6}.cart-thumb img,.cart-thumb-blank{display:block;width:72px;height:48px;border-radius:6px;object-fit:cover;background:#eef2f7}.cart-line-body{flex:1;min-width:0}.cart-line-body a{display:block;font-size:16px;line-height:1.5;color:var(--navy, #20324e);text-decoration:none}.cart-line-body a:hover{text-decoration:underline}.cart-line-blocked{display:block;margin-top:4px;font-size:13px;color:#b4610f}.cart-line-side{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:8px}.cart-line-side strong{font-size:16px;color:#e5484d}.cart-line-side button{display:inline-flex;gap:4px;align-items:center;border:none;background:none;font-size:13px;color:var(--muted, #748094);cursor:pointer}.cart-line-side button:hover{color:#e5484d}.cart-drawer footer{padding:16px 20px;border-top:1px solid var(--line, #e7ebf0);background:#fafbfd}.cart-drawer footer p{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 12px;font-size:15px;color:var(--muted, #748094)}.cart-drawer footer strong{font-size:22px;color:#e5484d}.cart-drawer footer .btn{width:100%}.cart-drawer footer .btn.disabled{opacity:.5;pointer-events:none}.course-buy{margin-top:22px;padding:20px 22px;border-radius:12px;background:#f7f9fc}.course-price{display:flex;gap:12px;align-items:baseline;margin:0 0 16px}.course-price strong{font-size:32px;color:#e5484d}.course-price strong.free{color:#1f8a4c}.course-price del{font-size:16px;color:#9aa4b2}.course-buy-actions{display:flex;gap:12px;flex-wrap:wrap}.course-buy-notice{margin:12px 0 0;font-size:15px;color:#b4232a}.trade-page{padding:40px 0 80px}.trade-page h1{margin:0 0 24px;font-size:28px;color:var(--navy, #20324e)}.trade-state{padding:24px 0;font-size:16px;color:var(--muted, #748094)}.trade-error{margin:0 0 20px;padding:10px 14px;border-radius:8px;background:#fdecec;font-size:16px;color:#b4232a}.trade-table{width:100%;border:1px solid var(--line, #e7ebf0);border-radius:10px;border-collapse:collapse;overflow:hidden}.trade-table th,.trade-table td{padding:16px;border-bottom:1px solid var(--line, #e7ebf0);font-size:16px;text-align:left;vertical-align:middle}.trade-table thead th{background:#fafbfd;font-weight:600;color:var(--muted, #748094)}.trade-table tbody tr.blocked{background:#fcfcfd;opacity:.65}.trade-table tfoot td{border-bottom:none;background:#fafbfd;color:var(--muted, #748094)}.trade-table .right{text-align:right}.trade-table .amount{font-size:18px;color:#e5484d}.trade-course{display:flex;gap:14px;align-items:center}.trade-course img,.trade-thumb-blank{display:block;width:96px;height:64px;border-radius:6px;object-fit:cover;background:#eef2f7}.trade-course a{color:var(--navy, #20324e);text-decoration:none}.trade-course a:hover{text-decoration:underline}.trade-course small{display:block;margin-top:4px;font-size:13px;color:var(--muted, #748094)}.trade-course small.blocked-reason{color:#b4610f}.trade-empty{padding:48px 16px;text-align:center;color:var(--muted, #748094)}.link-danger{display:inline-flex;gap:4px;align-items:center;border:none;background:none;font-size:15px;color:#d97706;cursor:pointer}.link-danger:hover{color:#e5484d}.trade-block{margin-top:36px}.trade-block h2{margin:0 0 14px;font-size:21px;color:var(--navy, #20324e)}.trade-channels{padding:20px;border:1px solid var(--line, #e7ebf0);border-radius:10px}.trade-channel-options{display:flex;gap:16px;flex-wrap:wrap}.trade-channel-options label{display:flex;gap:10px;align-items:center;min-width:210px;padding:12px 16px;border:1px solid var(--line, #e7ebf0);border-radius:8px;font-size:16px;cursor:pointer}.trade-channel-options label.active{border-color:var(--navy, #20324e);box-shadow:inset 0 0 0 1px var(--navy, #20324e)}.trade-channel-options label.channel-alipay,.trade-channel-options label.channel-wechat{min-width:0;padding:0;border:0;box-shadow:none}.trade-channel-options label input{margin:0;width:18px;height:18px;accent-color:var(--navy, #20324e);cursor:pointer}.channel-img{display:block;width:192px;height:37px;border:1px solid var(--line, #e7ebf0);border-radius:4px;background:#fff no-repeat center / 100% 100%}.channel-alipay .channel-img{background-image:url(/images/pay/alipay.jpg)}.channel-wechat .channel-img{background-image:url(/images/pay/wechat.jpg)}.trade-channel-options label.active .channel-img{border-color:var(--navy, #20324e);box-shadow:0 0 0 1px var(--navy, #20324e)}.trade-coupons{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.trade-coupons label{display:flex;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line, #e7ebf0);border-radius:8px;font-size:16px;cursor:pointer}.trade-coupons label.active{border-color:var(--navy, #20324e);box-shadow:inset 0 0 0 1px var(--navy, #20324e)}.trade-coupons label.blocked{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.trade-coupon-amount{font-size:19px;font-weight:700;color:#e5484d;white-space:nowrap}.trade-coupons label.blocked .trade-coupon-amount{color:#cbd5e1}.trade-coupon-body{display:flex;flex-direction:column;gap:2px;min-width:0}.trade-coupon-body small{font-size:13px;color:#7a8699}.trade-coupon-body .blocked-reason{color:#e5484d}.trade-summary{margin-top:28px;padding:24px;border-radius:10px;background:#fff8ef}.trade-summary dl{margin:0;font-size:16px;color:#5a6a80}.trade-summary dl div{display:flex;gap:4px;margin-bottom:8px}.trade-summary dt,.trade-summary dd{margin:0}.trade-submit{display:flex;gap:24px;align-items:center;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}.trade-submit p{margin:0;font-size:16px;color:#5a6a80}.trade-submit .amount{font-size:26px;color:#e5484d}.trade-pay-head{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:20px 24px;border:1px solid var(--line, #e7ebf0);border-radius:10px}.trade-pay-subject{margin:0;font-size:18px;font-weight:600;color:var(--navy, #20324e)}.trade-pay-no{margin:6px 0 0;font-size:15px;color:var(--muted, #748094)}.amount.big{font-size:30px;color:#e5484d}.trade-pay-lines{margin:16px 0 0;padding:0;list-style:none}.trade-pay-lines li{display:flex;justify-content:space-between;padding:10px 4px;border-bottom:1px solid #f0f3f7;font-size:16px;color:#45546b}.trade-pay-lines em{font-style:normal;color:var(--muted, #748094)}.trade-pay-body{text-align:center}.trade-qr img{padding:10px;border:1px solid var(--line, #e7ebf0);border-radius:10px;background:#fff}.trade-qr p{margin:12px 0 0;font-size:16px;color:#45546b}.trade-redirect{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:16px;color:#45546b}.trade-poll{margin:18px 0 0;font-size:15px;color:var(--muted, #748094)}.trade-retry{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0 0}.trade-done{text-align:center}.trade-done .ok{color:#1f8a4c}.trade-done p{color:#45546b}.trade-done-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}@media(width<=720px){.trade-table thead{display:none}.trade-table,.trade-table tbody,.trade-table tr,.trade-table td{display:block;width:100%}.trade-table td{border-bottom:none;padding:8px 16px}.trade-table tbody tr{border-bottom:1px solid var(--line, #e7ebf0);padding:8px 0}.trade-submit{justify-content:space-between}}
