.public-shop{background:#f4f6f8;min-height:100vh;padding-bottom:48px;--shop-primary:#1976d2;--shop-primary-dark:#1565c0;--shop-accent:#42a5f5;--shop-header-text:#fff;--shop-btn-radius:8px}.public-shop .shop-header{color:var(--shop-header-text,#fff);box-shadow:0 2px 12px rgba(0,0,0,.12);transition:background .3s ease,color .3s ease}.public-shop .shop-header .header-link,.public-shop .shop-header .shop-desc,.public-shop .shop-header .shop-title,.public-shop .shop-header a.text-white{color:var(--shop-header-text,#fff)!important}.public-shop .text-primary{color:var(--shop-primary,#1976d2)!important}.public-shop .btn-primary{background-color:var(--shop-primary,#1976d2);border-color:var(--shop-primary,#1976d2);border-radius:var(--shop-btn-radius,8px);transition:background-color .25s ease,border-color .25s ease,border-radius .25s ease}.public-shop .btn-primary:focus,.public-shop .btn-primary:hover{background-color:var(--shop-primary-dark,#1565c0);border-color:var(--shop-primary-dark,#1565c0)}.public-shop .btn-outline-primary{color:var(--shop-primary,#1976d2);border-color:var(--shop-primary,#1976d2);border-radius:var(--shop-btn-radius,8px)}.public-shop .btn-outline-primary:hover{border-color:var(--shop-primary,#1976d2)}.public-shop .badge-primary,.public-shop .btn-outline-primary:hover{background-color:var(--shop-primary,#1976d2)}.public-shop .badge-accent,.public-shop .badge-info.shop-accent{background-color:var(--shop-accent,#42a5f5);color:#fff}.public-shop .progress-bar:not(.bg-success){background-color:var(--shop-primary,#1976d2)}.public-shop a:not(.btn):not(.header-link):not(.member-btn-sm){color:var(--shop-primary,#1976d2)}.public-shop .spinner-border.text-primary{color:var(--shop-primary,#1976d2)!important}.public-shop .border-primary{border-color:var(--shop-primary,#1976d2)!important}.public-shop .price-tag{color:var(--shop-primary,#1976d2)!important}.public-shop .header-link{text-decoration:none;color:#fff}.public-shop .header-link:hover{opacity:.9}.public-shop .shop-card{border:none;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.06);overflow:hidden}.public-shop .product-card{border:none;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.06);transition:transform .2s ease,box-shadow .2s ease}.public-shop .product-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.1)}.public-shop .card-img-wrap{height:180px;overflow:hidden;background:#eef1f5}.public-shop .card-img-wrap img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.public-shop .placeholder-cover{height:180px;display:flex;align-items:center;justify-content:center;font-size:42px}.public-shop .donation-cover{background:linear-gradient(135deg,#e8f5e9,#a5d6a7)}.public-shop .lms-cover{background:linear-gradient(135deg,#e3f2fd,#90caf9)}.public-shop .product-cover{background:linear-gradient(135deg,#f5f5f5,#e0e0e0)}.public-shop .empty-state{text-align:center;padding:48px 24px;background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.06)}.public-shop .empty-state-icon{font-size:56px;color:#bdbdbd;margin-bottom:16px}.public-shop .status-icon{font-size:64px;display:block;margin-bottom:12px}.public-shop .detail-row{margin-bottom:10px}.public-shop .detail-row:last-child{margin-bottom:0}.public-shop .bank-box,.public-shop .pay-code-box{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:16px}.public-shop .bank-box pre{white-space:pre-wrap;word-break:break-word;font-size:14px;background:transparent;border:none;padding:0;margin:0}.public-shop .pay-code{font-size:18px;font-weight:600;letter-spacing:1px;word-break:break-all}.public-shop .qr-image{width:220px;height:220px;border:1px solid #dee2e6;border-radius:10px;padding:8px;background:#fff}@media (max-width:767px){.public-shop .shop-header h2{font-size:18px!important}.public-shop .card-img-wrap,.public-shop .placeholder-cover{height:140px}}.member-auth-page{background:linear-gradient(180deg,#eef2f7,#f4f6f8 40%,#f4f6f8)}.member-auth-hero{padding:2rem 0 3.5rem;position:relative;overflow:hidden}.member-auth-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,hsla(0,0%,100%,.12) 0,transparent 50%),radial-gradient(circle at 10% 80%,hsla(0,0%,100%,.08) 0,transparent 40%);pointer-events:none}.member-auth-hero-inner{position:relative;z-index:1}.member-auth-brand{display:flex;align-items:center;gap:14px}.member-auth-logo{-o-object-fit:cover;object-fit:cover;box-shadow:0 4px 16px rgba(0,0,0,.12)}.member-auth-logo,.member-auth-logo-placeholder{width:52px;height:52px;border-radius:14px;background:hsla(0,0%,100%,.2);border:2px solid hsla(0,0%,100%,.35)}.member-auth-logo-placeholder{display:flex;align-items:center;justify-content:center;font-size:22px;color:hsla(0,0%,100%,.9)}.member-auth-shop-name{font-size:1.25rem;font-weight:700;margin:0;letter-spacing:-.02em}.member-auth-back{display:inline-flex;align-items:center;gap:6px;color:hsla(0,0%,100%,.85)!important;text-decoration:none;font-size:.875rem;margin-bottom:1.25rem;transition:opacity .2s ease,transform .2s ease}.member-auth-back:hover{opacity:1;transform:translateX(-2px);color:#fff!important}.member-auth-wrap{margin-top:-2rem;position:relative;z-index:2;padding-bottom:3rem}.member-auth-card{border-radius:20px!important;box-shadow:0 12px 40px rgba(0,0,0,.08),0 2px 8px rgba(0,0,0,.04)!important;border:1px solid hsla(0,0%,100%,.8);background:#fff;overflow:visible;animation:memberFadeUp .45s ease-out}@keyframes memberFadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.member-auth-card-header{text-align:center;padding-bottom:.5rem}.member-auth-icon-wrap{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,var(--shop-primary,#1976d2),var(--shop-accent,#42a5f5));display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem;box-shadow:0 8px 24px rgba(25,118,210,.25)}.member-auth-icon-wrap i{font-size:26px;color:#fff}.member-auth-title{font-size:1.35rem;font-weight:700;margin-bottom:.35rem;color:#1a2332;letter-spacing:-.02em}.member-auth-subtitle{font-size:.875rem;color:#7a8b9c;margin:0;line-height:1.5}.member-form-group{margin-bottom:1.15rem}.member-form-label{display:block;font-size:.8125rem;font-weight:600;color:#3d4f63;margin-bottom:.4rem}.member-form-input{width:100%;padding:.7rem 1rem;border:1.5px solid #e2e8f0;border-radius:12px;font-size:.9375rem;color:#1a2332;background:#fafbfc;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.member-form-input:focus{outline:none;border-color:var(--shop-primary,#1976d2);background:#fff;box-shadow:0 0 0 3px rgba(25,118,210,.12)}.member-form-input::-moz-placeholder{color:#a0aec0}.member-form-input:-ms-input-placeholder{color:#a0aec0}.member-form-input::placeholder{color:#a0aec0}.member-input-group{display:flex;align-items:stretch}.member-input-group .member-form-input{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.member-input-toggle{display:flex;align-items:center;justify-content:center;padding:0 14px;border:1.5px solid #e2e8f0;border-left:none;border-radius:0 12px 12px 0;background:#fafbfc;color:#7a8b9c;cursor:pointer;transition:color .2s ease,background .2s ease}.member-input-toggle:hover{color:var(--shop-primary,#1976d2);background:#f0f4f8}.member-btn-primary{width:100%;padding:.8rem 1.5rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--shop-primary,#1976d2),var(--shop-primary-dark,#1565c0));box-shadow:0 4px 14px rgba(25,118,210,.3);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.member-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px rgba(25,118,210,.35)}.member-btn-primary:active:not(:disabled){transform:translateY(0)}.member-btn-primary:disabled{opacity:.65;cursor:not-allowed}.member-alert{display:flex;align-items:flex-start;gap:10px;padding:.75rem 1rem;border-radius:12px;font-size:.875rem;line-height:1.45;margin-bottom:1.15rem;animation:memberFadeUp .3s ease-out}.member-alert i{margin-top:2px;flex-shrink:0}.member-alert-danger{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.member-alert-success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.member-alert-warning{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.member-link{color:var(--shop-primary,#1976d2);text-decoration:none;font-size:.875rem;font-weight:500;transition:opacity .2s ease}.member-link:hover{opacity:.8;text-decoration:underline}.member-footer-link{text-align:center;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #eef2f7}.member-portal{background:#f4f6f8}.member-dash-hero{padding:1.75rem 0 2.5rem;position:relative}.member-dash-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 10%,hsla(0,0%,100%,.1) 0,transparent 45%);pointer-events:none}.member-dash-hero-inner{position:relative;z-index:1}.member-dash-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.member-dash-welcome{display:flex;align-items:center;gap:14px}.member-avatar{width:48px;height:48px;border-radius:14px;background:hsla(0,0%,100%,.25);border:2px solid hsla(0,0%,100%,.4);display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:#fff;text-transform:uppercase}.member-dash-greeting{font-size:1.35rem;font-weight:700;margin:0;letter-spacing:-.02em}.member-dash-email{font-size:.8125rem;opacity:.75;margin:0}.member-btn-logout{display:inline-flex;align-items:center;gap:6px;padding:.45rem 1rem;border-radius:10px;border:1.5px solid hsla(0,0%,100%,.45);background:hsla(0,0%,100%,.15);color:#fff;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .2s ease,border-color .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.member-btn-logout:hover{background:hsla(0,0%,100%,.25);border-color:hsla(0,0%,100%,.6)}.member-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:1.5rem}.member-stat-card{background:#fff;border-radius:16px;padding:1.15rem 1rem;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.04);transition:transform .2s ease,box-shadow .2s ease}.member-stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.08)}.member-stat-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--shop-primary,#1976d2),var(--shop-accent,#42a5f5));display:inline-flex;align-items:center;justify-content:center;margin-bottom:.5rem;opacity:.9}.member-stat-icon i{font-size:14px;color:#fff}.member-stat-num{font-size:1.5rem;font-weight:800;color:var(--shop-primary,#1976d2);line-height:1.2}.member-stat-label{font-size:.6875rem;color:#7a8b9c;text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-top:2px}.member-tabs{display:flex;gap:8px;background:#fff;padding:6px;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.05);margin-bottom:1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.member-tab{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:.65rem .75rem;border:none;border-radius:10px;background:transparent;color:#5a6a7c;font-size:.8125rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .25s ease,color .25s ease,box-shadow .25s ease}.member-tab i{font-size:.875rem}.member-tab.active{background:var(--shop-primary,#1976d2);color:#fff;box-shadow:0 4px 12px rgba(25,118,210,.3)}.member-tab:not(.active):hover{background:#f0f4f8;color:#3d4f63}.member-tab-panel{animation:memberFadeUp .3s ease-out}.member-loading{text-align:center;padding:4rem 1rem}.member-loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:var(--shop-primary,#1976d2);border-radius:50%;animation:memberSpin .8s linear infinite;margin:0 auto 1rem}@keyframes memberSpin{to{transform:rotate(1turn)}}.member-empty{text-align:center;padding:3rem 1.5rem;background:#fff;border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,.05)}.member-empty-icon-wrap{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#f0f4f8,#e8edf3);display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem}.member-empty-icon-wrap i{font-size:28px;color:#b0bec5}.member-empty-title{font-size:1rem;font-weight:600;color:#3d4f63;margin-bottom:.35rem}.member-empty-desc{font-size:.875rem;color:#7a8b9c;margin:0}.member-item-card{background:#fff;border-radius:16px;padding:1.15rem 1.25rem;margin-bottom:12px;box-shadow:0 2px 12px rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.04);transition:box-shadow .2s ease,transform .2s ease}.member-item-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.08)}.member-order-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.5rem}.member-invoice{font-family:SF Mono,Consolas,monospace;font-size:.8125rem;color:#3d4f63;background:#f0f4f8;padding:.2rem .5rem;border-radius:6px}.member-badge{display:inline-block;padding:.2rem .55rem;border-radius:20px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.member-badge-paid{background:#dcfce7;color:#15803d}.member-badge-pending{background:#fef3c7;color:#b45309}.member-badge-other{background:#f1f5f9;color:#64748b}.member-order-amount{font-size:1.05rem;font-weight:700;color:#1a2332}.member-order-date{font-size:.8125rem;color:#7a8b9c;margin-top:.35rem}.member-order-items{list-style:none;padding:0;margin:.75rem 0}.member-order-items li{font-size:.875rem;color:#5a6a7c;padding:.25rem 0;border-bottom:1px solid #f0f4f8}.member-order-items li:last-child{border-bottom:none}.member-btn-sm{display:inline-flex;align-items:center;gap:5px;padding:.45rem .95rem;border-radius:10px;font-size:.8125rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .2s ease,color .2s ease,opacity .2s ease}.member-btn-outline{color:var(--shop-primary,#1976d2)!important;border:1.5px solid var(--shop-primary,#1976d2);background:transparent}.member-btn-outline i{color:inherit}.member-btn-outline:hover{background:var(--shop-primary,#1976d2);color:#fff!important}.member-btn-outline:hover i{color:inherit}.member-btn-solid{color:#fff!important;background:var(--shop-primary,#1976d2);border:none}.member-btn-solid i{color:#fff}.member-btn-solid:hover{opacity:.9;color:#fff!important}.member-btn-solid:hover i{color:#fff}.member-course-title{font-size:1rem;font-weight:600;color:#1a2332;margin-bottom:.65rem}.member-progress-wrap{margin-bottom:.35rem}.member-progress-bar{height:8px;background:#e8edf3;border-radius:10px;overflow:hidden}.member-progress-fill{height:100%;background:linear-gradient(90deg,var(--shop-primary,#1976d2),var(--shop-accent,#42a5f5));border-radius:10px;transition:width .6s ease}.member-progress-text{font-size:.8125rem;color:#7a8b9c}.member-digital-title{font-size:.9375rem;font-weight:600;color:#1a2332;margin-bottom:.35rem}.member-digital-title i{color:var(--shop-primary,#1976d2);margin-right:6px}.member-digital-content{background:#f8fafc;border:1px solid #e8edf3;border-radius:12px;padding:14px;font-size:.875rem;line-height:1.6;word-break:break-word;margin-top:.5rem}.member-digital-content>>>a{color:var(--shop-primary,#1976d2)}.btn-member-login{display:inline-flex;align-items:center;gap:6px;padding:.45rem .9rem;border-radius:10px;font-size:.8125rem;font-weight:600;text-decoration:none;color:var(--shop-primary,#1976d2)!important;background:hsla(0,0%,100%,.95);border:1.5px solid hsla(0,0%,100%,.6);box-shadow:0 2px 8px rgba(0,0,0,.1);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn-member-login:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.15);background:#fff;text-decoration:none}.btn-member-login i{font-size:.875rem}@media (max-width:767px){.member-auth-hero{padding:1.5rem 0 3rem}.member-auth-wrap{margin-top:-1.5rem}.member-auth-card{border-radius:16px!important}.member-dash-greeting{font-size:1.15rem}.member-stat-num{font-size:1.25rem}.member-tab span.tab-label{display:none}.member-tab{padding:.65rem}.member-tab i{font-size:1rem}}@media (min-width:768px){.member-tab span.tab-label{display:inline}}.shop-logo[data-v-e056b022]{height:48px;border-radius:10px;-o-object-fit:cover;object-fit:cover}.shop-title[data-v-e056b022]{font-size:22px;font-weight:600}.shop-desc[data-v-e056b022]{opacity:.9}.cart-badge[data-v-e056b022]{position:absolute;top:-8px;right:-8px}.product-name[data-v-e056b022]{font-size:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.price-tag[data-v-e056b022]{font-size:15px}.border-success[data-v-e056b022]{box-shadow:0 0 0 1px rgba(40,167,69,.2)}.border-primary[data-v-e056b022]{box-shadow:0 0 0 1px rgba(0,123,255,.15)}