.app-portal{--app-bg: hsl(45, 96%, 95%);--app-fg: hsl(25, 15%, 15%);--app-card: hsl(0, 0%, 100%);--app-card-fg: hsl(25, 15%, 15%);--app-primary: hsl(45, 96%, 55%);--app-primary-fg: hsl(0, 0%, 0%);--app-secondary: hsl(45, 85%, 85%);--app-secondary-fg: hsl(25, 15%, 15%);--app-accent: hsl(40, 100%, 65%);--app-accent-fg: hsl(0, 0%, 0%);--app-muted: hsl(45, 50%, 90%);--app-muted-fg: hsl(25, 8%, 45%);--app-destructive: hsl(0, 84.2%, 60.2%);--app-destructive-fg: hsl(0, 0%, 98%);--app-border: hsl(45, 30%, 85%);--app-input: hsl(45, 30%, 90%);--app-ring: hsl(45, 96%, 55%);--app-price: hsl(39, 100%, 56%);--app-background: var(--app-bg);--app-foreground: var(--app-fg);--app-bg-rgb: 251, 243, 219;--app-fg-rgb: 46, 40, 35;--app-card-rgb: 255, 255, 255;--app-primary-rgb: 217, 174, 17;--app-primary-fg-rgb: 0, 0, 0;--app-secondary-rgb: 240, 222, 176;--app-secondary-fg-rgb: 46, 40, 35;--app-accent-rgb: 255, 191, 77;--app-accent-fg-rgb: 0, 0, 0;--app-muted-rgb: 237, 230, 214;--app-muted-fg-rgb: 116, 108, 96;--app-border-rgb: 222, 210, 183;--app-price-rgb: 255, 163, 31;--app-warm-gradient: linear-gradient(135deg, hsl(45 95% 88%) 0%, hsl(35 85% 85%) 100%);--app-hero-gradient: linear-gradient(135deg, hsl(52 95% 88%) 0%, hsl(48 90% 82%) 50%, hsl(50 95% 85%) 100%);--app-card-shadow: 0 4px 20px -2px hsl(45 96% 55% / .15);--app-card-hover-shadow: 0 8px 30px -2px hsl(45 96% 55% / .25);--app-transition-smooth: all .3s cubic-bezier(.4, 0, .2, 1);--app-radius: 1rem;--bs-body-bg: var(--app-bg);--bs-body-color: var(--app-fg);--bs-primary: var(--app-primary);--bs-primary-rgb: var(--app-primary-rgb);--bs-border-color: var(--app-border);--bs-border-radius: var(--app-radius);--bs-card-bg: var(--app-card);--bs-card-border-color: var(--app-border);--bs-link-color: var(--app-primary);background-color:var(--app-bg);color:var(--app-fg)}.app-portal *,.app-portal *:before,.app-portal *:after{border-color:var(--app-border)}.app-portal .bg-app-bg{background-color:var(--app-bg)}.app-portal .bg-app-card{background-color:var(--app-card)}.app-portal .bg-app-accent{background-color:var(--app-accent)}.app-portal .bg-app-primary{background-color:var(--app-primary)}.app-portal .bg-app-secondary{background-color:var(--app-secondary)}.app-portal .bg-app-muted{background-color:var(--app-muted)}.app-portal .text-app-fg{color:var(--app-fg)}.app-portal .text-app-muted-fg{color:var(--app-muted-fg)}.app-portal .text-app-accent-fg{color:var(--app-accent-fg)}.app-portal .text-app-primary-fg{color:var(--app-primary-fg)}.app-portal .text-app-secondary-fg{color:var(--app-secondary-fg)}.app-portal .text-app-price{color:var(--app-price)}.app-portal .text-app-destructive{color:var(--app-destructive)!important}.app-portal .border-app-border{border-color:var(--app-border)}.app-portal .border-app-primary{border-color:var(--app-primary)}.app-portal .bg-card-90{background:rgba(var(--app-card-rgb),.9)}.app-portal .bg-card-80{background:rgba(var(--app-card-rgb),.8)}.app-portal .bg-accent-10{background:rgba(var(--app-accent-rgb),.1)}.app-portal .bg-accent-15{background:rgba(var(--app-accent-rgb),.15)}.app-portal .bg-accent-20{background:rgba(var(--app-accent-rgb),.2)}.app-portal .bg-primary-10{background:rgba(var(--app-primary-rgb),.1)}.app-portal .bg-primary-15{background:rgba(var(--app-primary-rgb),.15)}.app-portal .bg-primary-20{background:rgba(var(--app-primary-rgb),.2)}.app-portal .bg-secondary-50{background:rgba(var(--app-secondary-rgb),.5)}.app-portal .hover-bg-accent-30:hover{background:rgba(var(--app-accent-rgb),.3)}.app-portal .hover-bg-accent-90:hover{background:rgba(var(--app-accent-rgb),.9)}.app-portal .hover-opacity-80:hover{opacity:.8}.app-portal .backdrop-blur-md{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.app-portal .backdrop-blur-lg{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.app-portal .shadow-sm{box-shadow:0 1px 2px #0000000d}.app-portal .shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.app-portal .shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.app-portal .shadow-card{box-shadow:var(--app-card-shadow)}.app-portal .shadow-card-hover,.app-portal .hover-shadow-card-hover:hover{box-shadow:var(--app-card-hover-shadow)}.app-portal .bg-gradient-join-cta{background:linear-gradient(135deg,rgba(var(--app-accent-rgb),.2) 0%,rgba(var(--app-primary-rgb),.1) 50%,var(--app-secondary) 100%)}.app-portal .bg-accent-10-blur{background:rgba(var(--app-accent-rgb),.1);filter:blur(48px)}.app-portal .bg-accent-20-blur{background:rgba(var(--app-accent-rgb),.2);filter:blur(24px)}.app-portal .bg-primary-10-blur{background:rgba(var(--app-primary-rgb),.1);filter:blur(48px)}.app-portal .bg-primary-20-blur{background:rgba(var(--app-primary-rgb),.2);filter:blur(24px)}.app-portal .bg-gradient-to-t-card-fade{background:linear-gradient(to top,var(--app-card),rgba(var(--app-card-rgb),.3),transparent)}.app-portal .text-2xs{font-size:.625rem;line-height:1rem}.app-portal .text-xs{font-size:.75rem;line-height:1rem}.app-portal .text-sm{font-size:.875rem;line-height:1.25rem}.app-portal .text-base{font-size:1rem;line-height:1.5rem}.app-portal .text-lg{font-size:1.125rem;line-height:1.75rem}.app-portal .text-xl{font-size:1.25rem;line-height:1.75rem}.app-portal .text-2xl{font-size:1.5rem;line-height:2rem}.app-portal .text-3xl{font-size:1.875rem;line-height:2.25rem}.app-portal .text-5xl{font-size:3rem;line-height:1}.app-portal .font-semibold{font-weight:600}.app-portal .font-bold{font-weight:700}.app-portal .font-extrabold{font-weight:800}.app-portal .leading-tight{line-height:1.25}.app-portal .leading-relaxed{line-height:1.625}.app-portal .whitespace-nowrap{white-space:nowrap}.app-portal .w-3-5{width:.875rem}.app-portal .w-4{width:1rem}.app-portal .w-5{width:1.25rem}.app-portal .w-6{width:1.5rem}.app-portal .w-7{width:1.75rem}.app-portal .w-8{width:2rem}.app-portal .w-10{width:2.5rem}.app-portal .w-12{width:3rem}.app-portal .w-24{width:6rem}.app-portal .w-28{width:7rem}.app-portal .w-40{width:10rem}.app-portal .w-72{width:18rem}.app-portal .h-3-5{height:.875rem}.app-portal .h-4{height:1rem}.app-portal .h-5{height:1.25rem}.app-portal .h-6{height:1.5rem}.app-portal .h-7{height:1.75rem}.app-portal .h-8{height:2rem}.app-portal .h-10{height:2.5rem}.app-portal .h-12{height:3rem}.app-portal .h-24{height:6rem}.app-portal .h-36{height:9rem}.app-portal .h-40{height:10rem}.app-portal .h-72{height:18rem}.app-portal .w-100{width:100%}.app-portal .h-100{height:100%}.app-portal .max-w-xs{max-width:20rem}.app-portal .max-w-lg{max-width:32rem}.app-portal .max-w-2xl{max-width:42rem}.app-portal .max-w-3xl{max-width:48rem}.app-portal .max-w-4xl{max-width:56rem}.app-portal .max-w-5xl{max-width:64rem}.app-portal .max-w-6xl{max-width:72rem}.app-portal .max-w-7xl{max-width:80rem}.app-portal .py-8{padding-top:2rem;padding-bottom:2rem}.app-portal .py-12{padding-top:3rem;padding-bottom:3rem}.app-portal .py-16{padding-top:4rem;padding-bottom:4rem}.app-portal .py-20{padding-top:5rem;padding-bottom:5rem}.app-portal .py-24{padding-top:6rem;padding-bottom:6rem}.app-portal .py-28{padding-top:7rem;padding-bottom:7rem}.app-portal .pt-24{padding-top:6rem}.app-portal .pb-12{padding-bottom:3rem}.app-portal .px-4{padding-left:1rem;padding-right:1rem}.app-portal .p-5{padding:1.25rem}.app-portal .p-6{padding:1.5rem}.app-portal .p-8{padding:2rem}.app-portal .px-2-5{padding-left:.625rem;padding-right:.625rem}.app-portal .py-1-5{padding-top:.375rem;padding-bottom:.375rem}.app-portal .mt-1{margin-top:.25rem}.app-portal .mt-2{margin-top:.5rem}.app-portal .mt-4{margin-top:1rem}.app-portal .mt-6{margin-top:1.5rem}.app-portal .mt-8{margin-top:2rem}.app-portal .mt-10{margin-top:2.5rem}.app-portal .mt-16{margin-top:4rem}.app-portal .mb-3{margin-bottom:.75rem}.app-portal .mb-4{margin-bottom:1rem}.app-portal .mb-10{margin-bottom:2.5rem}.app-portal .mb-12{margin-bottom:3rem}.app-portal .pt-8{padding-top:2rem}.app-portal .mb-6{margin-bottom:1.5rem}.app-portal .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.app-portal .gap-1-5{gap:.375rem}.app-portal .gap-3{gap:.75rem}.app-portal .gap-4{gap:1rem}.app-portal .gap-6{gap:1.5rem}.app-portal .gap-8{gap:2rem}.app-portal .space-y-2>*+*{margin-top:.5rem}.app-portal .space-y-3>*+*{margin-top:.75rem}.app-portal .space-y-4>*+*{margin-top:1rem}.app-portal .space-y-8>*+*{margin-top:2rem}.app-portal .mb-2{margin-bottom:.5rem}.app-portal .mb-8{margin-bottom:2rem}.app-portal .mt-12{margin-top:3rem}.app-portal .pl-6{padding-left:1.5rem}.app-portal .ps-10{padding-left:2.5rem!important}.app-portal .list-disc{list-style-type:disc}.app-portal .w-1-of-3{width:33.3333%}.app-portal .fixed{position:fixed}.app-portal .sticky{position:sticky}.app-portal .relative{position:relative}.app-portal .absolute{position:absolute}.app-portal .inset-0{inset:0}.app-portal .inset-x-0{left:0;right:0}.app-portal .top-0{top:0}.app-portal .bottom-3{bottom:.75rem}.app-portal .left-3{left:.75rem}.app-portal .z-10{z-index:10}.app-portal .z-50{z-index:50}.app-portal .-top-10{top:-2.5rem}.app-portal .-top-20{top:-5rem}.app-portal .-bottom-10{bottom:-2.5rem}.app-portal .-bottom-20{bottom:-5rem}.app-portal .-left-10{left:-2.5rem}.app-portal .-left-20{left:-5rem}.app-portal .-right-10{right:-2.5rem}.app-portal .-right-20{right:-5rem}.app-portal .d-grid{display:grid}.app-portal .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.app-portal .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.app-portal .flex-shrink-0,.app-portal .shrink-0{flex-shrink:0}.app-portal .flex-1{flex:1 1 0%}.app-portal .cursor-pointer{cursor:pointer}.app-portal .overflow-hidden{overflow:hidden}.app-portal .object-contain{object-fit:contain}.app-portal .object-cover{object-fit:cover}.app-portal .rounded-lg{border-radius:.5rem}.app-portal .rounded-xl{border-radius:.75rem}.app-portal .rounded-2xl{border-radius:1rem}.app-portal .rounded-3xl{border-radius:1.5rem}.app-portal .rounded-full{border-radius:9999px}.app-portal .border-2{border-width:2px}.app-portal .border-transparent{border-color:transparent}.app-portal .hover-border-accent-30:hover{border-color:rgba(var(--app-accent-rgb),.3)}.app-portal .transition-all{transition:all .15s cubic-bezier(.4,0,.2,1)}.app-portal .transition-colors{transition:color .15s cubic-bezier(.4,0,.2,1),background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1)}.app-portal .transition-opacity{transition:opacity .15s cubic-bezier(.4,0,.2,1)}.app-portal .transition-shadow{transition:box-shadow .15s cubic-bezier(.4,0,.2,1)}.app-portal .transition-transform{transition:transform .15s cubic-bezier(.4,0,.2,1)}.app-portal .duration-300{transition-duration:.3s}.app-portal .duration-500{transition-duration:.5s}.app-portal .hover-text-app-price:hover{color:var(--app-price)}.app-portal .hover-scale-101:hover{transform:scale(1.01)}.app-portal .group:hover .group-hover-scale-105{transform:scale(1.05)}.app-portal .hover-shadow-card-hover:hover{box-shadow:var(--app-card-hover-shadow)}.app-portal .bg-transparent{background-color:transparent}.app-portal .min-h-screen{min-height:100vh}@media(min-width:576px){.app-portal .sm-text-3xl{font-size:1.875rem;line-height:2.25rem}.app-portal .sm-text-4xl{font-size:2.25rem;line-height:2.5rem}.app-portal .sm-text-5xl{font-size:3rem;line-height:1}.app-portal .sm-text-6xl{font-size:3.75rem;line-height:1}.app-portal .sm-text-lg{font-size:1.125rem;line-height:1.75rem}.app-portal .sm-text-2xl{font-size:1.5rem;line-height:2rem}.app-portal .sm-px-6{padding-left:1.5rem;padding-right:1.5rem}.app-portal .sm-py-16{padding-top:4rem;padding-bottom:4rem}.app-portal .sm-py-24{padding-top:6rem;padding-bottom:6rem}.app-portal .sm-py-28{padding-top:7rem;padding-bottom:7rem}.app-portal .sm-pt-24{padding-top:6rem}.app-portal .sm-pt-32{padding-top:8rem}.app-portal .sm-pb-16{padding-bottom:4rem}.app-portal .sm-p-6{padding:1.5rem}.app-portal .sm-p-8{padding:2rem}.app-portal .sm-p-14{padding:3.5rem}.app-portal .sm-mb-4{margin-bottom:1rem}.app-portal .sm-mb-6{margin-bottom:1.5rem}.app-portal .sm-mb-8{margin-bottom:2rem}.app-portal .sm-mb-14{margin-bottom:3.5rem}.app-portal .sm-gap-6{gap:1.5rem}.app-portal .sm-gap-8{gap:2rem}.app-portal .sm-w-36{width:9rem}.app-portal .sm-h-44{height:11rem}.app-portal .sm-h-52{height:13rem}.app-portal .sm-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.app-portal .sm-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.app-portal .sm-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.app-portal .sm-block{display:block!important}.app-portal .sm-inline-flex{display:inline-flex!important}.app-portal .sm-flex{display:flex!important}.app-portal .sm-space-y-4>*+*{margin-top:1rem}.app-portal .sm-space-y-6>*+*{margin-top:1.5rem}}@media(min-width:992px){.app-portal .lg-block{display:block!important}.app-portal .lg-flex{display:flex!important}.app-portal .lg-inline-flex{display:inline-flex!important}.app-portal .lg-hidden{display:none!important}.app-portal .lg-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.app-portal .w-full{width:100%}.app-portal .w-3{width:.75rem}.app-portal .h-3{height:.75rem}.app-portal .gap-1{gap:.25rem}.app-portal .gap-2{gap:.5rem}.app-portal .space-y-6>*+*{margin-top:1.5rem}.app-portal .hover-underline:hover{text-decoration:underline}.app-portal .hover-text-app-fg:hover{color:var(--app-fg)}.app-portal .text-app-primary{color:var(--app-primary)}@media(min-width:768px){.app-portal .md-text-6xl{font-size:3.75rem;line-height:1}.app-portal .md-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.app-portal .md-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.app-portal .md-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1200px){.app-portal .xl-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.app-portal .aspect-book-cover{aspect-ratio:1 / 1.38}.app-portal .scrollbar-hide{scrollbar-width:none;-ms-overflow-style:none}.app-portal .scrollbar-hide::-webkit-scrollbar{display:none}.app-portal .min-h-400{min-height:400px}.app-portal .mt-half{margin-top:.125rem}.app-portal .w-max{width:max-content!important}.app-portal .hover-text-app-primary:hover{color:var(--app-primary)!important}.app-portal .pt-6{padding-top:1.5rem}.app-portal .pt-12{padding-top:3rem}.app-portal .bg-pink-500{background-color:#ec4899}.app-portal .bg-red-100-90{background:#fee2e2e6}.app-portal .text-red-600{color:#dc2626}.app-portal .bg-gradient-red-pink{background:linear-gradient(to right,#ef4444,#ec4899)}.app-portal .bg-emerald-500{background-color:#10b981}.app-portal .bg-purple-500{background-color:#8b5cf6}.app-portal .bg-blue-50{background-color:#eff6ff}.app-portal .text-blue-800{color:#1e40af}.app-portal .border-blue-200{border-color:#bfdbfe}.app-portal .text-yellow-400{color:#facc15}.app-portal .text-amber-600{color:#d97706}.app-portal .text-gray-200{color:#e5e7eb}.app-portal .btn{border-radius:var(--app-radius);font-weight:600;transition:var(--app-transition-smooth)}.app-portal .btn-sm{padding:.375rem .875rem;font-size:.875rem}.app-portal .btn-lg{padding:.625rem 1.5rem;font-size:1.125rem}.app-portal .btn-accent{background-color:var(--app-accent);color:var(--app-accent-fg);border:none;box-shadow:var(--app-card-shadow)}.app-portal .btn-accent:hover{background:rgba(var(--app-accent-rgb),.9)}.app-portal .btn-accent-outline{background-color:var(--app-card, #ffffff);color:var(--app-fg);border:1px solid var(--app-border)}.app-portal .btn-accent-outline:hover{background-color:var(--app-accent);color:var(--app-accent-fg)}.app-portal .btn-primary-nav{background-color:var(--app-primary);color:var(--app-primary-fg);border:none}.app-portal .btn-primary-nav:hover{background:rgba(var(--app-primary-rgb),.9);color:var(--app-primary-fg)}.app-portal .btn-ghost{background:transparent;border:none;color:var(--app-fg)}.app-portal .btn-ghost:hover{background:rgba(var(--app-fg-rgb),.05)}.app-portal .btn-link-reset{background:none;border:none;padding:0;border-radius:0;box-shadow:none;font-weight:inherit}.app-portal .card{background-color:var(--app-card);border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:var(--app-card-shadow);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.app-portal .card:hover{transform:translateY(-4px);box-shadow:var(--app-card-hover-shadow)}.app-portal .dropdown-menu{background-color:var(--app-card);border:1px solid var(--app-border);border-radius:.75rem;box-shadow:var(--app-card-shadow)}.app-portal .error-text{color:var(--app-destructive);font-size:.75rem;display:block;margin-top:.25rem}.app-portal .field-error{border-color:var(--app-destructive)!important}.app-portal .field-error:focus{border-color:var(--app-destructive)!important;box-shadow:0 0 0 .2rem rgba(var(--app-price-rgb),.25)}.app-portal .profile-avatar-placeholder{width:6rem;height:6rem;background:rgba(var(--app-primary-rgb),.1);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-portal .profile-avatar-icon{font-size:3rem}.app-portal .profile-card>.card-header{background:var(--app-card, #ffffff);border-bottom:none}.app-portal .profile-card:hover{transform:none;box-shadow:var(--app-card-shadow)}.app-portal .profile-settings-btn{background-color:var(--app-card, #ffffff);color:var(--app-fg);border:1px solid var(--app-border);text-align:start;width:100%}.app-portal .profile-settings-btn:hover{background-color:var(--app-accent);border-color:var(--app-accent);color:var(--app-accent-fg)}.app-portal .profile-settings-btn--danger{border:1px solid var(--app-border);color:var(--app-destructive);background-color:var(--app-card, #ffffff)}.app-portal .profile-settings-btn--danger:hover{background-color:var(--app-accent);border-color:var(--app-accent);color:var(--app-destructive)}.app-portal .profile-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.app-portal .profile-image-option-btn{width:56px;height:56px;padding:0;border:2px solid var(--app-border);border-radius:50%;overflow:hidden;cursor:pointer;background:transparent;transition:border-color .2s}.app-portal .profile-image-option-btn:hover{border-color:var(--app-primary)}.app-portal .profile-image-option-btn.selected{border-color:var(--app-accent);box-shadow:0 0 0 2px var(--app-accent)}.app-portal .profile-image-option-thumb{width:100%;height:100%;object-fit:cover;border-radius:50%}.app-portal .profile-field-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:.875rem;pointer-events:none}.app-portal .app-form-select{position:relative}.app-portal .app-form-select__trigger{display:flex;height:2.5rem;width:100%;align-items:center;justify-content:space-between;border-radius:.375rem;border:1px solid var(--app-input);background-color:var(--app-bg);padding:.5rem .75rem;font-size:.875rem;color:var(--app-fg);outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.app-portal .app-form-select__trigger:focus{border-color:var(--app-ring);box-shadow:0 0 0 2px var(--app-ring),0 0 0 4px var(--app-bg)}.app-portal .app-form-select__trigger:disabled{cursor:not-allowed;opacity:.5}.app-portal .app-form-select__trigger.field-error{border-color:var(--app-destructive)}.app-portal .app-form-select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-portal .app-form-select__placeholder{color:var(--app-muted-fg)}.app-portal .app-form-select__icon{font-size:.75rem;opacity:.5;flex-shrink:0;margin-left:.5rem}.app-portal .app-form-select__content{border-radius:.375rem;border:1px solid var(--app-border);background-color:var(--app-card);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;animation:appSelectFadeIn .15s ease-out}.app-portal .app-form-select__viewport{padding:.25rem;max-height:24rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--app-border) transparent}.app-portal .app-form-select__viewport::-webkit-scrollbar{width:6px}.app-portal .app-form-select__viewport::-webkit-scrollbar-track{background:transparent}.app-portal .app-form-select__viewport::-webkit-scrollbar-thumb{background-color:var(--app-border);border-radius:3px}.app-portal .app-form-select__viewport::-webkit-scrollbar-thumb:hover{background-color:var(--app-muted-fg)}.app-portal .app-form-select__content--dob .app-form-select__viewport{max-height:15rem}.app-portal .app-form-select__item{position:relative;display:flex;width:100%;cursor:default;user-select:none;align-items:center;border-radius:.125rem;padding:.375rem .5rem .375rem 2rem;font-size:.875rem;outline:none;color:var(--app-fg)}.app-portal .app-form-select__item--focused,.app-portal .app-form-select__item:hover{background-color:var(--app-accent);color:var(--app-accent-fg)}.app-portal .app-form-select__item-indicator{position:absolute;left:.5rem;display:flex;width:.875rem;height:.875rem;align-items:center;justify-content:center;font-size:.75rem}@keyframes appSelectFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.app-portal .app-toast-viewport{position:fixed;bottom:0;right:0;z-index:1100;display:flex;flex-direction:column;gap:.5rem;max-width:420px;width:100%;padding:1rem;pointer-events:none}@media(max-width:575.98px){.app-portal .app-toast-viewport{inset:0 0 auto;max-width:100%}}.app-portal .app-toast{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-radius:var(--app-radius, .75rem);border:1px solid var(--app-border);box-shadow:var(--app-card-shadow);pointer-events:auto;overflow:hidden}.app-portal .app-toast--default{background-color:var(--app-card, #ffffff);color:var(--app-fg);border-color:var(--app-border)}.app-portal .app-toast--destructive{background-color:var(--app-destructive, #ef4444);color:#fff;border-color:var(--app-destructive, #ef4444)}.app-portal .app-toast--success{background-color:var(--app-card, #ffffff);color:var(--app-fg);border-color:var(--app-border)}.app-portal .app-toast-content{flex:1;min-width:0}.app-portal .app-toast-title{font-size:.875rem;font-weight:600;line-height:1.25}.app-portal .app-toast-description{font-size:.875rem;line-height:1.4;opacity:.9;margin-top:.125rem}.app-portal .app-toast-close{position:absolute;top:.5rem;right:.5rem;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:none;border-radius:50%;background:transparent;cursor:pointer;opacity:0;transition:opacity .2s ease;color:inherit;font-size:.75rem;padding:0}.app-portal .app-toast:hover .app-toast-close{opacity:1}.app-portal .app-toast--destructive .app-toast-close{color:#fff}.app-portal .app-toast--has-icon{padding-left:3.5rem}.app-portal .app-toast-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center}.app-portal .kid-qr-trigger-btn{background:#fff;border:1px solid var(--app-border);border-radius:.375rem;padding:.5rem;cursor:pointer;transition:transform .15s;line-height:1}.app-portal .kid-qr-trigger-btn:hover{transform:scale(1.05)}.app-portal .kid-scan-spinner{width:3rem;height:3rem;border:4px solid var(--app-accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.app-portal .kid-select-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem;border-radius:.5rem;border:1px solid var(--app-border);background:transparent;text-align:left;transition:background .15s,border-color .15s}.app-portal .kid-select-btn:hover{background:rgba(var(--app-accent-rgb),.08);border-color:var(--app-accent)}.app-portal .kid-select-btn--dashed{border-style:dashed}.app-portal .kid-avatar-circle{width:3rem;height:3rem;border-radius:50%;background:#fff;border:2px solid #fde68a;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 2px 6px #0000001a}.app-portal .kid-done-icon{width:4rem;height:4rem;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center}.app-portal .library-sample-banner{border-color:rgba(var(--app-primary-rgb),.2);background:rgba(var(--app-primary-rgb),.05)}.app-portal .library-book-cover-wrap{aspect-ratio:1 / 1.38}.app-portal .library-series-badge{font-size:.75rem;font-weight:500;color:#2463eb;background:#f0f7ff;border:1px solid hsl(213 94% 87%);padding:.125rem .625rem;border-radius:9999px}.app-portal .library-series-card{background:#dbeafe4d;border-color:#bfdbfd}.app-portal .library-series-order-bubble{background:#dbebff;color:#2463eb}.app-portal .library-series-badge-count{background:#dbebff;color:#2463eb;border:1px solid hsl(213 94% 87%)}.app-portal .library-series-read-btn{border-color:#bfdbfd;color:#2463eb}.app-portal .library-series-read-btn:hover{background:#f0f7ff}.app-portal .library-copy-popover{top:100%;left:50%;transform:translate(-50%);min-width:14rem;margin-top:.25rem}.app-portal .text-invisible{visibility:hidden}@keyframes fade-in-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-up-sm{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes marquee-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes marquee-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.app-portal .animate-fade-in-up{animation:fade-in-up .6s cubic-bezier(.4,0,.2,1) both}.app-portal .animate-fade-in-up-sm{animation:fade-in-up-sm .5s cubic-bezier(.4,0,.2,1) both}.app-portal .animate-fade-in{animation:fade-in .3s ease-out both}.app-portal .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.app-portal .animate-marquee-left{animation:marquee-left var(--marquee-duration, 35s) linear infinite}.app-portal .animate-marquee-right{animation:marquee-right var(--marquee-duration, 40s) linear infinite}@keyframes app-toast-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes app-toast-slide-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes app-toast-slide-in-top{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes app-toast-slide-out-top{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}.app-toast-slide-enter-active{animation:app-toast-slide-in-right .3s cubic-bezier(.4,0,.2,1) both}.app-toast-slide-leave-active{animation:app-toast-slide-out-right .3s cubic-bezier(.4,0,.2,1) both}@media(max-width:575.98px){.app-toast-slide-enter-active{animation:app-toast-slide-in-top .3s cubic-bezier(.4,0,.2,1) both}.app-toast-slide-leave-active{animation:app-toast-slide-out-top .3s cubic-bezier(.4,0,.2,1) both}}.app-portal .app-toast--closed{animation:app-toast-slide-out-right .3s cubic-bezier(.4,0,.2,1) both}@media(max-width:575.98px){.app-portal .app-toast--closed{animation:app-toast-slide-out-top .3s cubic-bezier(.4,0,.2,1) both}}.app-portal .hero-badge-icon{width:10px;height:10px;vertical-align:middle;display:inline-block}@media(min-width:576px){.app-portal .hero-badge-icon{width:16px;height:16px}}.app-portal .hero-banner{position:relative;overflow:hidden;height:336px}@media(min-width:576px){.app-portal .hero-banner{height:360px;border-radius:1rem}}@media(min-width:768px){.app-portal .hero-banner{height:420px}}.app-portal .hero-slide-enter-active,.app-portal .hero-slide-leave-active{transition:opacity .4s ease-in-out,transform .4s ease-in-out}.app-portal .hero-slide-enter-from{opacity:0;transform:translate(300px)}.app-portal .hero-slide-leave-to,.app-portal .hero-slide-reverse-enter-from{opacity:0;transform:translate(-300px)}.app-portal .hero-slide-reverse-leave-to{opacity:0;transform:translate(300px)}.app-portal .hero-gradient-mobile{position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(to top,rgba(var(--app-bg-rgb),.9),rgba(var(--app-bg-rgb),.6),transparent)}.app-portal .hero-gradient-desktop{position:absolute;inset:0;background:linear-gradient(to right,rgba(var(--app-bg-rgb),.4),rgba(var(--app-bg-rgb),.2),transparent)}.app-portal .hero-dot{width:.625rem;height:.625rem;border-radius:9999px;border:none;padding:0;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);background:rgba(var(--app-fg-rgb),.3)}.app-portal .hero-dot.active{width:1.5rem;background:var(--app-accent-fg)}.app-portal .hero-nav-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:2.25rem;height:2.25rem;border-radius:9999px;background:rgba(var(--app-card-rgb),.7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:none;color:var(--app-fg);display:none;align-items:center;justify-content:center;box-shadow:0 4px 6px -1px #0000001a;cursor:pointer;transition:background .2s}.app-portal .hero-nav-btn:hover{background:rgba(var(--app-card-rgb),.9)}@media(min-width:992px){.app-portal .hero-nav-btn{display:flex}}.app-portal .hero-nav-btn.prev{left:.75rem}.app-portal .hero-nav-btn.next{right:.75rem}.app-portal .book-carousel-container{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.app-portal .book-carousel-container::-webkit-scrollbar{display:none}.app-portal .series-pill{font-size:.875rem;padding:.25rem .75rem;border-radius:9999px;font-weight:500;border:none;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.app-portal .series-pill.active{background:var(--app-accent);color:var(--app-accent-fg)}.app-portal .series-pill:not(.active){background:var(--app-secondary);color:var(--app-secondary-fg)}.app-portal .series-pill:not(.active):hover{background:rgba(var(--app-secondary-rgb),.8)}.app-portal .holiday-banner{position:relative;overflow:hidden;border-radius:1rem;height:120px}@media(min-width:576px){.app-portal .holiday-banner{height:100px}}.app-portal .holiday-banner-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,.6),transparent,rgba(0,0,0,.5))}.app-portal .promo-code-btn{padding:.25rem;border:none;background:transparent;color:#fff;border-radius:.25rem;cursor:pointer;transition:background .2s}.app-portal .promo-code-btn:hover{background:#fff3}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.app-portal .animate-shimmer{animation:shimmer 2s infinite}.app-portal .carousel-card-item{flex:0 0 269px;min-width:0}@media(min-width:576px){.app-portal .carousel-card-item{flex:0 0 336px}}.app-portal .scroll-mt-24{scroll-margin-top:6rem}.app-portal .space-y-1>*+*{margin-top:.25rem}.app-portal .space-y-1-5>*+*{margin-top:.375rem}.app-portal .space-y-5>*+*{margin-top:1.25rem}.app-portal .space-y-12>*+*{margin-top:3rem}.app-portal .-mx-4{margin-left:-1rem;margin-right:-1rem}.app-portal .leading-snug{line-height:1.375}.app-portal .tracking-wide{letter-spacing:.025em}.app-portal .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.app-portal .font-medium{font-weight:500}.app-portal .w-fit{width:fit-content}.app-portal .line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-portal .text-decoration-none{text-decoration:none}.app-portal .list-unstyled{list-style:none;padding-left:0;margin-bottom:0}.app-portal .border-top{border-top:1px solid var(--app-border)}.app-portal .w-9{width:2.25rem}.app-portal .h-9{height:2.25rem}.app-portal .w-48{width:12rem}.app-portal .h-48{height:12rem}.app-portal .h-64{height:16rem}.app-portal .max-w-md{max-width:28rem}.app-portal .max-w-xl{max-width:36rem}.app-portal .text-4xl{font-size:2.25rem;line-height:2.5rem}@media(min-width:576px){.app-portal .sm-mx-0{margin-left:0;margin-right:0}.app-portal .sm-rounded-2xl{border-radius:1rem}.app-portal .sm-pt-24{padding-top:6rem}.app-portal .sm-block{display:block!important}.app-portal .sm-hidden{display:none!important}.app-portal .sm-text-base{font-size:1rem;line-height:1.5rem}.app-portal .sm-text-2xl{font-size:1.5rem;line-height:2rem}.app-portal .sm-space-y-5>*+*{margin-top:1.25rem}.app-portal .sm-p-6{padding:1.5rem}.app-portal .sm-text-sm{font-size:.875rem;line-height:1.25rem}.app-portal .sm-px-4{padding-left:1rem;padding-right:1rem}.app-portal .sm-py-2{padding-top:.5rem;padding-bottom:.5rem}.app-portal .sm-w-4{width:1rem}.app-portal .sm-h-4{height:1rem}.app-portal .sm-h-64{height:16rem}.app-portal .sm-px-8{padding-left:2rem;padding-right:2rem}.app-portal .sm-text-xl{font-size:1.25rem;line-height:1.75rem}.app-portal .sm-flex{display:flex!important}}@media(min-width:768px){.app-portal .md-p-12{padding:3rem}.app-portal .md-text-4xl{font-size:2.25rem;line-height:2.5rem}.app-portal .md-text-lg{font-size:1.125rem;line-height:1.75rem}}@media(min-width:992px){.app-portal .lg-flex{display:flex!important}.app-portal .lg-hidden{display:none!important}.app-portal .lg-inline-flex{display:inline-flex!important}.app-portal .lg-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.app-portal .promotion-card{height:120px;border-radius:1rem;display:flex;flex-direction:column}.app-portal .promotion-card-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,.6),transparent,rgba(0,0,0,.5));pointer-events:none}.app-portal .promotion-tag{background:#fff3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#fff;font-size:11.5px;font-weight:500;padding:3px .75rem;border-radius:9999px}.app-portal .promotion-discount-badge{font-size:1.5rem;font-weight:800;text-shadow:0 2px 4px rgba(0,0,0,.2);white-space:nowrap}.app-portal .promotion-code-text{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:576px){.app-portal .promotion-card{height:100px}.app-portal .promotion-tag{font-size:.75rem;padding:.25rem .75rem}}.app-portal .app-footer-grid{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width:768px){.app-portal .app-footer-grid{grid-template-columns:1.5fr 1fr 1.5fr}}.app-portal .series-pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:9999px;font-size:.6875rem;font-weight:700;background:var(--app-bg);color:var(--app-fg);margin-left:.25rem}.app-portal .series-pill-count.active{background:#0003;color:var(--app-accent-fg)}.app-portal .series-tabs-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.app-portal .series-tabs-scroll::-webkit-scrollbar{display:none}.app-portal .series-tabs-inner{display:flex;align-items:center;gap:.5rem;width:max-content;flex-wrap:nowrap}@media(min-width:992px){.app-portal .series-tabs-scroll{overflow:visible;margin-left:0;margin-right:0;padding-left:0;padding-right:0}.app-portal .series-tabs-inner{width:auto;flex-wrap:wrap}}.app-portal .carousel-card-item-flex{flex:0 0 calc(48% - .6rem);min-width:0;display:flex;flex-direction:column}.app-portal .carousel-card-item-flex>*{flex:1;display:flex;flex-direction:column}.app-portal .carousel-card-item-flex>*>*{flex:1;display:flex;flex-direction:column}.app-portal .carousel-card-item-flex>*>*>.preview-book-card-enhanced{flex:1}@media(min-width:576px){.app-portal .carousel-card-item-flex{flex:0 0 calc(28.571% - .714rem)}}@media(min-width:992px){.app-portal .carousel-card-item-flex{flex:0 0 calc(20% - .8rem)}}.app-portal .bg-warm-gradient{background:var(--app-warm-gradient)}.app-portal .glossy-badge{background:linear-gradient(135deg,#ffd24d,#ff9f1a,#ffd966);border:1px solid hsl(45 80% 50%);box-shadow:0 2px 8px #ffbf004d,inset 0 1px #ffe699cc,inset 0 -1px #b8741480;position:relative;overflow:hidden}.app-portal .glossy-badge:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsl(0 0% 100% / .4),transparent);animation:parents-shine 2s infinite}@keyframes parents-shine{0%{transform:translate(-100%)}to{transform:translate(200%)}}.app-portal .parents-quick-actions{display:flex;justify-content:flex-end;gap:.5rem}.app-portal .parents-quick-actions>*{flex:1}.app-portal .parents-quick-actions .btn{width:100%;white-space:normal;min-height:2.25rem;padding-top:.375rem;padding-bottom:.375rem;justify-content:flex-start;text-align:left;line-height:1.25}@media(min-width:576px){.app-portal .parents-quick-actions>*{flex:none}.app-portal .parents-quick-actions .btn{width:auto;white-space:nowrap}}.app-portal .parents-continue-banner{position:relative;overflow:hidden;border-radius:1rem;padding:.75rem;box-shadow:var(--app-card-shadow);display:grid;grid-template-columns:77px 1fr;gap:.75rem;align-items:center}@media(min-width:576px){.app-portal .parents-continue-banner{grid-template-columns:115px 1fr;gap:1rem;padding:1rem;border-radius:1rem}}@media(min-width:768px){.app-portal .parents-continue-banner{grid-template-columns:168px 1fr;gap:1.5rem}}.app-portal .parents-banner-cover-wrap{position:relative;display:flex;justify-content:center}.app-portal .parents-banner-cover-box{position:relative;width:77px;height:106px;border-radius:.75rem;overflow:hidden;box-shadow:0 20px 60px #0000004d}@media(min-width:576px){.app-portal .parents-banner-cover-box{width:115px;height:154px;border-radius:1rem}}@media(min-width:768px){.app-portal .parents-banner-cover-box{width:168px;height:216px}}.app-portal .parents-banner-cover{width:100%;height:100%;object-fit:cover}.app-portal .parents-banner-decor-1{position:absolute;top:-1rem;right:-1rem;width:4rem;height:4rem;border-radius:50%;background:rgba(var(--app-accent-rgb),.3);filter:blur(16px);pointer-events:none}.app-portal .parents-banner-decor-2{position:absolute;bottom:-1rem;left:-1rem;width:3rem;height:3rem;border-radius:50%;background:rgba(var(--app-primary-rgb),.3);filter:blur(16px);pointer-events:none}.app-portal .parents-banner-content{min-width:0;display:flex;flex-direction:column;gap:.375rem}.app-portal .parents-featured-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:700;color:#5c3a0a;padding:.25rem .75rem;border-radius:9999px}.app-portal .parents-banner-title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--app-fg);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(min-width:576px){.app-portal .parents-banner-title{font-size:1.5rem}}@media(min-width:768px){.app-portal .parents-banner-title{font-size:1.875rem}}.app-portal .parents-banner-author{font-size:.875rem;color:rgba(var(--app-fg-rgb),.7)}.app-portal .btn-continue-reading{background-color:var(--app-accent);color:var(--app-accent-fg);font-weight:600;border:none;border-radius:.5rem;padding:.375rem .75rem;box-shadow:0 4px 14px -2px #00000026;transition:background-color .2s;display:inline-flex;align-items:center;gap:.375rem;font-size:.75rem}@media(min-width:576px){.app-portal .btn-continue-reading{padding:.5rem 1rem;font-size:.875rem;gap:.5rem}}.app-portal .btn-continue-reading:hover{background-color:rgba(var(--app-accent-rgb),.9);color:var(--app-accent-fg)}.app-portal .child-selector-scroll{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.app-portal .child-selector-scroll::-webkit-scrollbar{display:none}.app-portal .child-selector-btn{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:.75rem;border:2px solid var(--app-border);background:var(--app-card);cursor:pointer;white-space:nowrap;flex-shrink:0;scroll-snap-align:start;transition:var(--app-transition-smooth)}.app-portal .child-selector-btn:hover{box-shadow:var(--app-card-shadow)}.app-portal .child-selector-btn.active{background:rgba(var(--app-primary-rgb),.1);border-color:rgba(var(--app-primary-rgb),.3)}.app-portal .child-avatar{width:2.5rem;height:2.5rem;border-radius:50%;overflow:hidden;background:#f3f4f6;flex-shrink:0}.app-portal .child-avatar img{width:100%;height:100%;object-fit:cover}.app-portal .child-stats-avatar{width:4rem;height:4rem;border-radius:50%;overflow:hidden;background:#f3f4f6;border:4px solid rgba(var(--app-primary-rgb),.2);flex-shrink:0}.app-portal .child-stats-avatar img{width:100%;height:100%;object-fit:cover}.app-portal .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media(min-width:576px){.app-portal .stats-grid{gap:1.5rem}}@media(min-width:992px){.app-portal .stats-grid{grid-template-columns:repeat(4,1fr)}}.app-portal .stat-card{border-radius:.75rem;border:1px solid;padding:.75rem;transition:box-shadow .2s,transform .2s}@media(min-width:576px){.app-portal .stat-card{padding:1rem}}.app-portal .stat-card:hover{box-shadow:0 4px 6px -1px #0000001a;transform:translateY(-2px)}.app-portal .stat-card--blue{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#bfdbfe}.app-portal .stat-card--blue .stat-icon{background:#3b82f6}.app-portal .stat-card--blue .stat-value{color:#1e3a8a}.app-portal .stat-card--blue .stat-label{color:#1d4ed8}.app-portal .stat-card--green{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#bbf7d0}.app-portal .stat-card--green .stat-icon{background:#22c55e}.app-portal .stat-card--green .stat-value{color:#14532d}.app-portal .stat-card--green .stat-label{color:#15803d}.app-portal .stat-card--orange{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-color:#fed7aa}.app-portal .stat-card--orange .stat-icon{background:#f97316}.app-portal .stat-card--orange .stat-value{color:#7c2d12}.app-portal .stat-card--orange .stat-label{color:#c2410c}.app-portal .stat-card--purple{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-color:#e9d5ff}.app-portal .stat-card--purple .stat-icon{background:#a855f7}.app-portal .stat-card--purple .stat-value{color:#581c87}.app-portal .stat-card--purple .stat-label{color:#7e22ce}.app-portal .stat-icon{width:2rem;height:2rem;border-radius:.5rem;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;font-size:.75rem}@media(min-width:576px){.app-portal .stat-icon{width:2.5rem;height:2.5rem;font-size:.875rem}}.app-portal .stat-value{font-size:1.25rem;font-weight:700;line-height:1.2}@media(min-width:576px){.app-portal .stat-value{font-size:1.5rem}}.app-portal .stat-label{font-size:.75rem}@media(min-width:576px){.app-portal .stat-label{font-size:.875rem}}.app-portal .stat-value--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1rem}.app-portal .reading-history-scroll{display:flex;gap:1.5rem;overflow-x:auto;padding-bottom:.75rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.app-portal .reading-history-scroll::-webkit-scrollbar{display:none}.app-portal .reading-history-card{flex:0 0 16rem;min-width:0;scroll-snap-align:start;border-radius:.75rem;border:1px solid var(--app-border);background:rgba(var(--app-card-rgb, 255, 255, 255),.8);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:.75rem;display:flex;gap:.75rem;transition:box-shadow .2s,transform .2s}.app-portal .reading-history-card:hover{box-shadow:var(--app-card-hover-shadow, 0 4px 12px rgba(0,0,0,.1));transform:translateY(-2px)}.app-portal .reading-history-cover{width:4rem;flex-shrink:0;border-radius:.5rem;overflow:hidden;aspect-ratio:1 / 1.38}.app-portal .reading-history-cover img{width:100%;height:100%;object-fit:cover}.app-portal .reading-history-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.125rem}.app-portal .reading-history-title{font-size:.875rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-portal .reading-history-author{font-size:.75rem;color:var(--app-muted-fg)}.app-portal .reading-history-genre{display:inline-block;font-size:10px;background:rgba(var(--app-primary-rgb),.1);color:var(--app-primary);padding:.125rem .5rem;border-radius:9999px;align-self:flex-start}.app-portal .reading-history-last-read{font-size:10px;color:var(--app-muted-fg)}.app-portal .reading-history-nav{display:none;position:absolute;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border-radius:50%;border:1px solid var(--app-border);background:var(--app-card);box-shadow:0 4px 6px -1px #0000001a;align-items:center;justify-content:center;cursor:pointer;z-index:2;color:var(--app-fg);font-size:.75rem}@media(min-width:992px){.app-portal .reading-history-nav{display:flex}}.app-portal .reading-history-nav--prev{left:-.75rem}.app-portal .reading-history-nav--next{right:-.75rem}.app-portal .reading-history-nav:hover{background:rgba(var(--app-primary-rgb),.1)}.app-portal .parents-section-heading{font-size:1.125rem;font-weight:700;display:flex;align-items:center;gap:.5rem}@media(min-width:576px){.app-portal .parents-section-heading{font-size:1.25rem}}.app-portal .ebook-mgmt-row{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border-radius:.5rem;background:var(--app-muted)}.app-portal .ebook-mgmt-cover{width:3rem;height:4rem;border-radius:.25rem;overflow:hidden;flex-shrink:0}.app-portal .ebook-mgmt-cover img{width:100%;height:100%;object-fit:cover}.app-portal .ebook-assign-count{font-size:.75rem;font-weight:500;background:var(--app-secondary);color:var(--app-secondary-fg);padding:.25rem .625rem;border-radius:9999px;white-space:nowrap}.app-portal .ebook-available-count{font-size:.75rem;font-weight:500;color:#16a34a;border:1px solid #86efac;padding:.25rem .625rem;border-radius:9999px;white-space:nowrap}.app-portal .ebook-assign-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500;border:1px solid var(--app-border);background:var(--app-bg);color:var(--app-fg);cursor:pointer;transition:all .2s}.app-portal .ebook-assign-pill:hover:not(:disabled){border-color:rgba(var(--app-primary-rgb),.5)}.app-portal .ebook-assign-pill.active{background:var(--app-primary);border-color:var(--app-primary);color:var(--app-primary-fg);box-shadow:0 1px 2px #0000000d}.app-portal .ebook-assign-pill.disabled,.app-portal .ebook-assign-pill:disabled{opacity:.5;cursor:not-allowed}.app-portal .qr-scanner-placeholder{width:12rem;height:12rem;border:2px dashed rgba(var(--app-primary-rgb),.3);border-radius:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--app-muted-fg);margin:0 auto}.app-portal .qr-scanner-placeholder .fa-qrcode{font-size:3rem;color:rgba(var(--app-primary-rgb),.4)}.app-portal .bd-top-grid{display:grid;grid-template-columns:auto 1fr;gap:.5rem}@media(min-width:768px){.app-portal .bd-top-grid{grid-template-columns:auto auto 1fr;gap:1rem}}@media(min-width:992px){.app-portal .bd-top-grid{gap:2rem}}.app-portal .bd-back-btn{align-self:start;width:2.25rem;height:2.25rem;padding:0;border-radius:.5rem;flex-shrink:0;display:flex;align-items:center;justify-content:center}.app-portal .bd-cover-col{justify-self:start}.app-portal .bd-cover-card{max-width:234px;overflow:hidden;border-radius:.5rem;border:1px solid var(--app-border);box-shadow:0 1px 2px #0000000d;color:var(--app-fg)}@media(min-width:576px){.app-portal .bd-cover-card{max-width:20rem}}@media(min-width:768px){.app-portal .bd-cover-card{max-width:280px}}@media(min-width:992px){.app-portal .bd-cover-card{max-width:28rem}}.app-portal .bd-info-col{grid-column:span 2}@media(min-width:768px){.app-portal .bd-info-col{grid-column:span 1}}.app-portal .bd-below-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:992px){.app-portal .bd-below-grid{grid-template-columns:1fr 1fr;gap:2rem}}.app-portal .bd-title{font-size:1.25rem;line-height:1.3}@media(min-width:576px){.app-portal .bd-title{font-size:1.125rem}}@media(min-width:768px){.app-portal .bd-title{font-size:1.125rem}}@media(min-width:992px){.app-portal .bd-title{font-size:1.25rem}}@media(min-width:1200px){.app-portal .bd-title{font-size:1.5rem}}.app-portal .bd-section-title{font-size:1.125rem;font-weight:600;color:var(--app-fg)}@media(min-width:576px){.app-portal .bd-section-title{font-size:1.25rem}}.app-portal .bd-description{line-height:1.625}.app-portal .bd-meta-badge{font-size:.875rem;padding:.25rem .75rem}.app-portal .bd-meta-icon{width:.75rem;height:.75rem}.app-portal .bd-award-badge{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(to right,#ef4444,#db2777);color:#fff;padding:.5rem 1rem;border-radius:9999px;font-weight:700;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;border:2px solid white}.app-portal .bd-features-grid{display:grid;grid-template-columns:1fr;gap:.5rem}@media(min-width:576px){.app-portal .bd-features-grid{grid-template-columns:1fr 1fr}}.app-portal .bd-feature-icon{width:1rem;height:1rem;flex-shrink:0}.app-portal .bd-price-card{background:rgba(var(--app-accent-rgb),.05);border:1px solid var(--app-border);border-radius:.5rem;color:var(--app-fg);box-shadow:0 1px 2px #0000000d;padding:1rem}@media(min-width:576px){.app-portal .bd-price-card{padding:1.5rem}}.app-portal .bd-price{font-size:1.875rem;font-weight:700;color:var(--app-price, hsl(39, 100%, 35%))}.app-portal .bd-original-price{font-size:1.25rem;text-decoration:line-through;color:var(--app-muted-fg)}.app-portal .bd-fav-btn{padding:.5rem;border-radius:50%}.app-portal .bd-fav-active{background-color:#fef2f2;color:#dc2626}.app-portal .bd-fav-active:hover{background-color:#fee2e2}.app-portal .bd-add-cart-btn{font-size:1.125rem;padding-top:1.5rem;padding-bottom:1.5rem;background-color:var(--app-accent);color:var(--app-accent-fg, #000);border-color:var(--app-accent)}.app-portal .bd-add-cart-btn:hover{background-color:rgba(var(--app-accent-rgb),.9)}.app-portal .bd-series-tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;background:var(--app-muted);border-radius:.5rem}.app-portal .bd-series-tab-btn{font-size:.75rem;padding:.375rem .75rem;border-radius:.375rem;border:none;background:transparent;color:var(--app-muted-fg);cursor:pointer;transition:var(--app-transition-smooth)}@media(min-width:576px){.app-portal .bd-series-tab-btn{font-size:.875rem}}.app-portal .bd-series-tab-btn.active{background:var(--app-card);color:var(--app-fg);box-shadow:0 1px 3px #0000001a}.app-portal .bd-series-content{padding:1.25rem;background:#f4f7fa;border:1px solid hsl(210,30%,90%);border-radius:.75rem}.app-portal .bd-series-title{font-size:.875rem;font-weight:600;color:var(--app-fg);margin-bottom:.75rem}.app-portal .bd-series-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--app-border);text-decoration:none;color:var(--app-fg);transition:var(--app-transition-smooth)}.app-portal .bd-series-item.active{background:#ddecfd;color:#084691;border-color:#6eacf7}.app-portal .bd-series-item:hover:not(.active){border-color:#6eacf7;box-shadow:0 1px 2px #0000000d}.app-portal .bd-series-order{width:1.25rem;height:1.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;background:#ddecfd;color:#0b5dc1}.app-portal .bd-series-item.active .bd-series-order{background:#2682f2;color:#fff}.app-portal .bd-series-thumb{width:2rem;height:2.5rem;border-radius:.25rem;object-fit:cover;box-shadow:0 1px 2px #0000000d;flex-shrink:0}@media(min-width:576px){.app-portal .bd-series-thumb{width:2.5rem;height:3rem}}.app-portal .bd-series-book-title{font-size:1rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(min-width:576px){.app-portal .bd-series-book-title{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}.app-portal .bd-discount-badge{background-color:#dcfce7;color:#166534;border:1px solid #bbf7d0;font-size:.75rem;font-weight:700}.app-portal .bd-buy-series-btn{background-color:#3b82f6;color:#fff;border-color:#3b82f6;border-radius:.375rem}.app-portal .bd-buy-series-btn:hover{background-color:#2563eb;border-color:#2563eb;color:#fff}.app-portal .bd-package-item{padding:.75rem 1rem;border:1px solid var(--app-border);border-radius:.5rem}.app-portal .preview-book-card-link{display:block;text-decoration:none;color:inherit}.app-portal .preview-book-card-link:hover{text-decoration:none}.app-portal .auth-legal-footer{padding-top:1rem}.app-portal .auth-legal-footer a{font-size:.75rem;text-underline-offset:2px}.app-portal .modal-backdrop{z-index:1040}.app-portal .modal{z-index:1050}.app-portal .modal-content{background-color:#fff}.app-portal .modal-title{font-size:1rem}@media(min-width:576px){.app-portal .modal-title{font-size:1.125rem}}.app-portal .modal-body .btn-link-reset{text-decoration:none!important}.app-portal .modal-body .btn-link-reset:hover{text-decoration:underline!important}.app-portal .two-fa-countdown--urgent{color:var(--app-destructive)}.app-portal .otp-group{display:flex;align-items:center}.app-portal .otp-slot{position:relative;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.5rem;text-align:center;font-size:1rem;font-weight:600;border-top:1px solid var(--app-input, hsl(45, 30%, 90%));border-bottom:1px solid var(--app-input, hsl(45, 30%, 90%));border-right:1px solid var(--app-input, hsl(45, 30%, 90%));border-left:none;border-radius:0;outline:none;transition:all .15s ease;background:transparent;color:var(--app-fg, hsl(25, 15%, 15%))}.app-portal .otp-slot:first-child{border-left:1px solid var(--app-input, hsl(45, 30%, 90%));border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.app-portal .otp-slot:last-child{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.app-portal .otp-slot:focus{z-index:10;box-shadow:0 0 0 2px var(--app-ring, hsl(45, 96%, 55%));border-color:var(--app-ring, hsl(45, 96%, 55%))}@media(min-width:576px){.app-portal .otp-slot{width:2.5rem;height:3rem;font-size:1.125rem}}.app-portal .token-balance-card{background:linear-gradient(135deg,rgba(var(--app-primary-rgb),.1),rgba(var(--app-accent-rgb),.1));border:1px solid rgba(var(--app-primary-rgb),.3);border-radius:var(--app-radius);padding:1.5rem;box-shadow:0 1px 2px #0000000d}.app-portal .token-usage-card{background-color:var(--app-card);border:1px solid var(--app-border);border-radius:var(--app-radius);padding:1.5rem;box-shadow:0 1px 2px #0000000d}.app-portal .token-packs-grid-hk{display:none}@media(min-width:992px){.app-portal .token-packs-grid-hk{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}}.app-portal .token-pack-card{background-color:var(--app-card);border:1px solid var(--app-border);border-radius:var(--app-radius);box-shadow:0 1px 2px #0000000d;transition:all .3s cubic-bezier(.4,0,.2,1)}.app-portal .token-pack-card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.app-portal .token-pack-card--popular{box-shadow:0 0 0 2px var(--app-primary),0 1px 2px #0000000d}.app-portal .token-pack-card--popular:hover{box-shadow:0 0 0 2px var(--app-primary),0 10px 15px -3px #0000001a}.app-portal .token-pack-card--bestvalue{box-shadow:0 0 0 2px var(--app-accent),0 1px 2px #0000000d}.app-portal .token-pack-card--bestvalue:hover{box-shadow:0 0 0 2px var(--app-accent),0 10px 15px -3px #0000001a}.app-portal .token-pack-icon-wrap{width:3rem;height:3rem;background:rgba(var(--app-primary-rgb),.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .5rem}.app-portal .token-legal-bar{background:#fff9e0;border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.6}.app-portal .token-warning-icon-wrap{width:3rem;height:3rem;background:#fff5cc;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .5rem;color:#c90}.app-portal .token-smartphone-icon-wrap{width:3rem;height:3rem;background:rgba(var(--app-primary-rgb),.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .5rem}
