:root{--pink:#e85d75;--pink-dk:#d74d65;--slate:#2d3748;--slate-lt:#3d4758;--bg:#f5f5f7;--muted:#717182;--border:#d1d5db;--green:#16a34a}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--slate);min-height:100vh;font-family:DM Sans,system-ui,sans-serif;font-size:15px}.page-header{background:#fff;border-bottom:1px solid #00000017;padding:20px 28px}.breadcrumb-line{color:var(--muted);margin-bottom:6px;font-size:.8rem}.breadcrumb-line a{color:var(--muted);text-decoration:none}.breadcrumb-line a:hover{color:var(--pink)}.page-title{color:var(--pink);margin:0;font-family:DM Serif Display,Georgia,serif;font-size:2rem;font-weight:400}.page-desc{color:#4a5568;max-width:680px;margin-top:10px;font-size:.88rem;line-height:1.65}.page-desc a{color:var(--pink)}.btn-cart{background:var(--slate);color:#fff;white-space:nowrap;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:7px;padding:10px 18px;font-size:.88rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex;position:relative}.btn-cart:hover{background:var(--slate-lt);color:#fff}.cart-badge{background:var(--pink);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.65rem;font-weight:700;display:flex;position:absolute;top:-8px;right:-8px}.signin-strip{background:linear-gradient(135deg,#fff8f9 0%,#fff 100%);border:1px solid #f9c0c9;border-radius:8px;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 18px;display:flex}.strip-icon{background:var(--pink);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;display:flex}.strip-text h6{margin:0;font-size:.9rem;font-weight:600}.strip-text p{color:var(--muted);margin:0;font-size:.8rem}.btn-signin{background:var(--slate);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:5px;padding:8px 18px;font-size:.83rem;font-weight:500;transition:background .15s}.btn-signin:hover{background:var(--slate-lt)}.student-banner{background:linear-gradient(135deg, var(--slate) 0%, #1a2436 100%);color:#fff;border-radius:8px;align-items:center;gap:14px;padding:14px 20px;display:flex}.banner-avatar{background:var(--pink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1rem;font-weight:700;display:flex}.banner-name{margin:0;font-size:.95rem;font-weight:600}.banner-sub{opacity:.7;margin:0;font-size:.78rem}.btn-signout{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff1f;border:1px solid #fff3;border-radius:5px;margin-left:auto;padding:6px 14px;font-size:.78rem;transition:background .12s}.btn-signout:hover{background:#ffffff38}.panel-head{background:var(--slate);color:#fff;border-radius:6px 6px 0 0;padding:14px 18px}.panel-head h2,.panel-head h3{margin:0;font-size:1rem;font-weight:500}.panel-body{border:1px solid var(--border);background:#fff;border-top:none;border-radius:0 0 6px 6px;padding:20px}.panel-body.tall{min-height:295px}.field-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:5px;font-size:.75rem;font-weight:600;display:block}.hk-select{border:1px solid var(--border);width:100%;color:var(--slate);appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23717182' d='M6 8 0 0h12z'/%3E%3C/svg%3E") right 13px center no-repeat;border-radius:6px;padding:10px 36px 10px 13px;font-family:DM Sans,sans-serif;font-size:.9rem;transition:border-color .15s,box-shadow .15s;display:block}.hk-select:focus{border-color:var(--pink);outline:none;box-shadow:0 0 0 3px #e85d751f}.hk-select:disabled{color:#a0aab4;cursor:not-allowed;background-color:#f3f4f6}.hk-input{border:1.5px solid var(--border);background:#fff;border-radius:7px;width:100%;padding:10px 13px;font-family:DM Sans,sans-serif;font-size:.9rem;transition:border-color .15s,box-shadow .15s;display:block}.hk-input:focus{border-color:var(--pink);outline:none;box-shadow:0 0 0 3px #e85d751f}.btn-add-course{background:var(--pink);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:11px;font-size:.88rem;font-weight:600;transition:background .15s}.btn-add-course:hover:not(:disabled){background:var(--pink-dk)}.btn-add-course:disabled{opacity:.45;cursor:not-allowed}.btn-primary-hk{background:var(--pink);color:#fff;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:13px 24px;font-size:.9rem;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn-primary-hk:hover:not(:disabled){background:var(--pink-dk)}.btn-primary-hk:disabled{opacity:.55;cursor:not-allowed}.btn-primary-hk.full{width:100%}.btn-back{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:6px;padding:12px 20px;font-size:.88rem;font-weight:500;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.btn-back:hover{color:var(--slate);border-color:#9ca3af}.course-row{background:#fafafa;border:1px solid #e5e7eb;border-radius:6px;align-items:flex-start;margin-bottom:6px;padding:10px 12px;transition:background .1s;display:flex}.course-row:hover{background:#f3f4f6}.course-row-code{font-size:.88rem;font-weight:600}.course-row-meta{color:var(--muted);margin-top:2px;font-size:.75rem}.btn-remove{background:var(--pink);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:8px;padding:0;font-size:.75rem;transition:background .12s;display:flex}.btn-remove:hover{background:var(--pink-dk)}.empty-hint{text-align:center;color:var(--muted);padding:40px 16px}.empty-hint i{opacity:.25;margin-bottom:10px;font-size:2.2rem;display:block}.book-section{margin-top:28px}.book-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;gap:18px;margin-bottom:14px;padding:20px;transition:box-shadow .15s;display:flex}.book-card:hover{box-shadow:0 2px 14px #00000012}.book-thumb{color:#cbd5e0;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:84px;height:112px;font-size:2rem;display:flex;overflow:hidden}.book-thumb img{object-fit:cover;width:100%;height:100%}.book-info{flex:1;min-width:0}.book-title{color:var(--slate);margin-bottom:6px;font-size:.95rem;font-weight:700;line-height:1.4}.book-meta-line{color:#4a5568;margin-bottom:3px;font-size:.82rem}.book-meta-line strong{font-weight:600}.badge-required{color:#b91c1c;background:#fee2e2;border-radius:20px;margin:6px 0 8px;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-block}.badge-recommended{color:#1d4ed8;background:#dbeafe;border-radius:20px;margin:6px 0 8px;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-block}.teacher-note{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;margin-bottom:13px;padding:10px 13px;font-size:.8rem;line-height:1.5}.teacher-note strong{color:#166534}.condition-picker-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;font-size:.78rem;font-weight:600}.condition-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.btn-opt{border:1.5px solid var(--border);color:var(--slate);cursor:pointer;text-align:center;background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:58px;padding:10px 12px;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:500;line-height:1.3;transition:border-color .12s,box-shadow .12s;display:flex;position:relative}.btn-opt:not(.selected):not(.unavailable):hover{border-color:#9ca3af}.btn-opt.selected{border:2px solid var(--slate);box-shadow:0 0 0 1px var(--slate)}.btn-opt.unavailable{color:#a0aab4;cursor:default;background:#f9fafb;border-color:#e5e7eb}.btn-opt.unavailable .opt-name,.btn-opt.unavailable .opt-price{color:#b0b7c3;text-decoration:line-through}.opt-name{font-size:.88rem;font-weight:500}.opt-price{color:var(--muted);margin-top:2px;font-size:.78rem}.book-price-display{align-items:baseline;gap:8px;min-height:24px;margin-bottom:13px;display:flex}.book-price-amount{color:var(--pink);font-size:1.3rem;font-weight:700}.book-price-tbd{color:var(--muted);font-size:.82rem;font-style:italic}.btn-add-cart{background:var(--pink);color:#fff;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:7px;width:100%;padding:11px;font-size:.82rem;font-weight:600;transition:background .12s;display:flex}.btn-add-cart:hover{background:var(--pink-dk)}.btn-add-cart.in-cart{background:var(--green)}.btn-add-cart.in-cart:hover{background:#15803d}.preorder-note{color:#92400e;background:#fefce8;border:1px solid #fde68a;border-radius:6px;margin-bottom:12px;padding:9px 13px;font-size:.78rem;line-height:1.5}.btn-opt[data-option=preorder]:not(.unavailable){border-color:#f59e0b}.btn-opt[data-option=preorder].selected{border-color:#d97706;box-shadow:0 0 0 1px #d97706}.cart-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;gap:14px;margin-bottom:12px;padding:16px;transition:background .1s;display:flex}.cart-item:hover{background:#fafafa}.cart-thumb{color:#cbd5e0;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:74px;font-size:1.5rem;display:flex}.cart-item-info{flex:1;min-width:0}.cart-item-title{color:var(--slate);margin-bottom:4px;font-size:.93rem;font-weight:700;line-height:1.35}.cart-item-meta{color:var(--muted);margin-bottom:2px;font-size:.8rem}.condition-badge{color:var(--slate);text-transform:uppercase;letter-spacing:.04em;background:#f3f4f6;border-radius:4px;padding:2px 9px;font-size:.7rem;font-weight:600;display:inline-block}.cart-item-right{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;display:flex}.cart-item-price{color:var(--pink);font-size:1.1rem;font-weight:700}.btn-remove-cart{cursor:pointer;width:30px;height:30px;color:var(--muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:flex}.btn-remove-cart:hover{color:#b91c1c;background:#fee2e2}.cart-empty{text-align:center;padding:50px 20px}.cart-empty i{color:#cbd5e0;margin-bottom:14px;font-size:3rem;display:block}.btn-checkout{background:var(--pink);color:#fff;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border:none;border-radius:6px;width:100%;margin-top:4px;padding:12px;font-size:.9rem;font-weight:600;transition:background .15s}.btn-checkout:hover:not(:disabled){background:var(--pink-dk)}.btn-checkout:disabled{opacity:.45;cursor:not-allowed}.btn-continue{text-align:center;color:var(--pink);margin-top:12px;font-size:.83rem;text-decoration:none;display:block}.btn-continue:hover{color:var(--pink-dk);text-decoration:underline}.btn-find-books{background:var(--pink);color:#fff;border-radius:6px;padding:11px 24px;font-size:.88rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.btn-find-books:hover{background:var(--pink-dk);color:#fff}.summary-row{color:var(--muted);justify-content:space-between;align-items:center;padding:8px 0;font-size:.88rem;display:flex}.summary-row.total{border-top:1px solid var(--border);color:var(--slate);margin-top:6px;padding-top:14px;font-size:1.05rem;font-weight:700}.summary-row.total .amount{color:var(--pink)}.checkout-progress{background:#fff;border-bottom:1px solid #00000012;padding:18px 28px}.step-track{align-items:flex-start;max-width:480px;margin:0 auto;display:flex}.step-item{flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.step-item:not(:last-child):after{content:"";z-index:0;background:#e5e7eb;height:2px;position:absolute;top:14px;left:calc(50% + 18px);right:calc(18px - 50%)}.step-item.done:after{background:var(--green)}.step-dot{z-index:1;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.72rem;font-weight:700;transition:all .2s;display:flex}.step-dot.done{background:var(--green);color:#fff}.step-dot.active{background:var(--pink);color:#fff}.step-dot.pending{color:#aaa;background:#f3f4f6;border:1.5px solid #e5e7eb}.step-lbl{color:var(--muted);margin-top:5px;font-size:.7rem;font-weight:600}.step-lbl.active{color:var(--pink)}.step-lbl.done{color:var(--green)}.checkout-main{max-width:1020px;margin:0 auto;padding:32px 16px 60px}@media (width>=992px){.checkout-grid{align-items:flex-start;display:flex}.checkout-grid>.col-lg-7{width:58.3333%}.checkout-grid>.col-lg-5{width:41.6667%}.checkout-grid>.col-lg-12{width:100%}}.co-card{border:1px solid var(--border);background:#fff;border-radius:10px;padding:28px 32px}.co-card-title{color:var(--slate);margin-bottom:4px;font-family:DM Serif Display,serif;font-size:1.3rem;font-weight:400}.co-card-sub{color:var(--muted);margin-bottom:24px;font-size:.83rem}.order-sidebar{border:1px solid var(--border);background:#fff;border-radius:10px;padding:22px;position:sticky;top:24px}.sidebar-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:14px;font-size:.75rem;font-weight:700}.co-sum-item{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;font-size:.83rem;display:flex}.co-sum-name{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.co-sum-cond{color:var(--muted);text-transform:uppercase;white-space:nowrap;background:#eff0f2;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:.7rem}.co-sum-price{color:var(--slate);flex-shrink:0;font-weight:600}.summary-divider{border:none;border-top:1px solid #e5e7eb;margin:12px 0}.co-summary-empty{color:var(--muted);margin:0;font-size:.83rem}.payment-banner{background:linear-gradient(135deg, var(--slate) 0%, #1a2436 100%);color:#fff;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 20px;display:flex}.pb-label{opacity:.7;font-size:.78rem}.pb-amount{font-family:DM Serif Display,serif;font-size:1.8rem;font-weight:700}.ship-option{border:1.5px solid var(--border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.ship-option:hover{border-color:#9ca3af}.ship-option.selected{border-color:var(--pink);background:#fff8f9}.ship-option input[type=radio]{accent-color:var(--pink);flex-shrink:0;width:16px;height:16px;margin-top:3px}.ship-option-body{flex:1}.ship-option-label{color:var(--slate);margin-bottom:2px;font-size:.92rem;font-weight:600}.ship-option-desc{color:var(--muted);font-size:.8rem}.ship-option-price{color:var(--pink);flex-shrink:0;margin-top:2px;font-size:.92rem;font-weight:700}.address-fields{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.stripe-field-wrap{border:1.5px solid var(--border);background:#fff;border-radius:7px;min-height:42px;padding:11px 13px;transition:border-color .15s}.stripe-field-wrap.focused{border-color:var(--pink);box-shadow:0 0 0 3px #e85d751a}.stripe-card-error{color:#dc2626;min-height:18px;margin-top:5px;font-size:.8rem}.confirm-page{text-align:center;max-width:520px;margin:0 auto;padding:20px 0}.success-circle{background:var(--green);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;font-size:2.2rem;display:flex;box-shadow:0 6px 24px #16a34a47}.confirm-page h2{color:var(--slate);margin-bottom:10px;font-family:DM Serif Display,serif;font-size:1.8rem;font-weight:400}.confirm-page>p{color:var(--muted);margin-bottom:24px;font-size:.9rem;line-height:1.7}.confirm-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;margin-bottom:20px;padding:18px 22px}.confirm-box .cf-label{color:#166534;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:.7rem;font-weight:700}.confirm-box .cf-number{color:var(--slate);letter-spacing:.1em;font-family:DM Serif Display,serif;font-size:1.7rem;font-weight:700}.confirm-detail{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin-bottom:5px;font-size:.82rem;display:flex}.next-steps{text-align:left;background:#f0f4ff;border:1px solid #c7d2fe;border-radius:8px;margin:20px 0 28px;padding:14px 18px}.next-steps .ns-title{color:#3730a3;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.75rem;font-weight:700}.next-steps p{color:#4338ca;margin:0;font-size:.83rem;line-height:1.65}.float-cart{z-index:1050;background:var(--slate);color:#fff;justify-content:space-between;align-items:center;gap:14px;padding:14px 20px;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -4px 24px #00000038}.float-cart.visible{transform:translateY(0)}.float-cart-info{align-items:center;gap:10px;min-width:0;display:flex}.float-cart-icon{background:var(--pink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;display:flex;position:relative}.float-cart-badge{color:var(--pink);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.6rem;font-weight:800;display:flex;position:absolute;top:-6px;right:-6px}.float-cart-label{font-size:.88rem;font-weight:500}.float-cart-btn{background:var(--pink);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:7px;padding:10px 22px;font-size:.88rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.float-cart-btn:hover{background:var(--pink-dk);color:#fff}.modal-hk .modal-content{border:none;border-radius:10px;overflow:hidden}.modal-hk .modal-header{background:var(--slate);color:#fff;border:none;padding:18px 22px}.modal-hk .modal-header .btn-close{filter:invert();opacity:.7}.modal-hk .modal-title{font-family:DM Serif Display,serif;font-weight:400}.btn-modal-submit{background:var(--pink);color:#fff;cursor:pointer;border:none;border-radius:7px;width:100%;padding:12px;font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:600;transition:background .15s;display:block}.btn-modal-submit:hover:not(:disabled){background:var(--pink-dk)}.btn-modal-submit:disabled{opacity:.55;cursor:not-allowed}.btn-modal-back{color:var(--pink);cursor:pointer;background:0 0;border:none;padding:0;font-family:DM Sans,sans-serif;font-size:.82rem;text-decoration:underline}.btn-modal-back:hover{color:var(--pink-dk)}.toast-wrap{z-index:9999;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;top:24px;right:24px}.hk-toast{background:var(--slate);color:#fff;border-radius:8px;align-items:center;gap:9px;padding:11px 18px;font-size:.84rem;animation:.22s toastIn;display:flex;box-shadow:0 4px 18px #0000002e}.hk-toast .ti{color:var(--pink)}.hk-toast.ok .ti{color:#4ade80}.hk-toast.info .ti{color:#60a5fa}@keyframes toastIn{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=767px){.page-header,.checkout-progress{padding:14px 16px}.page-title{font-size:1.5rem}.panel-body{padding:14px}.book-card{flex-direction:column}.book-thumb{width:60px;height:80px;font-size:1.5rem}.co-card{padding:20px 18px}.checkout-main{padding:20px 12px 48px}.float-cart{padding:12px 14px}}.toast-enter-from[data-v-a9a306ed]{opacity:0;transform:translateY(-10px)}.toast-enter-active[data-v-a9a306ed]{transition:opacity .22s,transform .22s}.toast-leave-to[data-v-a9a306ed]{opacity:0;transform:translateY(-6px)}.toast-leave-active[data-v-a9a306ed]{transition:opacity .2s,transform .2s}.hk-toast.danger .ti[data-v-a9a306ed]{color:#f87171}
