[x-cloak]{display:none!important}
html{scroll-behavior:smooth}
img{max-width:100%}
button,a{ -webkit-tap-highlight-color:transparent}
.book-cover{aspect-ratio:1/1}
.book-cover-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center}
.st-pending{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.st-review{background:#fffbeb;color:#b45309;border-color:#fde68a}
.st-paid{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.st-done{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.st-cancel{background:#fff1f2;color:#be123c;border-color:#fecdd3}
.badge-st{display:inline-flex;align-items:center;gap:.35rem;font-size:12px;font-weight:700;padding:.2rem .6rem;border-radius:999px;border:1px solid}
.pay-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}
.pay-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.08)}
.pay-card.is-on{box-shadow:0 12px 28px rgba(79,70,229,.18)}
.copy-ok{background:#059669!important;color:#fff!important}
.admin-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:40}
.admin-overlay.open{display:block}
.admin-side{position:fixed;inset:0 auto 0 0;width:16.5rem;max-width:86vw;transform:translateX(-105%);transition:transform .22s ease;z-index:50}
.admin-side.open{transform:none}
@media(min-width:1024px){
  .admin-overlay{display:none!important}
  .admin-side{position:relative;inset:auto;width:14rem;max-width:none;transform:none}
}
.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.admin-table-wrap table{min-width:640px}
.track-dot{width:14px;height:14px;border-radius:999px;border:3px solid #e2e8f0;background:#fff;flex-shrink:0}
.track-dot.on{border-color:#4f46e5;background:#4f46e5}
.track-dot.done{border-color:#059669;background:#059669}
.track-dot.fail{border-color:#e11d48;background:#e11d48}
.track-line{width:2px;background:#e2e8f0;margin-left:6px;min-height:28px}
.track-line.on{background:#4f46e5}
body.nav-open{overflow:hidden}
.support-fab{position:fixed;right:16px;bottom:20px;z-index:40;background:#00a3ff;color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;box-shadow:0 10px 24px rgba(0,163,255,.35);display:flex;align-items:center;gap:8px;text-decoration:none;transition:transform .2s ease,background .2s ease}
.support-fab:hover{background:#0284c7;transform:translateY(-2px)}
body.has-cart-fab .support-fab{bottom:86px}
.js-cart-badge.is-zero{display:none!important}
.js-cart-badge.is-pop{animation:badgePop .45s ease}
@keyframes badgePop{0%{transform:scale(.6)}55%{transform:scale(1.18)}100%{transform:scale(1)}}
.page-veil{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(79,70,229,.08));transition:opacity .22s ease}
.page-veil.is-on{opacity:1;pointer-events:auto}
main{animation:pageIn .38s ease both}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cart-fab{position:fixed;right:16px;bottom:20px;z-index:55;display:none;align-items:center;gap:8px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:0;padding:12px 18px 12px 14px;border-radius:999px;font-weight:800;font-size:14px;box-shadow:0 14px 32px rgba(79,70,229,.42);cursor:pointer;animation:fabIn .35s cubic-bezier(.2,.8,.2,1)}
.cart-fab.is-on{display:inline-flex}
.cart-fab:hover{transform:translateY(-2px) scale(1.02)}
.cart-fab-icon{width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center}
.cart-fab-icon svg{width:18px;height:18px}
.cart-fab-badge{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fb7185;color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center}
.cart-fab.is-pulse{animation:fabPulse .7s ease}
@keyframes fabIn{from{opacity:0;transform:translateY(16px) scale(.92)}to{opacity:1;transform:none}}
@keyframes fabPulse{0%,100%{transform:scale(1)}40%{transform:scale(1.08)}}
.cart-drawer{position:fixed;inset:0;z-index:90;pointer-events:none;visibility:hidden}
.cart-drawer.is-open{pointer-events:auto;visibility:visible}
.cart-drawer-overlay{position:absolute;inset:0;background:rgba(15,23,42,.46);backdrop-filter:blur(4px);opacity:0;transition:opacity .22s ease}
.cart-drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(420px,100%);background:#fff;box-shadow:-16px 0 40px rgba(15,23,42,.18);display:flex;flex-direction:column;transform:translateX(104%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.cart-drawer.is-open .cart-drawer-overlay{opacity:1}
.cart-drawer.is-open .cart-drawer-panel{transform:none}
.cart-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #eef2ff}
.cart-drawer-head h3{margin:0;font-size:18px;font-weight:800}
.cart-drawer-close{width:36px;height:36px;border:0;border-radius:999px;background:#f1f5f9;font-size:16px;cursor:pointer}
.cart-drawer-items{flex:1;overflow:auto;padding:8px 16px 16px}
.cart-empty{text-align:center;color:#94a3b8;padding:48px 12px;font-weight:700}
.cart-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #f1f5f9}
.cart-row img{width:56px;height:80px;object-fit:cover;border-radius:8px;border:1px solid #e2e8f0;background:#efece8;flex-shrink:0}
.cart-row-meta{flex:1;min-width:0}
.cart-row-title{display:block;font-weight:800;font-size:14px;line-height:1.35;color:#0f172a;margin-bottom:8px}
.cart-row-tools{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cart-qty{display:inline-flex;align-items:center;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;height:30px}
.cart-qty button{width:30px;height:30px;border:0;background:#fff;cursor:pointer;font-weight:800}
.cart-qty span{min-width:28px;text-align:center;font-size:12px;font-weight:800}
.cart-row-price{font-weight:900}
.cart-row-del{border:0;background:transparent;color:#e11d48;font-size:16px;cursor:pointer;padding:0 4px}
.cart-drawer-foot{padding:16px;border-top:1px solid #eef2ff;background:#fafafa}
.cart-drawer-total{display:flex;justify-content:space-between;align-items:center;font-weight:800;margin-bottom:12px}
.cart-drawer-pay{display:block;text-align:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-weight:800;padding:13px 16px;border-radius:14px;text-decoration:none}
.cart-drawer-full{display:block;text-align:center;margin-top:8px;font-size:13px;font-weight:700;color:#4f46e5;text-decoration:none}
.gb-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(12px);z-index:120;background:#0f172a;color:#fff;padding:10px 16px;border-radius:999px;font-weight:700;font-size:13px;opacity:0;pointer-events:none;box-shadow:0 12px 30px rgba(15,23,42,.28);transition:opacity .2s ease,transform .2s ease;max-width:90vw}
.gb-toast.is-on{opacity:1;transform:translateX(-50%) translateY(0)}
body.cart-open{overflow:hidden}
.js-cart-btn.is-busy,.js-buy-link.is-busy{opacity:.7;pointer-events:none}
.js-buy-link{transition:transform .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}
a.js-buy-link:active,button.js-buy-link:active{transform:scale(.97)}
.book-card-pop{animation:cardPop .45s ease}
@keyframes cardPop{0%{transform:scale(1)}35%{transform:scale(.97)}100%{transform:scale(1)}}
.admin-side{color:#e2e8f0}
.admin-side a,.admin-side button{color:#f1f5f9}
.admin-nav a{color:#f8fafc!important;background:rgba(255,255,255,.04)}
.admin-nav a:hover{background:rgba(255,255,255,.12);color:#fff!important}
.admin-nav a.is-active{background:#4f46e5!important;color:#fff!important}
.admin-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#4f46e5;color:#fff;border:0;flex-shrink:0}
.admin-menu-btn svg{width:22px;height:22px;stroke:#fff}
@media(min-width:1024px){
  .admin-menu-btn{display:none}
}
.success-burst{position:absolute;inset:-40px auto auto 50%;width:120px;height:120px;margin-left:-60px;border-radius:50%;background:radial-gradient(circle,rgba(16,185,129,.18),transparent 70%);opacity:0;pointer-events:none}
.success-burst.is-on{animation:burst .8s ease forwards}
@keyframes burst{0%{transform:scale(.4);opacity:0}40%{opacity:1}100%{transform:scale(2.2);opacity:0}}
@media(prefers-reduced-motion:reduce){
  .pay-card,.admin-side,.success-burst,main,.cart-fab,.cart-drawer-panel,.page-veil,.gb-toast{transition:none;animation:none}
}
