:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;padding:4px;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:320px;width:var(--toastify-toast-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{left:50%;top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;padding:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}}.Toastify__toast{--y:0;border-radius:6px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;box-sizing:border-box;cursor:default;direction:ltr;display:flex;font-family:sans-serif;font-family:var(--toastify-font-family);justify-content:space-between;margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);overflow:hidden;padding:8px;position:relative;touch-action:none;z-index:0}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{align-items:center;display:flex;flex:1 1 auto;margin:auto 0;padding:6px}.Toastify__toast-body>div:last-child{flex:1 1;word-break:break-word}.Toastify__toast-icon{-webkit-margin-end:10px;display:flex;flex-shrink:0;margin-inline-end:10px;width:20px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}@media only screen and (max-width:480px){.Toastify__toast{border-radius:0;margin-bottom:0}}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74c3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74c3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{align-self:flex-start;background:#0000;border:none;color:#fff;cursor:pointer;outline:none;padding:0;transition:.3s ease;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:9999;z-index:var(--toastify-z-index)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;border-bottom-right-radius:6px;border-bottom-right-radius:var(--toastify-toast-bd-radius);left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:.2;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root[data-theme=light]{--background-primary:#fff;--background-secondary:#f8f9fa;--text-primary:#333;--text-secondary:#666;--border-color:#e0e0e0;--accent-color:#6366f1;--accent-color-hover:#4f46e5;--accent-subtle-background:#eef2ff;--accent-subtle-background-hover:#e0e7ff;--nav-background:#fff;--nav-text:#333;--card-background:#fff;--hover-background:#f0f0f0;--header-shadow:0 2px 4px #0000001a;--header-background:#fff;--shadow-sm:0 2px 4px #0000000d;--shadow-md:0 4px 6px #0000001a}:root[data-theme=dark]{--background-primary:#121212;--background-secondary:#1a1a1a;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--border-color:#2d2d2d;--accent-color:#818cf8;--accent-color-hover:#6366f1;--accent-subtle-background:#818cf826;--accent-subtle-background-hover:#818cf840;--nav-background:#1a1a1a;--nav-text:#e2e8f0;--card-background:#1e1e1e;--hover-background:#2d2d2d;--header-shadow:0 2px 4px #0003;--header-background:#1a1a1a;--shadow-sm:0 2px 4px #0003;--shadow-md:0 4px 6px #0000004d}body{background-color:var(--background-primary);color:var(--text-primary)}.app-header,body{margin:0;padding:0}.app-header{background-color:var(--header-background)!important;box-shadow:var(--header-shadow);transition:all .3s ease;z-index:1001}.book-header-title h1{font-size:1.6rem;font-weight:300}.book-header-title img{height:40px;position:relative;top:10px;width:40px}.book-header-title{color:var(--nav-text)!important;display:flex;left:50%;position:absolute;transform:translateX(-50%);width:200px}.book-header-title-text{color:var(--nav-text)!important;transition:color .3s ease}.header-back-button,.header-back-button svg{color:var(--nav-text)!important;transition:all .3s ease}.header-back-button svg{stroke:var(--nav-text)!important;stroke-width:2px}.book-categories{justify-content:center;margin:10px 0}.category-tag{background-color:var(--accent-color);border-radius:16px;color:#fff;display:inline-block;padding:4px 12px}.book-categories-horizontal{margin:5px 0;max-width:200px}.file-upload-container{margin-bottom:10px}.selected-file{background-color:var(--background-secondary);border-radius:4px;justify-content:space-between;margin-top:8px}.clear-file{color:#dc3545;font-size:16px;padding:0 8px}.clear-file:hover{color:#c82333}.loading-container{align-items:center;background:var(--background-primary);display:flex;justify-content:center;min-height:100vh}.loading-spinner{border-top:5px solid var(--background-secondary);border:5px solid var(--background-secondary)}:root{--background-primary:#fff;--background-secondary:#f8fafc;--text-primary:#1e293b;--text-secondary:#64748b;--accent-color:#6366f1;--accent-color-hover:#4f46e5;--border-color:#e2e8f0;--card-background:#fff;--hover-background:#f1f5f9;--nav-background:#fff;--nav-text:#1e293b;--hero-gradient:linear-gradient(135deg,#f8fafc,#e2e8f0);--feature-card-bg:#fffc;--feature-card-border:#0000001a;--shadow-sm:0 2px 4px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--danger-color:#e53e3e;--success-color:#229ac5}[data-theme=dark]{--background-primary:#1a1a1a;--background-secondary:#2c2c2c;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--accent-color:#818cf8;--accent-color-hover:#6366f1;--border-color:#3f3f46;--card-background:#2c2c2c;--hover-background:#3f3f46;--success-color:#229ac5;--nav-background:#1a1a1a;--nav-text:#e2e8f0;--danger-color:#e53e3e;--hero-gradient:linear-gradient(135deg,#1e293b,#334155);--feature-card-bg:#ffffff0d;--feature-card-border:#ffffff1a;--shadow-sm:0 2px 4px #0003;--shadow-md:0 4px 6px #0000004d;--shadow-lg:0 10px 15px #0006}body,html{background:#fff;background:var(--background-primary);color:#1e293b;color:var(--text-primary);margin:0;overflow-x:hidden;padding:0;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@media only screen and (min-width:700px) and (max-width:12000px){body{margin:auto;width:100%}}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.main-container{overflow-x:hidden;width:100%}.main-container,.main-container-400{align-items:center;display:flex;flex-direction:column;margin:auto}.main-container-400{max-width:400px;padding:100px 20px}.main-container>h2{color:#1e293b;color:var(--text-primary);font-size:32px;font-weight:600;margin:0 0 40px}.submit-btn{background:#6366f1;background:var(--accent-color);border-radius:12px;box-shadow:0 2px 4px #0000000d;color:#fff;font-size:13px;font-size:15px;height:36px;margin:10px 0;width:90%}.submit-btn:hover{background:#4f46e5;background:var(--accent-color-hover);box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.submit-btn:active{box-shadow:0 2px 4px #50c3e833;transform:translateY(0)}.image-preview{background:#fff;background:var(--card-background);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);height:auto;max-height:450px;max-width:300px;object-fit:contain;transition:transform .3s ease}.image-preview:hover{box-shadow:0 10px 15px #0000001a;box-shadow:var(--shadow-lg);transform:scale(1.02)}.lrg-font{font-size:18px;font-weight:700}input:focus,textarea:focus{outline:none}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-color:#0000 #0000;scrollbar-width:none}.hero-section{background:linear-gradient(135deg,#f8fafc,#e2e8f0);background:var(--hero-gradient);box-shadow:0 10px 15px #0000001a;box-shadow:var(--shadow-lg);color:#1e293b;color:var(--text-primary);padding:50px 20px;text-align:center}.hero-section:before{background:radial-gradient(circle at 20% 150%,#ffffff14 0,#0000 60%);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.hero-description{color:#ffffffe6;font-size:1.25rem;line-height:1.6;margin:0 auto 50px;max-width:800px;text-align:center}.feature-cards{display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin-top:40px;padding:0 20px}.feature-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;background:var(--feature-card-bg);border:1px solid #0000001a;border:1px solid var(--feature-card-border);border-radius:20px;flex:1 1;padding:35px;transition:all .3s ease}.feature-card svg{color:#6366f1;height:64px;margin-bottom:20px;opacity:.9;width:64px}.feature-card h3{color:#1e293b;font-size:1.4rem;font-weight:500;margin-bottom:15px}.feature-card p{color:#64748b;line-height:1.6}.getting-started-section{background:#f8fafc;background:var(--background-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);margin:0;overflow:hidden;padding:30px 20px;position:relative;width:100%}.getting-started-section:before{background:radial-gradient(circle at 30% 50%,#6366f108 0,#0000 50%),radial-gradient(circle at 70% 80%,#6366f105 0,#0000 50%);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.getting-started-content{align-items:center;display:flex;gap:30px;justify-content:space-between;margin:0 auto;max-width:800px;position:relative;z-index:2}.getting-started-text{flex:1 1}.getting-started-text h3{color:#1e293b;color:var(--text-primary);font-size:1.8rem;font-weight:600;margin:0 0 10px}.getting-started-text p{color:#64748b;color:var(--text-secondary);font-size:1.1rem;line-height:1.5;margin:0}.getting-started-btn{align-items:center;background:#6366f1;background:var(--accent-color);border:1px solid #6366f1;border:1px solid var(--accent-color);border-radius:12px;box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;padding:15px 25px;transition:all .3s ease;white-space:nowrap}.getting-started-btn:hover{background:#4f46e5;background:var(--accent-color-hover);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.getting-started-btn:active{transform:translateY(0)}.btn-icon{font-size:1.2rem}@media (max-width:768px){.getting-started-content{flex-direction:column;gap:20px;text-align:center}.getting-started-text h3{font-size:1.5rem}.getting-started-text p{font-size:1rem}.getting-started-btn{font-size:.9rem;padding:12px 20px}}.books-section.continue-reading{background:#f8fafc;background:var(--background-secondary);box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm);padding-top:20px;width:100%}.continue-reading .book-img-container{background:#fff;background:var(--card-background)}.continue-reading .book-info h3,.continue-reading .submit-btn{color:#1e293b;color:var(--text-primary)}.continue-reading .submit-btn{background:#f8fafc;background:var(--background-secondary)}.continue-reading .scroll-button{background:#6366f1;background:var(--accent-color);color:#fff}.continue-reading .scroll-button:hover{background:#4f46e5;background:var(--accent-color-hover)}.books-section.featured-books{width:100%}.featured-books .book-img-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;background:var(--feature-card-bg);border:1px solid #0000001a;border:1px solid var(--feature-card-border)}.featured-books .book-info h3{color:#1e293b;color:var(--text-primary)}.featured-books .book-info h4{color:#64748b;color:var(--text-secondary)}.featured-books .category-tag-small{background:#fffc;background:var(--feature-card-bg)}.featured-books .category-tag-small,.featured-books .lrg-font,.featured-books .scroll-button{color:#1e293b;color:var(--text-primary)}.featured-books .scroll-button{background:#fff;background:var(--card-background)}.featured-books .scroll-button:hover{background:#6366f1;background:var(--accent-color);color:#fff}.books-section.popular-now{padding-top:20px;position:relative;width:100%}.popular-now .book-img-container{background:#fff;background:var(--card-background);border-radius:20px;box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md)}.popular-now .book-img{transform:rotate(-3deg);transition:transform .3s ease}.popular-now .book-img-container:hover .book-img{transform:rotate(0deg)}.popular-now .book-info h3,.popular-now .category-tag-small{color:#e53e3e}.popular-now .scroll-button{background:#e53e3e;color:#fff}.popular-now .scroll-button:hover{background:#c53030}.categories-section{background:#fff;background:var(--background-primary);width:100%}.categories-section h2{color:#1e293b;color:var(--text-primary);font-size:2rem;font-weight:700;margin-bottom:30px;margin-top:0;text-align:center}.categories-nav{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:40px;padding:0 20px}.category-btn{background:#f8fafc;background:var(--background-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:12px;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:15px;font-weight:500;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.category-btn:hover{background:#f1f5f9;background:var(--hover-background);transform:translateY(-2px)}.category-btn.active,.category-btn:hover{border-color:#6366f1;border-color:var(--accent-color)}.category-btn.active{background:#6366f1;background:var(--accent-color);color:#fff}.books-section[class*=category-]{background:#fff;background:var(--card-background);overflow:hidden;position:relative}.books-section[class*=category-]:before{background:linear-gradient(120deg,#0000 10%,#6366f1 50%,#0000 90%);background:linear-gradient(120deg,#0000 10%,var(--accent-color) 50%,#0000 90%);content:"";height:100%;left:0;opacity:.05;position:absolute;top:0;width:100%;z-index:0}.books-section[class*=category-] .book-img-container{background:#fff;background:var(--card-background);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm);overflow:hidden;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);z-index:1}.books-section[class*=category-] .book-img-container:hover{box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-10px)}.books-section[class*=category-] .book-info h3{color:#1e293b;color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:12px 0 8px}.books-section[class*=category-] .book-info h4{color:#64748b;color:var(--text-secondary);font-size:.9rem;margin-bottom:10px}.books-section[class*=category-] .lrg-font{color:#1e293b;color:var(--text-primary);display:inline-block;font-size:2rem;font-weight:700;margin-bottom:30px;padding-bottom:15px;position:relative}.books-section[class*=category-] .lrg-font:after{background:#6366f1;background:var(--accent-color);border-radius:2px;bottom:0;content:"";height:3px;left:0;position:absolute;width:100%}.books-section[class*=category-] .scroll-button{background:#fff;background:var(--card-background);border:1px solid #e2e8f0;border:1px solid var(--border-color);box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm);color:#1e293b;color:var(--text-primary);transition:all .3s cubic-bezier(.4,0,.2,1)}.books-section[class*=category-] .scroll-button:hover{background:#6366f1;background:var(--accent-color);border-color:#6366f1;border-color:var(--accent-color);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);color:#fff;transform:translateY(-50%) scale(1.1)}.category-tag-small{background:#f8fafc;background:var(--background-secondary);border:1px solid #e2e8f0;color:#6366f1;font-size:.8rem}@media (max-width:768px){.books-section[class*=category-] .lrg-font{font-size:1.5rem;margin-bottom:20px}.books-section[class*=category-] .book-img-container{padding:15px}.books-section[class*=category-] .book-info h3{font-size:1rem}.books-section[class*=category-] .book-info h4{font-size:.8rem}}.categories-hero{background:linear-gradient(135deg,#1e293b,#334155);color:#fff;margin-bottom:40px;overflow:hidden;padding:80px 20px;position:relative;text-align:center;width:100%}.categories-hero:before{background:radial-gradient(circle at 80% 20%,#6366f126 0,#0000 60%);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.categories-hero h2{color:#fff;font-size:2.8rem;font-weight:600;margin-bottom:20px;text-shadow:0 2px 4px #0003}.categories-hero-description{color:#ffffffe6;font-size:1.2rem;line-height:1.6;margin:0 auto 40px;max-width:800px}.categories-feature-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1200px;padding:0 20px}.categories-feature-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:20px;padding:30px;transition:all .3s ease}.categories-feature-item:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-5px)}.categories-feature-item svg{color:#6366f1;height:40px;margin-bottom:20px;opacity:.9;width:40px}.categories-feature-item h3{color:#fff;font-size:1.3rem;font-weight:500;margin-bottom:12px}.categories-feature-item p{color:#ffffffb3;line-height:1.6}@media (max-width:768px){.categories-hero{padding:60px 20px}.categories-hero h2{font-size:2rem}.categories-hero-description{font-size:1.1rem}.categories-feature-grid{gap:20px;grid-template-columns:1fr}.categories-feature-item{padding:20px}}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:40px auto;max-width:400px;padding:40px 20px;text-align:center}.empty-state-icon{background:#f8fafc;background:var(--background-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:50%;color:#64748b;height:120px;padding:24px;transition:all .3s ease;width:120px}.empty-state:hover .empty-state-icon{background:#f1f5f9;background:var(--hover-background);color:#6366f1;color:var(--accent-color);transform:scale(1.05)}.empty-state h2{color:#1e293b;font-size:24px;margin-bottom:12px}.empty-state p{color:#64748b;font-size:16px;line-height:1.5;margin-bottom:24px}.empty-state-buttons{gap:10px;margin-top:8px}.empty-state-button{border-radius:8px;font-size:14px;gap:6px;padding:10px 20px}.empty-state-button svg{height:16px;width:16px}.empty-state-button.primary{background:#6366f1;box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm)}.empty-state-button.primary:hover{background:#4f46e5;box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md)}.empty-state-button.secondary{background:#f8fafc;border:1px solid #e2e8f0;color:#64748b;color:var(--text-secondary)}.empty-state-button.secondary:hover{background:#f1f5f9;border-color:#6366f1;border-color:var(--accent-color);color:#1e293b;color:var(--text-primary)}.hero-features{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1000px}.hero-feature{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:20px;padding:30px;text-align:center;transition:all .3s ease}.hero-feature:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-5px)}.hero-icon{height:40px;margin-bottom:20px;transition:all .3s ease;width:40px}.hero-feature:hover .hero-icon{color:#818cf8;transform:scale(1.1)}.hero-feature h3{font-size:1.25rem;font-weight:600;margin-bottom:12px}.hero-feature p{color:#ffffffb3;font-size:.95rem;line-height:1.5}.hero-stats{border-top:1px solid #ffffff1a;display:flex;gap:60px;justify-content:center;margin-top:60px;padding-top:40px}.stat-label{color:#ffffffb3}.visibility-toggle{align-items:center;background:none;border:none;color:#94a3b8;cursor:pointer;display:flex;justify-content:center;padding:0;position:absolute;right:16px;transition:color .2s ease}.visibility-toggle:hover{color:#64748b}.terms-checkbox{margin:8px 0}.checkbox-container{align-items:center;color:#475569;cursor:pointer;display:flex;font-size:14px;gap:12px}.checkbox-container input[type=checkbox]{cursor:pointer;height:18px;margin:0;width:18px}.checkbox-text{line-height:1.5}select[multiple]{height:auto!important;min-height:120px;padding:8px!important}select[multiple] option{border-radius:6px;margin:2px 0;padding:8px 12px;transition:all .2s ease}select[multiple] option:checked{background:#818cf8 linear-gradient(0deg,#818cf8,#818cf8);color:#fff}select[multiple] option:hover{background:#e0e7ff}.textarea-input{line-height:1.5;min-height:120px!important;padding-top:12px!important;resize:vertical}.view-more-link{color:#666;display:flex;justify-content:center;margin-top:2rem;text-align:center}.stats-section{background:#f8fafc;background:var(--background-secondary);margin-top:-20px;padding:40px 20px}.stats-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0 auto;max-width:1200px}.stat-card{background:#fff;background:var(--card-background);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm);padding:24px;text-align:center;transition:all .3s ease}.stat-card:hover{box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-5px)}.stat-number{color:#6366f1;color:var(--accent-color);display:block;font-size:3rem;font-weight:700;line-height:1;margin-bottom:8px}.stat-label{color:#64748b;color:var(--text-secondary);font-size:1rem;letter-spacing:1px;text-transform:uppercase}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-field{display:flex;flex-direction:column;gap:8px}.form-field label{color:#64748b;color:var(--text-secondary);font-size:14px;font-weight:500}.input-group{align-items:center;display:flex;position:relative}.input-group svg{color:#64748b;color:var(--text-secondary);left:16px;position:absolute}.input-group input,.input-group select,.input-group textarea{background:#f8fafc;background:var(--background-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:12px;color:#1e293b;color:var(--text-primary);font-size:15px;height:48px;padding:0 16px 0 48px;transition:all .2s ease;width:100%}.input-group textarea{font-family:inherit;height:120px;padding-top:14px;resize:vertical}.input-group input::placeholder,.input-group textarea::placeholder{color:#64748b;color:var(--text-secondary)}.input-group input:focus,.input-group select:focus,.input-group textarea:focus{background:#fff;background:var(--card-background);border-color:#6366f1;border-color:var(--accent-color);box-shadow:0 0 0 4px #6366f11a;outline:none}.select-input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;padding-right:48px}.spinner{border:4px solid #e2e8f0;border-top-color:#6366f1;border:4px solid var(--border-color);height:60px;margin:40px;position:absolute;right:30%;top:40%;width:60px}.settings-page{background:var(--background-primary);min-height:100vh;padding-top:40px}.settings-page.light{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.settings-page.dark{background:linear-gradient(135deg,#0f172a,#1e293b)}.settings-container{grid-gap:3rem;align-items:start;display:grid;gap:3rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1200px;padding:2rem 1.5rem 3rem}.profile-section-container{display:flex;flex-direction:column;gap:1.5rem}.profile-card{background:var(--card-background);border:1px solid var(--border-color);border-radius:24px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:2rem;position:relative;transition:all .3s ease}.profile-card:hover{box-shadow:0 10px 25px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.profile-card.dark{box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.profile-card.dark:hover{box-shadow:0 10px 25px -3px #0006,0 4px 6px -2px #0000004d}.edit-profile-button{align-items:center;background:var(--background-secondary);border:1px solid var(--border-color);border-radius:12px;color:var(--text-secondary);display:none;height:40px;justify-content:center;position:absolute;right:1.5rem;text-decoration:none;top:1.5rem;transition:all .2s ease;width:40px}.edit-profile-button:hover{background:var(--accent-color);color:#fff;text-decoration:none;transform:translateY(-1px)}.profile-header{align-items:center;display:flex;gap:1.5rem;margin-bottom:1.5rem}.profile-avatar-container{flex-shrink:0}.profile-avatar{align-items:center;background:var(--background-secondary);border:2px solid var(--border-color);border-radius:20px;display:flex;height:80px;justify-content:center;overflow:hidden;transition:all .2s ease;width:80px}.profile-avatar:hover{border-color:var(--accent-color);transform:scale(1.05)}.profile-avatar.dark{background:#ffffff0d;border-color:#ffffff1a}.profile-avatar img{height:100%;object-fit:cover;width:100%}.user-details{flex:1 1;min-width:0}.user-details h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .25rem}.user-meta-info h3{color:var(--text-secondary);font-size:.95rem;font-weight:400;margin:0 0 .75rem}.user-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.role-badge{align-items:center;background:var(--accent-color-light);border-radius:12px;color:var(--accent-color);display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.375rem .75rem;transition:all .2s ease}.role-badge:hover{background:var(--accent-color);color:#fff;transform:translateY(-1px)}.role-badge.dark{background:rgba(var(--accent-color-rgb),.15)}.role-badge svg{height:14px;width:14px}.guest-message{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:12px;margin-top:1rem;padding:1.5rem}.guest-message h3{font-size:1.25rem;margin:0 0 .5rem}.guest-message p{font-size:.95rem}.profile-section{border-top:1px solid var(--border-color);padding:1rem 0}.profile-section:first-of-type{padding-top:1rem}.section-title{align-items:center;color:var(--text-primary);display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 .75rem}.section-title svg{color:var(--accent-color)}.user-description{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin:0}.mood-tags,.user-characteristics{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.characteristic-tag,.mood-tag{border-radius:12px;font-size:.875rem;font-weight:500;padding:.375rem .75rem;transition:all .2s ease}.characteristic-tag{background:var(--background-secondary);border:1px solid var(--border-color);color:var(--text-secondary)}.characteristic-tag:hover{border-color:var(--accent-color);transform:translateY(-1px)}.characteristic-tag:hover,.mood-tag{background:var(--accent-color-light);color:var(--accent-color)}.mood-tag:hover{background:var(--accent-color);color:#fff;transform:translateY(-1px)}.mood-tag.dark{background:rgba(var(--accent-color-rgb),.15)}.subscription-card{background:var(--card-background);border:1px solid var(--border-color);border-radius:20px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:1.5rem;transition:all .3s ease}.subscription-card:hover{box-shadow:0 8px 20px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-1px)}.subscription-card.dark{box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.subscription-card .section-title{align-items:center;color:var(--text-primary);display:flex;font-size:1.125rem;font-weight:600;gap:.5rem;margin:0 0 1rem}.subscription-card .section-title svg{color:var(--accent-color)}.subscription-info{margin:0}.subscription-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.subscription-header span{color:var(--text-primary);font-size:1.1rem;font-weight:600}.subscription-status{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem}.subscription-status span{border-radius:8px;font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:.25rem .5rem;text-transform:uppercase}.subscription-status span.active{background:#dcfce7;color:#16a34a}.subscription-status span.cancelled,.subscription-status span.expired{background:#fee2e2;color:#dc2626}.dark .subscription-status span.active{background:#16a34a26;color:#4ade80}.dark .subscription-status span.cancelled,.dark .subscription-status span.expired{background:#dc262626;color:#f87171}.plan-features{margin:1rem 0}.feature-item{align-items:center;color:var(--text-secondary);display:flex;font-size:.875rem;gap:.5rem;padding:.5rem 0}.feature-item svg{color:var(--accent-color);flex-shrink:0}.subscription-expiry{align-items:center;color:var(--text-secondary);display:flex;font-size:.875rem;gap:.375rem;margin:1rem 0}.subscription-expiry svg{color:var(--accent-color)}.subscription-manage-button{background:var(--accent-color);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;margin-top:1rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.subscription-manage-button:hover{background:var(--accent-color-hover);transform:translateY(-1px)}.subscription-prompt{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin:1rem 0}.settings-menu{background:var(--card-background);border:1px solid var(--border-color);border-radius:24px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;height:-webkit-fit-content;height:fit-content;padding:2rem;transition:all .3s ease}.settings-menu:hover{box-shadow:0 10px 25px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}.settings-menu.dark{box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.settings-menu.dark:hover{box-shadow:0 10px 25px -3px #0006,0 4px 6px -2px #0000004d}.settings-section-title{color:var(--text-primary);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;margin:0 0 1.5rem}.settings-menu-content{display:flex;flex-direction:column;gap:.5rem}.settings-link{align-items:center;border:1px solid #0000;border-radius:16px;display:flex;padding:1rem;transition:all .2s ease}.settings-link,.settings-link:hover{color:var(--text-primary);text-decoration:none}.settings-link:hover{background:var(--background-secondary);border-color:var(--border-color);transform:translateX(4px)}.settings-link.active{background:var(--accent-color-light);border-color:var(--accent-color);color:var(--accent-color)}.settings-link.active.dark{background:rgba(var(--accent-color-rgb),.15)}.settings-link-content{align-items:center;display:flex;justify-content:space-between;width:100%}.settings-link-left{align-items:center;display:flex;gap:1rem}.settings-link-left svg{background:var(--background-secondary);border-radius:12px;color:var(--accent-color);flex-shrink:0;height:40px;padding:8px;transition:all .2s ease;width:40px}.settings-link.active .settings-link-left svg,.settings-link:hover .settings-link-left svg{background:var(--accent-color);color:#fff}.settings-link-left span{color:inherit;font-size:1rem;font-weight:600}.settings-link svg:last-child{background:none;color:var(--text-secondary);height:18px;padding:0;transition:all .2s ease;width:18px}.settings-link:hover svg:last-child{background:none;color:var(--accent-color);transform:translateX(4px)}.logout-button{align-items:center;background:#fee2e2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;justify-content:center;margin-top:1.5rem;padding:.875rem;transition:all .2s ease;width:100%}.logout-button.dark{background:#dc26261a;border-color:#dc262633;color:#f87171}.logout-button:hover{background:#fecaca;transform:translateY(-1px)}.logout-button.dark:hover{background:#dc262626}.logout-button svg{transition:transform .2s ease}.logout-button:hover svg{transform:translateX(2px)}.loading-screen{align-items:center;background:var(--background-primary);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.loading-content{padding:2rem;text-align:center}.loading-spinner{border:3px solid #0000;border-top:3px solid var(--accent-color);height:50px;margin:0 auto 1rem;width:50px}.loading-content h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.loading-content p{color:var(--text-secondary);font-size:1rem;margin:0}@media (max-width:1024px){.settings-container{gap:2rem;grid-template-columns:1fr}}@media (max-width:768px){.settings-container{gap:1.5rem;padding:1.5rem 1rem 2rem}.profile-card,.settings-menu,.subscription-card{border-radius:20px;padding:1.5rem}.profile-header{flex-direction:column;gap:1rem;text-align:center}.profile-avatar-container{align-self:center}.settings-link{padding:.875rem}.settings-link-left span{font-size:.95rem}}@media (max-width:480px){.settings-container{padding:1rem .75rem 1.5rem}.profile-card,.settings-menu,.subscription-card{border-radius:16px;padding:1.25rem}.mood-tags,.user-characteristics{gap:.375rem}.characteristic-tag,.mood-tag{font-size:.8rem;padding:.25rem .5rem}}.modal-overlay{animation:modalFadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;padding:20px}@keyframes modalFadeIn{0%{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0}to{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1}}.subscription-modal{animation:modalSlideUp .3s ease-out;background:var(--card-background);border:1px solid var(--border-color);border-radius:24px;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;max-width:900px;overflow-y:auto;position:relative;width:100%}.subscription-modal.dark{box-shadow:0 25px 50px -12px #00000080}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.modal-header{background:inherit;border-radius:24px 24px 0 0;padding:32px 32px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-header h2{font-size:28px;font-weight:700;letter-spacing:-.02em}.modal-close{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:12px;padding:12px}.modal-close:hover{background:var(--accent-color);border-color:var(--accent-color);color:#fff;transform:scale(1.05)}.modal-content{padding:32px}.plans-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.plan-option{background:var(--card-background);border:2px solid var(--border-color);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;padding:32px;position:relative;transition:all .3s ease}.plan-option:before{background:linear-gradient(90deg,var(--accent-color),var(--accent-color-light));content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.plan-option:hover{border-color:var(--accent-color);box-shadow:0 20px 40px -12px #00000026;transform:translateY(-8px)}.plan-option:hover:before{opacity:1}.plan-option.current{background:var(--accent-color-light);border-color:var(--accent-color);position:relative}.plan-option.current:before{opacity:1}.plan-option.current:after{background:var(--accent-color);border-radius:20px;color:#fff;content:"Current Plan";font-size:12px;font-weight:600;letter-spacing:.5px;padding:6px 12px;position:absolute;right:20px;text-transform:uppercase;top:20px}.plan-option.dark{background:var(--card-background)}.plan-option.dark:hover{box-shadow:0 20px 40px -12px #0000004d}.plan-option.current.dark{background:rgba(var(--accent-color-rgb),.1)}.plan-info{display:flex;flex:1 1;flex-direction:column}.plan-info h3{color:var(--text-primary);font-size:24px;font-weight:700;letter-spacing:-.01em;margin:0 0 8px}.plan-price{color:var(--accent-color);font-size:48px;font-weight:800;letter-spacing:-.02em;line-height:1;margin:0 0 8px}.plan-price .currency{font-size:24px;margin-right:4px;vertical-align:top}.plan-price .period{color:var(--text-secondary);font-size:18px;font-weight:500;margin-left:4px}.plan-description{color:var(--text-secondary);flex-grow:1;font-size:16px;line-height:1.5;margin:0 0 32px}.plan-features{display:flex;flex-direction:column;gap:16px;list-style:none;margin:0 0 32px;padding:0}.modal-content .feature-item{align-items:center;background:var(--background-secondary);border:1px solid var(--border-color);border-radius:12px;color:var(--text-primary);display:flex;font-size:15px;gap:12px;padding:12px 16px;transition:all .2s ease}.modal-content .feature-item:hover{background:var(--accent-color-light);border-color:var(--accent-color);transform:translateX(4px)}.modal-content .feature-item.dark{background:#ffffff0d;border-color:#ffffff1a}.modal-content .feature-item.dark:hover{background:rgba(var(--accent-color-rgb),.15)}.modal-content .feature-item svg{background:var(--accent-color-light);border-radius:6px;color:var(--accent-color);flex-shrink:0;height:20px;padding:4px;width:20px}.modal-content .feature-item.dark svg{background:rgba(var(--accent-color-rgb),.2)}.modal-content .feature-item span{font-weight:500;line-height:1.4}.plan-action-button{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;letter-spacing:0;overflow:hidden;padding:16px 24px;position:relative;text-transform:none;transition:all .2s ease;width:100%}.plan-action-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.plan-action-button:hover:before{left:100%}.plan-action-button.dark,.plan-action-button.light{background:linear-gradient(135deg,var(--accent-color),var(--accent-color-hover));color:#fff}.plan-action-button:hover{box-shadow:0 8px 25px -8px var(--accent-color);transform:translateY(-2px)}.plan-action-button:disabled{background:var(--background-secondary);box-shadow:none;color:var(--text-secondary);cursor:not-allowed;transform:none}.plan-action-button:disabled:before{display:none}.plan-option.recommended{border-color:var(--accent-color);position:relative;scale:1.05}.plan-option.recommended:before{background:linear-gradient(90deg,#ff6b6b,#4ecdc4,#45b7d1);opacity:1}.plan-option.recommended .plan-action-button{background:linear-gradient(135deg,#ff6b6b,#4ecdc4)}.cancellation-section{background:var(--background-secondary);border-radius:16px;border-top:1px solid var(--border-color);margin-top:25px;padding:32px;text-align:center}.cancellation-section h3{color:#ef4444;font-size:20px;font-weight:600;margin-bottom:12px}.cancellation-section.dark h3{color:#f87171}.cancellation-section p{color:var(--text-secondary);font-size:16px;line-height:1.5;margin-bottom:24px}.cancel-subscription-button{background:#fee2e2;border:1px solid #fecaca;border-radius:12px;color:#ef4444;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.cancel-subscription-button.dark{background:#ef44441a;border:1px solid #ef444433;color:#f87171}.cancel-subscription-button:hover{background:#ef4444;box-shadow:0 4px 12px -4px #ef4444;color:#fff;transform:translateY(-1px)}.cancel-subscription-button.dark:hover{background:#f87171;color:#fff}.cancel-subscription-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.modal-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:80px 40px}.modal-loading .loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--background-secondary);border:4px solid var(--background-secondary);border-radius:50%;border-top-color:var(--accent-color);height:60px;margin-bottom:24px;width:60px}.modal-loading h2{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 12px}.modal-loading p{color:var(--text-secondary);font-size:16px;margin:0}@media (max-width:768px){.modal-header{padding:24px 24px 20px}.modal-header h2{font-size:24px}.modal-content{padding:24px}.plans-grid{gap:20px;grid-template-columns:1fr}.plan-option{padding:24px}.plan-price{font-size:36px}.plan-option.recommended{scale:1}}@media (max-width:480px){.subscription-modal{border-radius:0;height:100%;margin:0;max-width:none}.modal-header{border-radius:0;padding:20px}.modal-header h2{font-size:20px}.modal-content,.plan-option{padding:20px}.plan-price{font-size:32px}.plan-action-button{font-size:15px;padding:14px 20px}.cancellation-section{margin-top:32px;padding:24px}}.guest-message{text-align:center}.guest-message h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 12px}.guest-message p{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0}.chat-button{font-size:15px;justify-content:center;transition:all .2s ease}.chat-button svg{height:18px;width:18px}.prompt-input{background:#0000;border:none;border-bottom:1px solid var(--border-color);box-sizing:border-box;color:var(--text-primary);font-family:inherit;line-height:1.5;padding:10px;width:100%}.prompt-input:focus{border-color:var(--accent-color);outline:none}.sub-text{color:var(--text-secondary);display:flex;font-size:14px;justify-content:flex-end;margin:30px 0 0}.resp-container{border-bottom:1px solid var(--border-color);padding:50px}.chat-container{margin:auto;max-width:600px}.chat-history{flex:1 1;margin-bottom:20px;margin-top:20px;max-height:250px;overflow-y:auto;padding:24px;width:100%}.message{border-radius:8px;margin-bottom:15px;padding:10px}.message-header{justify-content:space-between;margin-bottom:8px}.message-header,.message-time{align-items:center;display:flex}.message-time{color:var(--text-secondary);font-size:.75em;gap:4px}.message-page{align-items:center;background:#6366f114;border-radius:12px;color:var(--accent-color);display:inline-flex;font-size:11px;font-weight:500;gap:6px;padding:3px 8px;text-decoration:none;transition:all .2s ease}.message-page:hover{transform:translateY(-1px)}.dark .message-page,.message-page:hover{background:#6366f126}.dark .message-page:hover{background:#6366f133}.message-page:before{margin:0 4px}.message-role{color:var(--text-primary);display:block;font-weight:700;margin-bottom:5px}.latest-response{display:flex;justify-content:center;margin:20px;width:100%;width:90%}.history-title{border-top:1px solid var(--border-color);color:var(--text-secondary);margin:20px 0;padding-top:20px;text-align:center}.chat-btn{background:var(--accent-color);border:none;border-radius:5px;color:#fff;cursor:pointer;height:35px;margin:25px 10px 10px;transition:all .2s ease;width:35px}.chat-btn:hover{background:var(--accent-color-hover);transform:translateY(-1px)}.chat-container{display:flex;flex-direction:column;height:calc(100vh - 40px);margin-top:40px}.chat-container,.chat-messages{background:var(--background-primary)}.chat-messages{flex:1 1;overflow-y:auto;padding:24px}.messages-container{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:800px}.message-group{display:flex;flex-direction:column;gap:8px}.message-container{align-items:flex-end;display:flex;flex-direction:column-reverse}.message{align-items:flex-start;display:flex;gap:12px;position:relative}.message-avatar{border-radius:50%;height:35px;object-fit:cover;width:35px}.user-message{justify-content:flex-end;margin-left:auto}.message-profile{flex-shrink:0;margin:0 12px}.user-message .message-profile{margin:0 0 0 12px;order:2}.user-message .message-content{order:1}.ai-message .message-profile{margin:0 12px 0 0}.message-content{border-radius:16px;box-shadow:var(--shadow-sm);padding:12px 16px}.user-message .message-content,.user-message.dark .message-content{background:var(--accent-color);color:#fff}.ai-message .message-content{background:var(--card-background);border:1px solid var(--border-color);color:var(--text-primary)}.message-content p{font-size:14px;line-height:1.5;margin:0}.message-meta{margin-top:4px;padding:0 12px}.typing-indicator{background:var(--card-background);border:1px solid var(--border-color);border-radius:16px;display:flex;gap:4px;margin:8px 0;padding:12px 16px;width:-webkit-fit-content;width:fit-content}.typing-dot{animation:typing 1.4s ease-in-out infinite;background:var(--accent-color);border-radius:50%;height:8px;width:8px}.typing-dot:first-child{animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.chat-input-container{background:var(--card-background);border-top:1px solid var(--border-color);padding:16px 24px}.chat-input-wrapper{align-items:flex-end;background:var(--background-primary);border:1px solid var(--border-color);border-radius:12px;display:flex;gap:12px;margin:0 auto;max-width:800px;padding:8px 12px;transition:all .2s ease}.chat-input-wrapper:focus-within{border-color:var(--accent-color);box-shadow:0 0 0 3px #6366f11a}.chat-input{background:#0000;border:none;color:var(--text-primary);flex:1 1;font-size:14px;line-height:1.5;min-height:40px;outline:none;padding:8px;resize:none}.chat-input::placeholder{color:var(--text-secondary)}.send-button{align-items:center;background:var(--accent-color);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;transition:all .2s ease;width:40px}.send-button:hover:not(:disabled){background:var(--accent-color-hover);transform:translateY(-1px)}.send-button:disabled{background:var(--border-color);cursor:not-allowed}.empty-state-icon{color:var(--text-secondary);margin-bottom:24px}.empty-state h2{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 12px}.empty-state p{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 24px;max-width:400px}.empty-state-buttons{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.empty-state-button{align-items:center;border-radius:12px;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:8px;justify-content:center;padding:12px 24px;text-decoration:none;transition:all .2s ease}.empty-state-button.primary{background:var(--accent-color);border:none;color:#fff}.empty-state-button.primary:hover{background:var(--accent-color-hover);transform:translateY(-2px)}.empty-state-button.secondary{background:var(--background-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.empty-state-button.secondary:hover{background:var(--hover-background);transform:translateY(-2px)}@media (max-width:768px){.character-profile{padding:16px}.character-profile-content{gap:16px}.character-profile-image{height:60px;width:60px}.character-profile-info h2{font-size:20px}.chat-messages{padding:16px}.chat-input-container{padding:12px 16px}.empty-state-buttons{flex-direction:column}.profile-stat{font-size:12px}.profile-stat.context-link{padding:3px 6px}}.character-profile{background:var(--card-background);border-bottom:1px solid var(--border-color);padding:24px}.character-profile-content{align-items:flex-start}.character-image-container{height:80px;position:relative;width:80px}.character-image-container.active-context{animation:subtle-bounce 2s ease-in-out infinite}.character-profile-image{border:2px solid var(--border-color);transition:all .3s ease}.active-context .character-profile-image{border-color:var(--accent-color);box-shadow:0 0 0 4px #6366f133}.active-indicator{align-items:center;background:var(--accent-color);border:2px solid var(--background-primary);border-radius:50%;bottom:0;display:flex;height:20px;justify-content:center;position:absolute;right:0;width:20px}.pulse{animation:pulse 2s ease-in-out infinite;background:#fff;border-radius:50%;display:block;height:8px;width:8px}@keyframes subtle-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.character-profile-info h2{color:var(--text-primary)}.character-profile-book{color:var(--text-secondary);display:inline-flex;gap:8px;margin-bottom:12px}.character-profile-book:hover{color:var(--accent-color)}.character-profile-intro{color:var(--text-secondary)}.character-profile-stats{margin-top:4px}.profile-stat{border-radius:6px;color:var(--text-secondary);gap:8px;padding:4px 8px;transition:all .2s ease}.profile-stat.context-link{background:#6366f11a;color:var(--accent-color);text-decoration:none}.profile-stat.context-link:hover{background:#6366f126;transform:translateX(2px)}.profile-stat.context-link svg:last-child{opacity:0;transform:translateX(-4px);transition:all .2s ease}.profile-stat.context-link:hover svg:last-child{opacity:1;transform:translateX(0)}.character-profile.collapsed .profile-stat.context-link{display:flex}.mobile-character-profile{display:block;width:100%}@media (min-width:1024px){.chat-container{flex-direction:row;height:calc(100vh - 40px);margin:40px 0 0;max-width:none}.chat-left-panel{background:var(--card-background);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;height:100%;position:-webkit-sticky;position:sticky;top:40px;width:400px}.character-large-image{border-bottom:1px solid var(--border-color);height:400px;object-fit:cover;width:100%}.character-profile{border-bottom:none;flex:1 1;overflow-y:auto;padding:24px}.chat-right-panel{display:flex;flex:1 1;flex-direction:column;min-width:0}.chat-messages{flex:1 1;padding:32px}.messages-container{margin:0 auto;max-width:800px}.mobile-character-profile{display:none}}@media (max-width:1023px){.character-large-image,.chat-left-panel{display:none}.chat-container{height:calc(100vh - 40px);margin:0;max-width:100%}.mobile-character-profile{border-bottom:1px solid var(--border-color)}.character-profile{background:var(--background-primary);margin:0;padding:12px 16px}.character-profile-content{align-items:center;flex-direction:row;gap:12px}.character-image-container{flex-shrink:0;height:40px;width:40px}.character-profile-image{height:40px;width:40px}.character-profile-info{min-width:0}.character-profile-info h2{font-size:16px;margin:0 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-profile-book{font-size:13px;margin:0;padding:0}.character-profile-book span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-profile-stats{margin:4px 0 0}.profile-stat{font-size:12px;padding:2px 6px}.profile-stat.context-link{max-width:100%}.profile-stat.context-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-profile-intro{display:none}.chat-messages{padding:12px}.messages-container{gap:12px}.message{gap:8px}.message-avatar{height:32px;width:32px}.message-profile{margin:0 8px}.message-content{font-size:14px;padding:10px 12px}.chat-input-container{border-top:1px solid var(--border-color);padding:8px 12px}.chat-input-wrapper{padding:6px 8px}.chat-input{min-height:36px;padding:6px}.send-button{height:36px;width:36px}.empty-state-icon svg{height:48px;width:48px}.empty-state h2{font-size:18px}.empty-state p{font-size:13px}.empty-state-buttons{flex-direction:column;gap:8px}.empty-state-button{font-size:14px;padding:10px 16px;width:100%}}.character-intro{font-size:14px;height:40px;height:300px;line-height:1.4;margin:15px 0;text-align:center;width:180px;width:100%}.character-card .character-intro{color:var(--text-secondary);flex:1 1;font-size:.95rem;line-height:1.6;margin:0 0 24px}.character-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:20px 0}.character-card{border-radius:12px;box-shadow:var(--shadow-sm);display:flex;flex:0 0 300px;flex-direction:column;gap:1rem;scroll-snap-align:start;transition:all .3s ease}.character-card .character-name{color:var(--text-primary);font-size:1.25rem;font-weight:600;line-height:1.4;margin:0}.character-card .book-title{color:var(--accent-color);font-size:.9rem;font-weight:500;margin:.25rem 0}.character-card .character-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-secondary);display:-webkit-box;font-size:.9rem;line-height:1.5;margin:.5rem 0;overflow:hidden}.character-card .message-count{align-items:center;border-top:1px solid var(--border-color);color:var(--text-secondary);display:flex;font-size:.9rem;gap:.5rem;margin-top:auto;padding-top:.75rem}.character-card .message-count svg{stroke-width:2;color:var(--text-secondary);height:16px;width:16px}.character-placeholder{align-items:center;background:var(--background-secondary);color:var(--text-secondary);display:flex;font-size:1.5rem;font-weight:700;height:100%;justify-content:center;width:100%}.character-info{flex-grow:1;gap:.5rem;padding:15px}.character-info h3{font-size:1.2rem}.character-book,.character-intro{font-size:.9rem;margin:0}.character-intro{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;line-height:1.5;overflow:hidden}.character-stats{align-items:center;border-top:1px solid var(--border-color);color:var(--text-secondary);display:flex;font-size:.9rem;gap:1rem;margin-top:auto;padding-top:.5rem}.character-stats svg{stroke-width:2;color:var(--text-secondary);height:16px;width:16px}@media (max-width:768px){.book-characters-content h2{font-size:2rem;margin-bottom:30px}.character-grid{gap:20px;grid-template-columns:1fr}.character-card-content{padding:20px}.character-card-content h3{font-size:1.3rem}.chat-button{font-size:14px;padding:10px 20px}}.image-recommendation{background-color:#f5f5f5;border-left:4px solid #007bff;border-radius:5px;color:#666;font-size:14px;margin:10px 0;padding:10px}.book-preview{background-color:#f8f9fa;border-radius:8px;margin-top:20px;padding:20px;text-align:center}.book-preview h4{color:#333;margin-bottom:15px}.character-list{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));padding:20px;width:100%}.character-info{max-width:350px}.top-characters-section{background:var(--background-secondary);margin-bottom:40px;padding-bottom:40px;position:relative;width:100%}.top-characters-header{margin-bottom:3rem;text-align:center}.top-characters-section h2{color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:1rem}.top-characters-description{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin-bottom:2rem;margin-left:auto;margin-right:auto;max-width:800px;opacity:.9;text-align:center}.top-characters-scroll-container{margin:0 auto;max-width:100vw;overflow:visible;padding:0 20px;position:relative}.top-characters-grid{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;display:flex;gap:1.5rem;overflow-x:auto;padding:.5rem calc(50vw - 140px);scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none}.top-characters-grid::-webkit-scrollbar{display:none}.top-characters-scroll-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--card-background);border:1px solid var(--border-color);border-radius:50%;box-shadow:var(--shadow-lg);color:var(--text-primary);cursor:pointer;display:flex;height:50px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;width:50px;z-index:3}.top-characters-scroll-button:hover{background:var(--hover-background);border-color:var(--accent-color);box-shadow:var(--shadow-xl);transform:translateY(-50%) scale(1.1)}.top-characters-scroll-left{left:20px}.top-characters-scroll-right{right:20px}.top-character-card{border-radius:20px;box-shadow:0 10px 30px #0000001a;cursor:pointer;flex:0 0 280px;height:400px;overflow:hidden;position:relative;scroll-snap-align:start;transition:all .4s cubic-bezier(.4,0,.2,1)}.top-character-card:hover{box-shadow:0 25px 50px #0003;transform:translateY(-10px) scale(1.02)}.top-character-image-container{height:100%;overflow:hidden;position:relative;width:100%}.top-character-image{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1);width:100%}.top-character-card:hover .top-character-image{transform:scale(1.1)}.top-character-placeholder{align-items:center;background:linear-gradient(135deg,var(--accent-color) 0,var(--primary-color) 100%);display:flex;height:100%;justify-content:center;transition:transform .6s cubic-bezier(.4,0,.2,1);width:100%}.top-character-card:hover .top-character-placeholder{transform:scale(1.1)}.top-character-initials{color:#fff;font-size:3rem;font-weight:700;text-shadow:0 2px 4px #0000004d}.top-character-overlay{background:linear-gradient(0deg,#000000e6 0,#000000b3 40%,#0000);bottom:0;left:0;padding:2rem 1.5rem 1.5rem;position:absolute;right:0;transform:translateY(0);transition:all .4s cubic-bezier(.4,0,.2,1)}.top-character-info{margin-bottom:1rem}.top-character-name{color:#fff;font-size:1.4rem;font-weight:700;line-height:1.2;margin:0 0 .5rem;text-shadow:0 2px 4px #00000080}.top-character-book{color:#ffffffe6;font-size:.95rem;font-weight:500;margin:0;text-shadow:0 1px 2px #00000080}.top-character-description-overlay{max-height:0;opacity:0;overflow:hidden;transform:translateY(20px);transition:all .4s cubic-bezier(.4,0,.2,1)}.top-character-card:hover .top-character-description-overlay{max-height:200px;opacity:1;transform:translateY(0)}.top-character-card:hover .top-character-overlay{background:linear-gradient(0deg,#000000f2 0,#000c 60%,#0003);padding:2.5rem 1.5rem 2rem}.top-character-description{color:#fffffff2;font-size:.9rem;line-height:1.5;margin:0;text-shadow:0 1px 2px #00000080}.view-more-card{align-items:center;background:var(--card-background);border:2px solid var(--accent-color);border-radius:20px;box-shadow:0 10px 30px #0000001a;cursor:pointer;display:flex;flex:0 0 280px;height:400px;justify-content:center;overflow:hidden;position:relative;scroll-snap-align:start;text-decoration:none;transition:all .4s cubic-bezier(.4,0,.2,1)}.view-more-card:hover{background:var(--accent-color);border-color:var(--accent-color);box-shadow:0 25px 50px #0003;transform:translateY(-10px) scale(1.02)}.view-more-content{align-items:center;color:var(--accent-color);display:flex;flex-direction:column;gap:1rem;padding:2rem 1.5rem;text-align:center;transition:color .3s ease}.view-more-card:hover .view-more-content{color:#fff}.view-more-icon{opacity:.9;transition:all .3s ease}.view-more-card:hover .view-more-icon{opacity:1;transform:scale(1.1)}.view-more-title{font-size:1.4rem;font-weight:700;line-height:1.2}.view-more-subtitle,.view-more-title{margin:0;transition:text-shadow .3s ease}.view-more-subtitle{font-size:.95rem;opacity:.9}.view-more-card:hover .view-more-subtitle,.view-more-card:hover .view-more-title{text-shadow:0 2px 4px #0000004d}.character-image{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;flex-shrink:0;height:200px;overflow:hidden;position:relative;width:100%}.character-image img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.meta-item{align-items:center;color:#94a3b8;display:flex;font-size:14px;gap:6px;transition:color .3s ease}.character-list-item:hover .meta-item{color:#64748b}.meta-item svg{stroke-width:2;height:16px;width:16px}@media (max-width:768px){.top-characters-section{padding:40px 0}.top-characters-section h2{font-size:2rem}.top-characters-description{font-size:1rem;padding:0 1rem}.top-characters-scroll-container{padding:0 10px}.top-characters-grid{padding-left:calc(50vw - 125px);padding-right:calc(50vw - 125px)}.top-character-card{flex:0 0 250px;height:350px}.top-character-name{font-size:1.2rem}.top-character-book,.top-character-description{font-size:.85rem}.top-characters-scroll-button{height:40px;width:40px}.top-characters-scroll-left{left:15px}.top-characters-scroll-right{right:15px}.top-character-overlay{padding:1.5rem 1rem 1rem}.top-character-card:hover .top-character-overlay{padding:2rem 1rem 1.5rem}.view-more-card{flex:0 0 250px;height:350px}.view-more-title{font-size:1.2rem}.view-more-subtitle{font-size:.85rem}.view-more-content{padding:1.5rem 1rem}}.character-list-item .meta-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s ease}.character-list-item .meta-button.edit{background:#e0e7ff;color:#4f46e5}.character-list-item .meta-button.edit:hover{background:#c7d2fe;transform:translateY(-1px)}.character-list-item .meta-button.delete{background:#fee2e2;color:#ef4444}.character-list-item .meta-button.delete:hover{background:#fecaca;transform:translateY(-1px)}.character-description.secondary{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#64748b;display:-webkit-box;font-size:13px;margin-top:4px;overflow:hidden}.character-list-item:hover .character-avatar{border-color:#818cf8}.character-list-item .character-info h3{font-size:1.25rem;margin-bottom:8px}.character-list-item .character-description{line-height:1.5;margin:0}@media (max-width:768px){.character-list-item{padding:16px}.character-list-item .character-avatar{height:80px;width:80px}.character-list-item .character-info h3{font-size:1.1rem}.character-list-item .meta-button{font-size:13px;padding:6px 12px}}.character-list-container{margin:0 auto;max-width:1400px;min-height:400px;padding:2rem;position:relative}.character-list-view{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));min-height:400px;padding:24px}.character-list-item{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:24px;position:relative;transition:all .3s ease}.character-list-item:hover{border-color:var(--accent-color);box-shadow:0 8px 16px #0000001a;transform:translateY(-2px)}.character-list-item:after{background:linear-gradient(135deg,#6366f1,#8b5cf6);content:"";height:4px;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%}.character-list-item:hover:after{opacity:1}.character-avatar{border-radius:50%;box-shadow:0 4px 12px #0000001a;flex-shrink:0;height:120px;object-fit:cover;transition:all .3s ease;width:120px}.character-list-item:hover .character-avatar{border-color:#e0e7ff;box-shadow:0 8px 20px #00000026;transform:scale(1.05)}.character-info{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:0}.character-info h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0;transition:color .2s ease}.character-list-item:hover .character-info h3{color:#4f46e5}.book-title{color:#6366f1;font-size:15px;font-weight:500;margin:0;transition:color .3s ease}.character-list-item:hover .book-title{color:#4338ca}.character-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--text-secondary);display:-webkit-box;font-size:.95rem;line-height:1.6;margin:0;overflow:hidden;text-overflow:ellipsis}.character-list-item:hover .character-description{color:#475569}@media (max-width:768px){.character-list-view{gap:20px;grid-template-columns:1fr;padding:16px}.character-list-item{gap:16px;padding:16px}.character-avatar{height:80px;width:80px}.character-info h3{font-size:18px}.book-title{font-size:14px}.character-description{-webkit-line-clamp:2;font-size:14px}}.characters-hero{background:linear-gradient(135deg,#1e293b,#334155);color:#fff;margin-top:40px;overflow:hidden;padding:30px;position:relative}.characters-hero:before{background:radial-gradient(circle at 20% 150%,#6366f126 0,#0000 50%),radial-gradient(circle at 80% -50%,#8b5cf626 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.hero-content{position:relative;z-index:1}.characters-hero h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#e0e7ff);-webkit-background-clip:text;font-size:3.5rem;font-weight:700;line-height:1.2;margin-bottom:24px;text-align:center}@media (max-width:768px){.characters-hero{margin-top:20px;padding:60px 20px}.characters-hero h1{font-size:2.5rem}.hero-description{font-size:1.1rem;margin-bottom:40px}.hero-features{gap:20px}.hero-feature{padding:24px}.hero-stats{gap:40px;margin-top:40px}.stat-number{font-size:2.5rem}.stat-label{font-size:.9rem}}.character-profile{background:var(--background-primary);box-shadow:0 4px 6px -1px #0000000d;padding:50px 24px 24px}.character-profile-content{align-items:center;display:flex;gap:24px;margin:0 auto;max-width:800px}.character-profile-image{border:3px solid #e0e7ff;border-radius:50%;box-shadow:0 4px 12px #0000001a;height:80px;object-fit:cover;width:80px}.character-profile-info{flex:1 1}.character-profile-info h2{font-size:24px;font-weight:600;margin:0 0 8px}.character-profile-book{align-items:center;border-radius:6px;color:#6366f1;display:flex;font-size:14px;gap:6px;margin:0 0 12px -8px;padding:4px 8px;text-decoration:none;transition:all .2s ease}.character-profile-book:hover{color:#4f46e5;transform:translateX(2px)}.character-profile-book svg:last-child{opacity:0;transform:translateX(-4px);transition:all .2s ease}.character-profile-book:hover svg:last-child{opacity:1;transform:translateX(0)}.character-profile-book span{position:relative}.character-profile-book span:after{background:currentColor;bottom:-2px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:right;transition:transform .3s ease;width:100%}.character-profile-book:hover span:after{transform:scaleX(1);transform-origin:left}.character-profile-intro{color:#64748b;font-size:14px;line-height:1.6;margin:0 0 16px}.character-profile-stats{display:flex;gap:16px}.profile-stat{align-items:center;color:#94a3b8;display:flex;font-size:13px;gap:6px}.profile-stat svg{stroke-width:2;height:16px;width:16px}.search-section{background:var(--background-secondary);padding:40px 20px}.search-container{margin:0 auto;max-width:350px;text-align:center}.search-container h2{color:var(--text-primary);font-size:2rem;font-weight:600;margin-bottom:24px;text-align:center}.search-page{min-height:60vh;padding-top:80px}.search-input{background:var(--background-primary);border:1px solid var(--border-color);border-radius:12px;font-size:1rem;padding:16px 48px;transition:all .2s ease}.search-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px rgba(var(--accent-color-rgb),.1)}@media (max-width:768px){.search-section{padding:2rem 1rem}.search-container h2{font-size:1.5rem;margin-bottom:1rem}.search-input{border-radius:12px;font-size:1rem;padding:16px 16px 16px 48px}.search-input-wrapper svg{height:20px;left:16px;width:20px}}.loading-indicator{align-items:center;background:var(--card-background);border-radius:12px;display:flex;justify-content:center;margin:20px 0;padding:40px}.loading-indicator .spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#6366f1;height:40px;margin-bottom:1rem;width:40px}.loading-indicator:after{color:#64748b;content:"Loading characters...";font-size:.9rem;margin-top:.5rem}.character-empty-state{align-items:center;color:#64748b;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:4rem 2rem;text-align:center;width:100%}.view-more-link{color:var(--text-secondary);font-weight:500;margin-top:20px;text-decoration:none;transition:all .3s ease}.view-more-link:hover{color:var(--accent-color)}.nav-bar{display:none}.nav-link{align-items:center;color:var(--text-secondary);display:flex;flex-direction:row;font-size:14px;gap:12px;text-decoration:none;transition:all .2s ease;width:100%}.nav-link.active,.nav-link:hover{color:var(--text-primary)}.nav-link.active{font-weight:500}.nav-link svg{stroke-width:1.5;flex-shrink:0;height:20px;transition:all .2s ease;width:20px}.nav-link:hover svg{transform:scale(1.1)}.nav-link.active svg{stroke-width:2}.app-header{background:var(--nav-background);border-bottom:1px solid var(--border-color);flex-direction:row;height:40px;width:100%;z-index:999}.header-content{gap:20px}.header-back{flex-shrink:0}.book-header-title-text{color:var(--text-primary);font-size:20px;font-weight:700}.header-back-button{align-items:center;display:flex;justify-content:center;transition:all .2s ease}.header-back-button:hover{transform:translateX(-2px)}.book-header-title{display:block;font-size:20px;font-weight:700;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.header-search{flex:1 1;max-width:500px;position:relative}.header-search .search-input-container{height:32px;margin:0;padding:6px 12px}.header-search .search-input{height:100%;padding:0}.search-dropdown{background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);left:0;max-height:400px;max-width:425px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);z-index:1000}.search-dropdown.dark{background:var(--card-background);border-color:var(--border-color)}.search-result-item{align-items:center;border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .2s ease}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--hover-background)}.search-result-image{border-radius:4px;flex-shrink:0;height:60px;overflow:hidden;width:40px}.search-result-image img{height:100%;object-fit:cover;width:100%}.search-result-info{flex:1 1;min-width:0}.search-result-info h4{color:var(--text-primary);font-size:14px;font-weight:500;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-info p{color:var(--text-secondary);font-size:12px;margin:0}.search-loading{align-items:center;display:flex;justify-content:center;padding:20px}.search-loading .loading-spinner{animation:spin .8s linear infinite;border:2px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-color);height:24px;width:24px}.no-results{font-size:14px;padding:16px}.view-all-results{background:var(--background-secondary);color:var(--accent-color);cursor:pointer;font-size:14px;font-weight:500;padding:12px;text-align:center;transition:all .2s ease}.view-all-results:hover{background:var(--hover-background)}@media (max-width:768px){.desktop-only{display:none}.book-header-title{left:50%;position:absolute;transform:translateX(-50%)}}@media (max-width:1100px){.desktop-only{display:none}}.title-header{align-content:center;background:var(--background-primary);flex-wrap:wrap;height:50px;position:fixed;top:0;width:100%}.logo-name-container,.title-header{display:flex;justify-content:center}.logo-name-container{align-items:center}.side-nav{background:var(--nav-background);border-left:1px solid var(--border-color);box-shadow:-2px 0 10px #0000001a;display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding:20px 10px 0 0;position:fixed;right:-350px;top:0;transition:all .3s cubic-bezier(.4,0,.2,1);width:200px;z-index:1000}.side-nav:after{display:none}.side-nav>:not(.nav-section:first-child){padding-right:16px}.side-nav>:last-child{margin-bottom:40px}.side-nav .nav-section{background:var(--nav-background);margin:0;padding:12px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.side-nav::-webkit-scrollbar{width:6px}.side-nav::-webkit-scrollbar-track{background:#0000}.side-nav::-webkit-scrollbar-thumb{background-color:var(--text-secondary);border-radius:3px}.side-nav{scrollbar-color:var(--text-secondary) #0000;scrollbar-width:thin}.side-nav.open{right:0}.side-nav .nav-link{color:var(--nav-text);font-size:16px;font-weight:500;opacity:.8;overflow:hidden;padding:16px 20px;position:relative}.side-nav .nav-link:before{background-color:currentColor;content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:-1}.side-nav .nav-link.active,.side-nav .nav-link:hover{background:var(--hover-background);color:var(--nav-text);opacity:1}.side-nav .nav-link.active{border-left:4px solid var(--accent-color)}.side-nav .nav-link svg{color:var(--nav-text);opacity:.8}.side-nav .nav-link.active svg,.side-nav .nav-link:hover svg{opacity:1}.side-nav .nav-link span{font-size:15px;letter-spacing:.3px}.side-nav .nav-section{color:var(--nav-text);font-size:13px;font-weight:600;letter-spacing:1px;margin-bottom:8px;margin-top:8px;opacity:.6;padding:0 12px;text-transform:uppercase}.side-nav .nav-section:last-of-type{border-top:1px solid var(--border-color);margin-top:16px;padding-top:16px}.side-nav .user-info{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:12px;margin:10px;transition:all .2s ease}.side-nav .user-info.clickable{cursor:pointer}.side-nav .user-info.clickable:hover{background:var(--hover-background);border-color:var(--accent-color);transform:translateY(-1px)}.side-nav .user-info-main{align-items:center;display:flex;gap:12px;padding:5px}.side-nav .user-avatar{align-items:center;background:var(--background-secondary);border:2px solid var(--border-color);border-radius:50%;display:flex;flex-shrink:0;height:40px;justify-content:center;overflow:hidden;width:40px}.side-nav .user-avatar-img{height:100%;object-fit:cover;width:100%}.side-nav .user-avatar svg{color:var(--text-secondary);opacity:.8}.side-nav .user-details{flex-grow:1;min-width:0}.side-nav .user-name{color:var(--nav-text);font-size:15px;font-weight:600;margin-bottom:4px}.side-nav .user-email,.side-nav .user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100px}.side-nav .user-email{color:var(--text-secondary);font-size:13px;margin-bottom:0}.side-nav .token-balance{align-items:center;border-radius:8px;display:flex;font-size:13px;gap:6px;margin-top:8px;padding:8px 12px;transition:all .2s ease}.side-nav .token-balance,.side-nav .token-balance.dark,.side-nav .token-balance.light{background:var(--accent-color);color:#fff}.side-nav .token-balance svg{stroke-width:2;color:#fff;transition:all .2s ease}.side-nav .token-balance.dark svg,.side-nav .token-balance.light svg{color:#fff}.side-nav .token-balance span{color:#fff;font-weight:500;transition:color .2s ease}.side-nav .token-balance:hover{background:var(--accent-color-hover);transform:translateY(-1px)}.side-nav .token-balance:hover svg{transform:scale(1.1)}.side-nav .logout-button{background:none;border:none;color:#ef4444;cursor:pointer;justify-content:flex-start;padding:16px 20px;width:100%}.side-nav .logout-button:hover{background:var(--hover-background);color:#dc2626}.side-nav .logout-button svg{stroke-width:2;height:20px;width:20px}.overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000004d;height:100%;left:0;opacity:0;position:fixed;top:0;transition:all .3s cubic-bezier(.4,0,.2,1);visibility:hidden;width:100%;z-index:999}.overlay.visible{opacity:1;visibility:visible}@media (max-width:768px){.side-nav{padding-top:20px;width:220px}.side-nav>:not(.nav-section:first-child){padding-right:12px}.side-nav .nav-link{padding:14px 16px}.side-nav .nav-link svg{height:24px!important;min-height:24px;min-width:24px;width:24px!important}.side-nav .nav-link span,.side-nav .user-name{font-size:16px}.side-nav .user-email{font-size:14px}.side-nav .nav-section{font-size:12px;margin-bottom:4px;margin-top:12px}}.side-nav .logout-button svg,.side-nav .nav-link svg{flex-shrink:0;min-height:20px;min-width:20px}.side-nav .nav-link span{white-space:nowrap}.theme-toggle{align-items:center;background:none;border:none;color:var(--nav-text);cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:background-color .2s;width:100%}.theme-toggle:hover{background-color:var(--hover-background)}.theme-toggle svg{height:20px;width:20px}.nav-reading-section{border-bottom:1px solid var(--border-color);margin-bottom:8px;padding:12px 16px}.nav-reading-header{align-items:center;color:var(--text-secondary);display:flex;font-size:10px;font-weight:600;gap:6px;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.nav-reading-card{background:var(--hover-background);border:1px solid #0000;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:8px;transition:all .2s ease}.nav-reading-card:hover{background:var(--card-background);border-color:var(--border-color);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.nav-reading-cover{border-radius:3px;box-shadow:0 1px 3px #0000001a;flex-shrink:0;height:42px;overflow:hidden;width:28px}.nav-reading-cover img{height:100%;object-fit:cover;width:100%}.nav-reading-info{display:flex;flex:1 1;flex-direction:column;justify-content:space-between;min-width:0}.nav-reading-title{-webkit-line-clamp:1;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:12px;font-weight:500;line-height:1.2;margin-bottom:4px;overflow:hidden}.nav-reading-progress{display:flex;flex-direction:column;gap:2px}.nav-reading-progress-text{color:var(--text-secondary);font-size:10px;font-weight:500}.nav-reading-progress-bar{background:var(--border-color);border-radius:2px;height:3px;overflow:hidden;position:relative}.nav-reading-progress-fill{background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:2px;height:100%;position:relative;transition:width .3s ease}.nav-reading-progress-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.nav-reading-progress-percentage{color:var(--text-secondary);font-size:10px;font-weight:600;text-align:right}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}:root[data-theme=dark] .nav-reading-card{background:#ffffff0d}:root[data-theme=dark] .nav-reading-card:hover{background:#ffffff14;box-shadow:0 2px 8px #0000004d}:root[data-theme=dark] .nav-reading-progress-bar{background:#ffffff1a}@media (max-width:768px){.nav-reading-section{padding:10px 14px}.nav-reading-card{padding:6px}.nav-reading-cover{height:36px;width:24px}.nav-reading-title{font-size:11px}.nav-reading-progress-percentage,.nav-reading-progress-text{font-size:9px}}.pages-container{align-items:center;display:flex;flex-direction:row;margin:auto;max-width:600px;overflow:scroll;padding:90px 0}.new-book-container{border:1px solid var(--border-color);border-radius:15px;margin:40px 0}.book-img-container,.new-book-container{align-items:center;background-color:var(--card-background);cursor:pointer;display:flex;flex-direction:column;padding:20px}.book-img-container{border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-sm);margin:10px;min-height:380px;transition:all .3s ease;width:220px}.book-img{background-color:var(--background-secondary);border-radius:8px;box-shadow:var(--shadow-md);height:260px;object-fit:cover;transition:all .3s ease;width:180px}.book-img-label{align-items:center;display:flex;flex-direction:column;margin:0;width:200px}.book-img-label .submit-btn{margin-top:10px;width:180px}.book-info{background-color:initial;margin-top:auto;padding:15px 10px;text-align:center;width:100%}.book-info h3{color:var(--text-primary);font-size:1.1rem;margin:10px 0 5px}.book-info h3,.book-info h4{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.book-info h4{color:var(--text-secondary);font-size:.9rem;font-weight:400;margin:0}.book-img-label>h3{color:#2c2c2c;font-size:15px;margin-top:5px}.book-img-label>h3,.book-img-label>h4{overflow:hidden;text-overflow:ellipsis;transition:color .3s ease;white-space:nowrap;width:100%}.book-img-label>h4{color:#666;font-size:12px}.book-img-container:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)}.book-img-container:hover .book-img{box-shadow:var(--shadow-lg);transform:scale(1.02)}.book-list-container{margin:20px 0;overflow:visible;position:relative;width:100%}.book-list{-ms-overflow-style:none;align-items:stretch;display:flex;flex-wrap:nowrap;gap:80px;margin:0 -20px;overflow-x:auto;padding:0 100px 0 50px;position:relative;scroll-behavior:smooth;scrollbar-width:none}.book-list::-webkit-scrollbar{display:none}.book-categories-horizontal{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin:8px 0}.category-tag-small{background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:20px;color:var(--accent-color);font-size:.75rem;padding:4px 12px;transition:all .3s ease;white-space:nowrap}.scroll-button{align-items:center;background:#fff;border:none;border-radius:50%;box-shadow:0 2px 8px #00000026;cursor:pointer;display:flex;height:44px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;width:44px;z-index:2}.scroll-button:hover{background:var(--accent-color);box-shadow:0 4px 12px #0003;color:#fff;transform:translateY(-50%) scale(1.1)}.scroll-button.left{left:0}.scroll-button.right{right:0}.book-cover-wrapper{background:var(--card-background);border:1px solid var(--border-color);border-radius:24px;box-shadow:var(--shadow-md)}.book-cover,.book-cover-wrapper{transition:all .5s cubic-bezier(.4,0,.2,1)}.book-cover{border-radius:16px}.book-info-wrapper{color:var(--text-primary)}.book-info-wrapper h1{background:linear-gradient(135deg,var(--text-primary) 0,var(--accent-color) 100%);font-weight:800;letter-spacing:-.02em}.book-author{color:var(--text-secondary);font-weight:500}.category-tag{background:var(--card-background);border:1px solid var(--border-color);color:var(--accent-color);font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)}.book-description{color:var(--text-secondary);margin:24px 0}.book-actions{flex-direction:column;max-width:400px}@media (max-width:480px){.book-info-wrapper h1{font-size:2rem}.book-stats,.character-grid{grid-template-columns:1fr}}.auth-page.new-book{background:linear-gradient(135deg,#f8fafc,#f1f5f9);margin-top:40px;min-height:calc(100vh - 40px)}.new-book .auth-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #6366f11a}.new-book .profile-avatar{background:linear-gradient(135deg,#6366f1,#818cf8);height:80px;margin-bottom:20px;overflow:visible;position:relative;width:80px}.new-book .profile-avatar:before{background:inherit;border-radius:50%;content:"";filter:blur(8px);inset:-3px;opacity:.5;position:absolute;z-index:-1}.new-book .auth-subtitle{color:#6366f1;font-weight:500}.new-book .form-field{margin-bottom:24px}.new-book .input-group{position:relative;transition:all .3s ease}.new-book .input-group:focus-within{transform:translateY(-2px)}.new-book .input-group input,.new-book .input-group select,.new-book .input-group textarea{background:#f8fafc;border:1px solid #e2e8f0;transition:all .3s ease}.new-book .input-group:focus-within input,.new-book .input-group:focus-within select,.new-book .input-group:focus-within textarea{background:#fff;border-color:#6366f1;box-shadow:0 0 0 4px #6366f11a}.new-book .file-upload-container{background:#f8fafc;border:2px dashed #e2e8f0;border-radius:12px;cursor:pointer;padding:24px;text-align:center;transition:all .3s ease}.new-book .file-upload-container.dragging,.new-book .file-upload-container:hover{background:#fff;border-color:#6366f1}.new-book .file-upload-container.dragging{background:#f1f5f9;transform:scale(1.02)}.new-book .upload-placeholder{align-items:center;color:#64748b;display:flex;flex-direction:column;gap:12px;padding:24px}.new-book .upload-placeholder svg{stroke-width:1.5;color:#6366f1}.new-book .upload-placeholder span{font-size:16px;font-weight:500}.new-book .upload-placeholder .upload-subtitle{color:#94a3b8;font-size:14px;font-weight:400}.new-book .file-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#1e293b;cursor:pointer;display:block;font-size:15px;height:48px;padding:0 16px 0 48px;transition:all .2s ease;width:100%}.new-book .file-input:hover{background:#fff;border-color:#cbd5e1}.new-book .image-preview-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;margin-top:20px;pointer-events:all}.new-book .image-preview{border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;max-width:250px;transition:transform .3s ease}.new-book .clear-file{align-items:center;background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;pointer-events:all;transition:all .3s ease}.new-book .clear-file:hover{background:#dc2626;transform:translateY(-1px)}.new-book .clear-file:active{transform:translateY(0)}.new-book .helper-text{align-items:center;color:#64748b;display:flex;font-size:13px;gap:6px;margin-top:8px}.new-book .helper-text svg{color:#6366f1;height:14px;width:14px}.new-book .auth-buttons{margin-top:32px}.new-book .auth-button{background:#6366f1;font-weight:500;height:48px;letter-spacing:.3px;transition:all .3s ease}.new-book .auth-button:hover{background:#4f46e5;box-shadow:0 4px 12px #6366f133;transform:translateY(-2px)}.new-book .auth-button.secondary{background:#f1f5f9;color:#475569}.new-book .auth-button.secondary:hover{background:#e2e8f0;color:#1e293b}.book-cover-wrapper{aspect-ratio:2/3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:16px;box-shadow:0 25px 50px -12px #00000080;margin:0 auto;max-width:400px;overflow:hidden;padding:20px;transition:transform .3s ease;width:100%}.book-cover{border-radius:8px;height:100%;object-fit:cover;width:100%}.book-info-wrapper{color:#fff;padding:20px 0}.book-info-wrapper h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#e0e7ff);-webkit-background-clip:text;font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1.2;margin:0 0 16px}.book-author{color:#94a3b8;font-size:1.25rem;margin:0 0 24px}.book-categories{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.category-tag{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1a;border:1px solid #ffffff1a;border-radius:20px;color:#e0e7ff;font-size:14px;padding:8px 16px;transition:all .2s ease}.book-description{color:#cbd5e1;font-size:1.1rem;line-height:1.7;margin:0 0 32px;max-width:800px}.book-stats{grid-gap:20px;background:var(--card-background);border:1px solid var(--border-color);border-radius:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);padding:24px}.stat-item{align-items:center;color:var(--text-secondary);display:flex;gap:12px}.stat-item svg{stroke-width:1.5;color:var(--accent-color)}.book-actions{display:flex;flex-direction:row;gap:12px;margin-top:32px;max-width:600px}.book-actions button{align-items:center;border:none;border-radius:16px;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:12px;justify-content:center;letter-spacing:.5px;padding:16px 32px;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.book-actions .primary-action{background:var(--accent-color);color:#fff}.book-actions .primary-action:hover{background:var(--accent-color-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.book-actions .primary-action:disabled{background:var(--text-secondary);box-shadow:none;cursor:not-allowed;transform:none}.book-actions .secondary-action{background:var(--card-background);border:1px solid var(--border-color);color:var(--text-primary)}.book-actions .secondary-action:hover{background:var(--hover-background);border-color:var(--accent-color);transform:translateY(-2px)}.character-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));padding:20px}.character-card{background:var(--card-background);border-radius:20px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.character-card-content{padding:20px}.character-card-content h3{color:var(--text-primary);font-size:1.25rem;margin:0 0 10px}.character-intro{color:var(--text-secondary);line-height:1.6;margin:0 0 20px}.chat-button{align-items:center;background:var(--accent-color);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:12px 24px;transition:all .3s ease;width:100%}.chat-button:hover{background:var(--accent-color-hover);transform:translateY(-2px)}@media (max-width:768px){.book-cover-wrapper{max-width:280px}.book-categories{justify-content:center}.book-stats{grid-template-columns:repeat(2,1fr)}.book-actions{margin:32px auto 0}}@media (max-width:480px){.book-hero{padding:40px 16px}.book-info-wrapper h1{font-size:2rem}.book-stats,.character-grid{grid-template-columns:1fr}}.book-content{border-radius:8px;color:var(--text-primary);font-family:Georgia,serif;font-size:18px;line-height:1.6;margin:0 auto;max-width:800px;min-height:70vh;padding:20px 40px;text-align:left;touch-action:manipulation;transition:background-color .3s,color .3s;-webkit-user-select:none;user-select:none;z-index:1}.book-content.dark-mode{color:#e0e0e0}.book-content p{margin:0 0 1.5em;text-align:justify;text-indent:1em}.book-content p:first-of-type{text-indent:0}.book-page-container{-webkit-touch-callout:none;-webkit-overflow-scrolling:touch;align-items:center;background-color:var(--background-secondary);display:flex;flex-direction:column;overflow-y:auto;padding-bottom:75px;padding-top:25px;position:relative;touch-action:manipulation;transition:background-color .3s;-webkit-user-select:none;user-select:none}.book-page-container.dark-mode{background-color:#121212}.book-navigation{display:none}.page-number{background-color:var(--card-background);border-radius:20px;box-shadow:var(--shadow-sm);color:var(--text-secondary);font-family:Georgia,serif;font-style:italic;margin-bottom:10px;padding:8px 16px;transition:color .3s}.page-number.dark-mode{background-color:#1a1a1af2;box-shadow:0 2px 8px #0000004d;color:#888}.reader-controls{bottom:20px;display:flex;gap:10px;position:fixed;right:20px;z-index:1000}.font-size-controls{display:flex;gap:5px}.font-size-btn{background-color:var(--card-background);border:none;border-radius:8px;border-radius:20px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;flex:1 1;font-weight:700;padding:8px 12px;transition:background-color .3s,opacity .3s,color .3s}.font-size-btn:disabled{cursor:not-allowed;opacity:.5}.font-size-btn.dark-mode{background-color:#333;box-shadow:0 2px 8px #0006;color:#fff}.font-size-btn.dark-mode:disabled{background-color:#333;opacity:.5}.dark-mode-toggle{align-items:center;background-color:var(--card-background);border:none;border-radius:20px;bottom:120px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;gap:8px;padding:8px 16px;position:fixed;right:20px;transition:background-color .3s;z-index:1000}.dark-mode-toggle.dark-mode{background-color:#333;box-shadow:0 2px 8px #0006;color:#fff}.app-header{transition:background-color .3s,color .3s}.app-header.dark-mode{background-color:#1a1a1a;box-shadow:0 2px 4px #0000004d}.header-back-button{background:none;border:none;border-radius:50%;color:var(--text-primary);cursor:pointer;padding:8px;transition:background-color .3s}.header-back-button:hover{background-color:var(--hover-background)}.header-back-button.dark-mode:hover{background-color:#ffffff1a}.book-header-title{color:var(--text-primary);font-size:1.2rem;font-weight:500;text-decoration:none;transition:color .3s}.book-header-title.dark-mode{color:#fff}.book-header-title:hover{opacity:.8}.submit-btn{background-color:var(--card-background);border:none;border-radius:20px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;font-weight:500;padding:8px 24px;transition:all .3s ease}.submit-btn:hover{background-color:var(--hover-background);box-shadow:var(--shadow-md);transform:translateY(-1px)}.dark-mode .submit-btn,.submit-btn.dark-mode{background-color:#333;box-shadow:0 2px 8px #0000004d;color:#fff}.dark-mode .submit-btn:hover,.submit-btn.dark-mode:hover{background-color:#444;box-shadow:0 4px 12px #0006}.spinner-container{align-items:center;background-color:var(--background-primary);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0}.spinner-container.dark-mode{background-color:#121212}.spinner{animation:spin 1s linear infinite;border-top:5px solid var(--background-secondary);border:5px solid var(--background-secondary);border-radius:50%;border-top-color:var(--accent-color);height:50px;transition:border-color .3s;width:50px}.spinner.dark-mode{border:5px solid #333;border-top-color:#3498db}.character-list-modal{background:var(--card-background);border:1px solid var(--border-color);border-radius:16px;box-shadow:var(--shadow-lg);color:var(--text-primary);left:50%;max-height:80vh;max-width:600px;overflow-y:auto;padding:24px;position:fixed;top:50%;transform:translate(-50%,-50%);transition:all .3s ease;width:90%;z-index:1002}.character-list-modal.dark-mode{background:#1a1a1a;box-shadow:0 4px 20px #ffffff1a;color:#e0e0e0}.character-list-modal h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:20px}.character-list-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.character-card{background:var(--background-primary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;max-width:400px;position:relative;transition:all .2s ease}.character-card:hover{transform:translateY(-8px)}.character-card.dark-mode{background:#2c2c2c}.character-card.dark-mode:hover{box-shadow:0 4px 12px #ffffff1a}.character-card.present-current{background:#22c55e0d;border-color:#22c55e}.character-card.present-previous{background:#6366f10d;border-color:#6366f1}.character-card-info{display:flex;flex:1 1;flex-direction:column;gap:4px;justify-content:flex-end;padding:8px}.character-card-info h3{color:var(--text-primary);font-size:1rem;font-weight:500;margin:0}.character-list-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;padding:8px;position:absolute;right:16px;top:16px;transition:background-color .2s ease}.character-list-close:hover{background-color:var(--hover-background)}.character-list-close.dark-mode:hover{background-color:#ffffff1a}.characters-button{align-items:center;background-color:var(--card-background);border:none;border-radius:20px;bottom:20px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;gap:8px;left:20px;padding:8px 16px;position:fixed;transition:all .3s ease;z-index:1000}.characters-button.dark-mode{background-color:#333;box-shadow:0 2px 8px #0006;color:#fff}.characters-button:hover{background-color:var(--hover-background);box-shadow:var(--shadow-md);transform:translateY(-1px)}.characters-button.dark-mode:hover{box-shadow:0 4px 12px #00000080}.character-presence{background:#0000000d;border-radius:4px;color:var(--text-secondary);font-size:12px;margin-top:4px;padding:4px 8px}.present-current .character-presence{background:#22c55e1a;color:#16a34a}.present-previous .character-presence{background:#6366f11a;color:#4f46e5}.character-context-hint{align-items:center;color:#475569;display:flex;font-size:11px;gap:4px;margin-top:4px}.character-context-hint.inactive{color:#94a3b8;font-style:italic}.present-current .character-context-hint{color:#15803d}.present-previous .character-context-hint{color:#4338ca}.characters-button.has-characters{animation:pulse 2.5s infinite}.navigation-buttons{align-items:center;display:flex;flex-direction:column;gap:10px;margin:20px 0;padding:0 20px}.navigation-buttons-row{display:flex;gap:20px;justify-content:center}.nav-btn{align-items:center;background-color:var(--card-background);border:none;border-radius:24px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;font-weight:500;gap:8px;padding:12px 24px;transition:all .3s ease}.nav-btn:hover{background-color:var(--hover-background);box-shadow:var(--shadow-md);transform:translateY(-2px)}.nav-btn.dark-mode{background-color:#333;box-shadow:0 2px 8px #0006;color:#fff}.nav-btn.dark-mode:hover{background-color:#444;box-shadow:0 4px 12px #00000080}.ai-mode-btn{align-items:center;background-color:var(--card-background);border:none;border-radius:20px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;padding:8px 12px;transition:all .3s ease}.ai-mode-btn.active{background-color:var(--accent-color);color:#fff}.ai-mode-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.ai-mode-btn.dark-mode{background-color:#333;color:#fff}.ai-mode-btn.dark-mode.active{background-color:var(--accent-color)}.paragraph-container{align-items:flex-start;display:flex;gap:10px;position:relative}.paragraph-container p{flex:1 1;z-index:-1}.paragraph-controls{bottom:0;display:flex;flex-direction:column;gap:5px;opacity:1;position:absolute;right:0;transform:translateY(-50%);transition:opacity .2s ease}.paragraph-controls.disabled{cursor:not-allowed;opacity:.5}.paragraph-controls.disabled .generate-btn{background-color:var(--background-secondary);color:var(--text-secondary);cursor:not-allowed}.paragraph-controls.disabled .generate-btn:hover{box-shadow:var(--shadow-sm);transform:none}.paragraph-container:hover .paragraph-controls{opacity:1}.generate-btn,.image-btn,.regenerate-btn{align-items:center;background-color:var(--card-background);border:none;border-radius:50%;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;padding:6px;position:relative;transition:all .2s ease}.generate-btn.disabled{background-color:var(--background-secondary);color:var(--text-secondary);cursor:not-allowed;opacity:.5}.generate-btn.disabled:hover{box-shadow:var(--shadow-sm);transform:none}.image-btn{background-color:var(--accent-color);color:#fff;position:relative;z-index:1001}.image-btn:before{bottom:0;left:0;right:0;top:0;transition:opacity .3s ease;z-index:1999}.image-btn:after,.image-btn:before{content:"";opacity:0;pointer-events:none;position:fixed;visibility:hidden}.image-btn:after{background-image:var(--thumbnail-url);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:16px;box-shadow:var(--shadow-lg);height:min(80vh,500px);right:-200px;top:50%;transform:translate(-50%,-50%);transition:all .3s ease;width:min(80vh,500px);z-index:1000000}@media (hover:hover){.image-btn:hover:after,.image-btn:hover:before{opacity:1;visibility:visible}}@media (hover:none){.image-btn:after{height:90vw;max-height:90vh;max-width:90vh;right:50%;transform:translateY(-50%);width:90vw}.image-btn.active:after,.image-btn.active:before{opacity:1;visibility:visible}}.generate-btn:hover,.image-btn:hover,.regenerate-btn:hover{box-shadow:var(--shadow-md)}.generating-indicator{align-items:center;display:flex;justify-content:center;padding:6px}.spin{animation:spin 1s linear infinite}.image-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.image-modal{background:var(--card-background);border:1px solid var(--border-color);border-radius:20px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:20px;max-height:90vh;max-width:min(90vw,800px);overflow:auto;padding:24px;position:relative}.image-modal img{border-radius:12px;box-shadow:var(--shadow-md);max-height:70vh;max-width:100%;object-fit:contain}.image-caption{border-radius:8px;color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0;padding:15px}.image-modal .image-caption{border-radius:0;padding:10px}.modal-close{background:none;background-color:var(--background-secondary);border-radius:50%;color:var(--text-primary);padding:8px;position:absolute;right:15px;top:15px}.modal-close:hover{background-color:var(--hover-background);transform:scale(1.1)}.regenerate-btn{align-items:center;background-color:var(--accent-color);border-radius:20px;color:#fff;display:flex;font-weight:500;gap:10px;margin:0 auto;padding:12px 20px;width:-webkit-fit-content;width:fit-content}.regenerate-btn:hover{transform:translateY(-2px)}.gallery-toggle{align-items:center;background-color:var(--card-background);border:none;border-radius:20px;bottom:20px;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;gap:8px;padding:8px 16px;position:fixed;right:170px;transition:all .3s ease;z-index:1000}.gallery-toggle:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.gallery-modal{background:var(--card-background);border-radius:16px;left:50%;max-height:80vh;max-width:800px;overflow-y:auto;padding:30px;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:2000}.gallery-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));padding:20px 0}.gallery-item{border-radius:8px;box-shadow:var(--shadow-sm);position:relative;transition:all .2s ease}.gallery-item:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.gallery-item img{aspect-ratio:1;object-fit:cover;width:100%}.gallery-item-info{background:#000000b3;bottom:0;color:#fff;font-size:12px;left:0;opacity:0;padding:10px;position:absolute;right:0;transition:opacity .2s ease}.gallery-item:hover .gallery-item-info{opacity:1}.menu-toggle{align-items:center;background-color:var(--card-background);border:none;border-radius:50%;bottom:20px;box-shadow:var(--shadow-md);cursor:pointer;display:flex;height:36px;justify-content:center;position:fixed;right:20px;transition:all .3s ease;width:36px;z-index:999}.menu-toggle.dark-mode{background-color:#333}.menu-toggle:hover{transform:scale(1.1)}.menu-toggle.active{background-color:var(--accent-color)}.character-bubble{align-items:center;bottom:20px;display:flex;gap:8px;height:40px;position:fixed;right:70px;z-index:999}.character-bubble-image{border:2px solid var(--card-background);border-radius:50%;box-shadow:var(--shadow-md);cursor:pointer;height:40px;object-fit:cover;position:relative;transition:all .3s ease;width:40px;z-index:1090}.character-bubble-image:hover{border-color:var(--accent-color);box-shadow:0 0 15px #22c55e80;transform:translateY(-2px)}.character-bubble-image:after{background-color:var(--card-background);border-radius:6px;box-shadow:var(--shadow-md);color:var(--text-primary);content:attr(data-tooltip);font-size:12px;margin-bottom:8px;padding:6px 12px;white-space:nowrap}.character-bubble-image:after,.character-bubble-image:before{bottom:100%;left:50%;opacity:0;position:absolute;transform:translateX(-50%);transition:all .2s ease;visibility:hidden;z-index:1100}.character-bubble-image:before{border:6px solid #0000;border-top:6px solid var(--card-background);content:"";margin-bottom:2px}.character-bubble-image:hover:after,.character-bubble-image:hover:before{opacity:1;visibility:visible}.character-bubble-image.dark-mode{border-color:#333}.character-bubble-image.dark-mode:after{background-color:#1a1a1a;box-shadow:0 2px 8px #0000004d;color:#fff}.character-bubble-image.dark-mode:before{border-top-color:#1a1a1a}.menu-toggle.has-characters:before{animation:characterGlow 2s ease-in-out infinite;background:radial-gradient(circle,#22c55e33 0,#22c55e00 70%);border-radius:50%;bottom:-8px;content:"";left:-8px;position:absolute;right:-8px;top:-8px;z-index:-1}.menu-toggle.dark-mode.has-characters:before{background:radial-gradient(circle,#22c55e4d 0,#22c55e00 70%)}@keyframes characterGlow{0%{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}to{opacity:.5;transform:scale(1)}}.hamburger-icon{display:flex;flex-direction:column;height:14px;justify-content:space-between;position:relative;width:20px}.hamburger-icon span{background-color:var(--text-primary);display:block;height:2px;transition:all .3s ease;width:100%}.menu-toggle.active .hamburger-icon span{background-color:#fff}.menu-toggle.active .hamburger-icon span:first-child{transform:translateY(6px) rotate(45deg)}.menu-toggle.active .hamburger-icon span:nth-child(2){opacity:0}.menu-toggle.active .hamburger-icon span:last-child{transform:translateY(-6px) rotate(-45deg)}.reader-menu{background-color:var(--card-background);border-radius:12px;bottom:70px;box-shadow:var(--shadow-lg);margin-right:20px;max-height:80vh;overflow-y:auto;padding:16px;position:fixed;right:-305px;transition:right .3s ease;width:250px;z-index:1050}.reader-menu.dark-mode{background-color:#1a1a1a}.reader-menu.open{right:0}.menu-overlay{background-color:#00000080;bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:all .3s ease;visibility:hidden;z-index:1040}.menu-overlay.visible{opacity:1;visibility:visible}.menu-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:8px}.menu-header h3{color:var(--text-primary);font-size:1.1rem;margin:0}.menu-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;padding:5px;transition:all .2s ease}.menu-close:hover{background-color:var(--hover-background)}.menu-section{margin-bottom:16px}.menu-section h4{color:var(--text-primary);font-size:.9rem;font-weight:500;margin:0 0 8px}.menu-btn{align-items:center;background-color:var(--background-secondary);border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;gap:8px;justify-content:center;margin-bottom:6px;padding:10px;transition:all .2s ease;width:100%}.menu-btn:hover{background-color:var(--hover-background);transform:translateY(-1px)}.menu-btn.active{background-color:var(--accent-color);color:#fff}.menu-btn.has-characters{overflow:hidden;position:relative}.menu-btn.has-characters:after{background-color:var(--accent-color);border-radius:50%;content:"";height:8px;margin:8px;position:absolute;right:0;top:0;width:8px}.menu-btn.theme-btn{background-color:var(--background-primary);border:1px solid var(--border-color);font-size:14px;font-weight:500;padding:12px}.menu-btn.theme-btn.active{background-color:var(--background-secondary)}.menu-btn.active svg{animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.menu-btn svg{transition:transform .2s ease}.menu-btn:hover svg{transform:scale(1.1)}.menu-btn:disabled{cursor:not-allowed;opacity:.7}.menu-btn:disabled:hover{background-color:var(--background-secondary);transform:none}.menu-btn .spin{animation:spin 1s linear infinite}.characters-button,.reader-controls{display:none}.view-images-btn{align-items:center;background-color:var(--card-background);border:none;border-radius:50%;box-shadow:var(--shadow-sm);color:var(--text-primary);cursor:pointer;display:flex;justify-content:center;opacity:1;padding:8px;transition:all .2s ease}.view-images-btn:hover{background-color:var(--hover-background);box-shadow:var(--shadow-md);opacity:1;transform:translateY(-1px)}.view-images-btn.dark-mode{background-color:#2a2a2a;box-shadow:0 2px 4px #0000004d;color:#e0e0e0}.view-images-btn.dark-mode:hover{background-color:#333;box-shadow:0 4px 8px #0006}.paragraph-container:hover .view-images-btn{opacity:1}.generate-toggle-btn{align-items:center;background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.95em;font-weight:500;gap:8px;justify-content:center;margin-top:8px;padding:12px;transition:all .2s ease;width:100%}.generate-toggle-btn:hover{background-color:var(--hover-background);transform:translateY(-1px)}.generate-toggle-btn.active{background-color:var(--accent-color);border-color:#0000;color:#fff}.generate-toggle-btn.dark-mode{background-color:#2a2a2a;border-color:#ffffff1a}.generate-toggle-btn.dark-mode:hover{background-color:#333}.generate-toggle-btn.dark-mode.active{background-color:var(--accent-color)}.style-selector{display:flex;flex-direction:column;gap:16px}.custom-style-input{margin-top:0}.custom-style-input label,.preset-styles label{color:var(--text-secondary);display:block;font-size:.9em;margin-bottom:8px}.custom-style-input input{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.95em;padding:12px;transition:all .2s ease;width:96%}.custom-style-input input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #007bff1a;outline:none}.custom-style-input input::placeholder{color:var(--text-secondary);opacity:.7}.preset-styles select{background-color:var(--background-primary);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-primary);cursor:pointer;font-size:.9em;padding:10px;transition:all .2s ease;width:100%}.preset-styles select:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #007bff1a;outline:none}.custom-style-input.dark-mode label,.preset-styles.dark-mode label{color:#bbb}.custom-style-input.dark-mode input,.preset-styles.dark-mode select{background-color:#2a2a2a;border-color:#ffffff1a;color:#e0e0e0}.custom-style-input.dark-mode input:focus,.preset-styles.dark-mode select:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #007bff33}.custom-style-input.dark-mode input::placeholder{color:#888}.generate-btn{margin-top:20px}.generation-overlay{align-items:center;background:#000000b3;border-radius:8px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}.generation-spinner{align-items:center;color:#fff;display:flex;flex-direction:column;gap:12px}.generation-spinner .spin{animation:spin 1s linear infinite}.generation-spinner span{font-size:16px;font-weight:500}.paragraph-modal-content{position:relative}@media screen and (max-width:768px){.book-content{font-size:14px;line-height:1.5;padding:15px 20px}.image-modal{width:100vw}.book-page-container{overflow-y:auto!important;touch-action:manipulation!important}.book-page-container,body{-webkit-overflow-scrolling:touch!important}}.pages-grid{margin:auto;width:90%}.page-card{background:var(--background-secondary);border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;color:var(--text-primary);display:flex;flex-direction:column;gap:16px;overflow:hidden;padding:24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.page-card:hover{box-shadow:0 12px 24px -8px #00000026;transform:translateY(-4px)}.page-card:after{background:linear-gradient(135deg,#6366f1,#818cf8);content:"";height:4px;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%}.page-card:hover:after{opacity:1}.page-number{background:#e0e7ff;border-radius:8px;color:#6366f1;font-size:1.1rem;font-weight:600;width:-webkit-fit-content;width:fit-content}.page-content{color:var(--text-primary);display:flex;flex:1 1;flex-direction:column;gap:16px}.page-content textarea{background:#0000;border:none;color:var(--text-primary);font-size:1rem;height:1200px;outline:none}.page-text{font-size:.95rem;line-height:1.6}.page-image{aspect-ratio:16/9;background:#f1f5f9;border-radius:8px;overflow:hidden;width:100%}.page-image img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.page-card:hover .page-image img{transform:scale(1.05)}.page-actions{border-top:1px solid #e2e8f0;display:flex;gap:8px;margin-top:auto;padding-top:16px}.page-action{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:8px 16px;transition:all .2s ease}.page-action.edit{background:#e0e7ff;color:#4f46e5}.page-action.edit:hover{background:#c7d2fe;transform:translateY(-1px)}.page-action.delete{background:#fee2e2;color:#ef4444}.page-action.delete:hover{background:#fecaca;transform:translateY(-1px)}@media (max-width:768px){.pages-grid{gap:16px;grid-template-columns:1fr}.page-card{padding:20px}.page-number{font-size:1rem}.page-text{-webkit-line-clamp:4;font-size:.9rem}.page-action{font-size:13px;padding:6px 12px}}.page-form-section{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000000d;margin:32px auto;max-width:1200px;padding:40px}.page-form-header{align-items:center;display:flex;gap:16px;margin-bottom:32px}.page-form-icon{align-items:center;background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:12px;color:#fff;display:flex;height:48px;justify-content:center;width:48px}.page-form-title{color:#1f2937;font-size:24px;font-weight:600;margin:0}.page-form-subtitle{color:#6b7280;font-size:16px;margin:4px 0 0}.page-form{grid-gap:24px;display:grid;gap:24px}.page-form-group{display:flex;flex-direction:column;gap:8px}.page-form-group label{color:#374151;font-size:14px;font-weight:500}.page-form-input{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.page-form-input:focus-within{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.page-form-input input,.page-form-input textarea{background:#0000;border:none;color:#1f2937;flex:1 1;font-size:15px;outline:none;padding:0}.page-form-input textarea{line-height:1.5;min-height:120px;resize:vertical}.page-form-input input::placeholder,.page-form-input textarea::placeholder{color:#9ca3af}.page-form-file{cursor:pointer;overflow:hidden;position:relative}.page-form-file input[type=file]{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.page-form-file-label{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.page-form-file:hover .page-form-file-label{background:#f3f4f6;border-color:#d1d5db}.page-form-preview{background:#f9fafb;border-radius:8px;margin-top:16px;overflow:hidden}.page-form-preview img{display:block;height:auto;width:100%}.page-form-actions{display:flex;gap:12px;margin-top:32px}.page-form-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.page-form-button.primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff}.page-form-button.primary:hover{box-shadow:0 4px 12px #4f46e533;transform:translateY(-1px)}.page-form-button.secondary{background:#f3f4f6;color:#4b5563}.page-form-button.secondary:hover{background:#e5e7eb}@media (max-width:768px){.page-form-section{margin:16px;padding:24px}.page-form-actions{flex-direction:column}.page-form-button{justify-content:center;width:100%}}.page-form-wrapper{margin-bottom:64px;padding-top:32px;scroll-margin-top:100px}.featured-hero{display:flex;flex-direction:column;height:auto;min-height:700px;overflow:hidden;position:relative;transition:all .3s ease;width:100%}.featured-hero:before{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(180deg,#1a1a1ae6 0,#1a1a1a00);background:linear-gradient(to bottom,var(--nav-bg-color,#1a1a1ae6) 0,var(--nav-bg-color-transparent,#1a1a1a00) 100%);content:"";height:200px;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:2}.featured-hero.dark{background:#1a1a1a;color:#fff}.featured-hero.light{background:#f8fafc;color:#1e293b}.featured-hero.transitioning{opacity:.5}.featured-hero-background{z-index:1}.featured-hero-backdrop,.featured-hero-background{height:100%;left:0;position:absolute;top:0;width:100%}.featured-hero-backdrop{background-position:50%;background-size:cover;filter:blur(50px);opacity:.15;transform:scale(1.1);transition:all .5s ease-in-out}.featured-hero-content{align-items:center;display:flex;flex:1 1;gap:60px;margin:0 auto;max-width:1400px;padding:60px;position:relative;transition:opacity .3s ease-in-out;z-index:2}.featured-hero-book{align-items:flex-start;align-self:flex-start;display:flex;flex:0 0 auto;max-width:500px;position:-webkit-sticky;position:sticky;top:60px;width:40%}.featured-hero-image{border-radius:12px;box-shadow:0 25px 50px -12px #00000080;cursor:pointer;height:auto;max-height:70vh;min-width:0;min-width:auto;object-fit:contain;transition:all .4s cubic-bezier(.4,0,.2,1);width:100%}.featured-hero-image:hover{box-shadow:0 30px 60px -15px #000000b3;transform:translateY(-10px) scale(1.02)}.featured-hero-details{display:flex;flex:1 1;flex-direction:column;gap:24px;max-height:none;max-width:800px;overflow:visible;padding-right:20px}.featured-hero-details::-webkit-scrollbar{width:8px}.featured-hero-details::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.featured-hero-details::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.featured-hero-details::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.featured-hero-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#e0e7ff);-webkit-background-clip:text;font-size:3.5rem;font-weight:700;line-height:1.2;margin-bottom:8px;margin-top:0}.featured-hero.light .featured-hero-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#1e293b,#334155);-webkit-background-clip:text}.featured-hero-header h2{font-size:1.8rem;font-weight:400;margin-bottom:16px;opacity:.8}.featured-hero-tagline{font-size:1.4rem;font-style:italic;line-height:1.6;opacity:.9}.featured-hero-metadata{display:flex;flex-wrap:wrap;gap:16px}.hero-metadata-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:12px;display:flex;flex-direction:column;gap:4px;padding:12px 20px}.featured-hero.light .hero-metadata-item{background:#0000000d}.metadata-label{font-size:.9rem;letter-spacing:.05em;opacity:.7;text-transform:uppercase}.metadata-value{font-size:1.1rem;font-weight:600}.featured-hero-description-wrapper{flex:1 1;overflow:hidden;position:relative;will-change:auto}.featured-hero-description{font-size:1.2rem;line-height:1.7;margin:0;max-height:6.8em;opacity:.9;overflow:hidden;transform:translateZ(0);transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}.featured-hero-description-wrapper.expanded .featured-hero-description{max-height:1000px}.description-toggle{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-size:1rem;gap:6px;opacity:.8;padding:8px 0;transition:all .2s ease}.description-toggle:hover{opacity:1}.featured-hero.light .description-toggle{color:#1e293b}.featured-hero-categories{display:flex;flex-wrap:wrap;gap:12px}.hero-category-tag{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:20px;font-size:.95rem;padding:8px 16px;transition:all .3s ease}.featured-hero.light .hero-category-tag{background:#0000000d}.hero-category-tag:hover{background:#fff3;transform:translateY(-2px)}.featured-hero.light .hero-category-tag:hover{background:#0000001a}.featured-hero-actions{display:flex;gap:16px;margin-top:8px}.hero-primary-action,.hero-secondary-action{align-items:center;border:none;border-radius:30px;cursor:pointer;display:flex;font-size:1.1rem;font-weight:500;gap:12px;padding:16px 32px;transition:all .3s cubic-bezier(.4,0,.2,1)}.hero-primary-action{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff}.hero-primary-action:hover{box-shadow:0 10px 25px -5px #6366f180;transform:translateY(-2px)}.hero-secondary-action{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;color:#fff}.featured-hero.light .hero-secondary-action{background:#0000000d;color:#1e293b}.hero-secondary-action:hover{background:#fff3;transform:translateY(-2px)}.featured-hero.light .hero-secondary-action:hover{background:#0000001a}.featured-hero-navigation{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(0deg,#1a1a1ae6 0,#1a1a1a00);background:linear-gradient(to top,var(--nav-bg-color,#1a1a1ae6) 0,var(--nav-bg-color-transparent,#1a1a1a00) 100%);bottom:0;display:flex;gap:24px;justify-content:center;left:0;padding:20px;position:-webkit-sticky;position:sticky;z-index:3}.featured-hero.dark{--nav-bg-color:#1a1a1ae6;--nav-bg-color-transparent:#1a1a1a00}.featured-hero.light{--nav-bg-color:#f8fafce6;--nav-bg-color-transparent:#f8fafc00}.hero-nav-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;transition:all .3s ease;width:48px}.featured-hero.light .hero-nav-button{background:#0000000d;color:#1e293b}.hero-nav-button:hover:not(:disabled){background:#fff3;transform:scale(1.1)}.featured-hero.light .hero-nav-button:hover:not(:disabled){background:#0000001a}.hero-nav-button:disabled{cursor:not-allowed;opacity:.5}.featured-hero-indicators{display:flex;gap:8px}.hero-indicator{background:#ffffff4d;border:none;border-radius:50%;cursor:pointer;height:8px;padding:0;transition:all .3s ease;width:8px}.featured-hero.light .hero-indicator{background:#0003}.hero-indicator.active{background:#fff;transform:scale(1.2)}.featured-hero.light .hero-indicator.active{background:#1e293b}.hero-indicator:hover:not(.active){background:#ffffff80}.featured-hero.light .hero-indicator:hover:not(.active){background:#0000004d}@media (max-width:1024px){.featured-hero{height:auto;min-height:auto;padding:40px 0}.featured-hero-content{flex-direction:column;gap:40px;padding:40px}.featured-hero-book{display:flex;justify-content:center;max-width:none;position:relative;top:0;width:100%}.featured-hero-image{max-width:300px;width:auto}.featured-hero-details{align-items:center;padding-right:0}.featured-hero-header h1{font-size:2.8rem;text-align:center}.featured-hero-header h2{font-size:1.6rem;text-align:center}.description-toggle,.featured-hero-description{justify-content:center;margin:0 auto;text-align:center}.featured-hero-actions,.featured-hero-categories,.featured-hero-metadata{justify-content:center}}@media (max-width:768px){.featured-hero{padding:0}.featured-hero-content{gap:30px;padding:20px}.featured-hero-image{max-width:250px}.featured-hero-details{text-align:center}.featured-hero-header h1{font-size:2.4rem}.featured-hero-header h2{font-size:1.4rem}.featured-hero-actions{align-items:stretch;flex-direction:column}.hero-primary-action,.hero-secondary-action{justify-content:center}}.file-upload-container{display:flex;flex-direction:column;gap:12px}.file-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#1e293b;cursor:pointer;font-size:15px;height:48px;padding:0 16px 0 48px;transition:all .2s ease;width:100%}.file-input:hover{background:#fff;border-color:#cbd5e1}.selected-file{align-items:center;background:#f1f5f9;border-radius:8px;color:#475569;display:flex;font-size:14px;gap:8px;padding:8px 12px}.selected-file svg{color:#6366f1;flex-shrink:0}.selected-file span{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clear-file{background:none;border:none;border-radius:50%;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;padding:4px;transition:all .2s ease}.clear-file:hover{background:#fee2e2;color:#ef4444}.helper-text{color:#64748b;font-size:13px;line-height:1.5;margin-top:4px}.image-preview-container{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;gap:16px;padding:24px}.search-books-container{margin:0 auto}.search-header{background:var(--background-primary);margin-bottom:20px;padding:20px 0;position:-webkit-sticky;position:sticky;top:50px;z-index:100}.search-input-container{align-items:center;border-radius:8px;display:flex;gap:12px;margin:0 auto;max-width:400px;padding:12px 16px;transition:all .2s ease}.search-input-container.dark{background:var(--card-background)}.search-input-container.light{background:var(--background-secondary);border:1px solid var(--border-color)}.search-input-container svg{color:var(--text-secondary)}.search-input{background:none;border:none;color:var(--text-primary);font-size:16px;padding:3px;width:100%}.search-input::placeholder{color:var(--text-secondary)}.search-input:focus{outline:none}.books-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));padding:20px}.book-card{border-radius:12px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.book-card.dark{background:var(--card-background);box-shadow:var(--shadow-sm)}.book-card.light{background:var(--background-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.book-card:hover{transform:translateY(-4px)}.book-card.dark:hover{box-shadow:var(--shadow-lg)}.book-card.light:hover{border-color:var(--accent-color);box-shadow:var(--shadow-md)}.book-card a{color:inherit;text-decoration:none}.book-image{aspect-ratio:2/3;background:var(--background-secondary);overflow:hidden}.book-image img{height:100%;object-fit:cover;width:100%}.book-info{padding:12px}.book-info h3{font-size:16px;font-weight:600;margin:0 0 4px}.book-info.dark h3,.book-info.light h3{color:var(--text-primary)}.book-info p{color:var(--text-secondary);font-size:14px;margin:0}.error-message{margin:20px auto;max-width:600px;padding:12px 16px;text-align:center}.error-message.dark{background:#f44;color:#fff}.error-message.light{background:#fee2e2;border:1px solid #fecaca;color:#dc2626}.no-results{color:var(--text-secondary);font-size:16px;grid-column:1/-1;margin:auto;padding:40px;width:70%}.loading-spinner{margin:20px auto}@media (max-width:768px){.books-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.book-upload-container{background:var(--background-primary);color:var(--text-primary);margin:2rem auto;max-width:800px;padding:2rem}.header-section{margin-bottom:3rem;text-align:center}.header-section h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--text-primary) 0,var(--accent-color) 100%);-webkit-background-clip:text;font-size:3rem;font-weight:800;letter-spacing:-.5px;margin-bottom:1rem}.header-divider{background:var(--accent-color);border-radius:2px;height:4px;margin:1.5rem auto;width:80px}.header-subtitle{color:var(--text-secondary);font-size:1.25rem;font-weight:500}.upload-description{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin-bottom:2rem;text-align:center}.feature-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:3rem}.feature-card{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;text-align:center;transition:transform .3s ease,box-shadow .3s ease}.feature-card svg{color:var(--accent-color);height:32px;margin-bottom:1rem;width:32px}.feature-card h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-bottom:.75rem}.feature-card p{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.upload-box{background:var(--background-secondary);border:2px dashed var(--border-color);border-radius:16px;cursor:pointer;margin-bottom:2rem;padding:3rem 2rem;text-align:center;transition:all .3s ease}.upload-box:hover{background:var(--background-primary);border-color:var(--accent-color);transform:translateY(-2px)}.file-input{display:none}.file-label{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;gap:.75rem}.file-label svg{color:var(--accent-color);height:48px;margin-bottom:1rem;transition:transform .3s ease;width:48px}.upload-box:hover .file-label svg{transform:scale(1.1)}.file-label span:first-of-type{color:var(--text-primary);font-size:1.2rem;font-weight:500}.file-types{color:var(--text-secondary);font-size:.9rem}.error-message{align-items:center;border:1px solid var(--danger-color);border-radius:8px;color:var(--danger-color);display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.error-message,.file-info{background:var(--background-secondary)}.file-info{border:1px solid var(--border-color);border-radius:12px;margin-top:2rem;padding:2rem}.file-info h3{color:var(--text-primary);font-size:1.2rem;font-weight:600;margin-bottom:1.5rem}.file-info p{color:var(--text-secondary);font-size:1rem;margin:.75rem 0}.cost-breakdown{border-top:1px solid var(--border-color);margin-top:1.5rem;padding-top:1rem}.cost-breakdown h4{color:var(--text-primary);margin-bottom:.5rem}.upload-button{align-items:center;background:var(--accent-color);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;justify-content:center;margin-top:2rem;padding:1rem;transition:all .3s ease;width:100%}.upload-button:hover:not(:disabled){background:var(--accent-color-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.upload-button:disabled{cursor:not-allowed;opacity:.7}.loading-state{color:var(--text-secondary);min-height:200px}.auth-required,.loading-state{align-items:center;display:flex;justify-content:center}.auth-required{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;min-height:300px;padding:3rem 2rem;text-align:center}.auth-required svg{color:var(--accent-color);height:64px;margin-bottom:2rem;width:64px}.auth-required h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:1rem}.auth-required p{color:var(--text-secondary);font-size:1.1rem;margin-bottom:2rem}.auth-button{background:var(--accent-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-bottom:10px;padding:1rem 2.5rem;transition:all .3s ease;width:100%}.auth-button:hover{background:var(--accent-color-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.token-cost-manager{margin:70px auto 0;max-width:1200px;padding:32px}.section-header h2{align-items:center;color:var(--text-primary);display:flex;font-size:24px;font-weight:600;gap:12px;justify-content:center;margin-bottom:0}.section-header h2 svg{color:var(--accent-color)}.section-header p{color:var(--text-secondary);font-size:15px}.create-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.create-button.dark,.create-button.light{background:var(--accent-color);color:#fff}.create-button:hover{opacity:.9;transform:translateY(-1px)}.create-form-container{border-radius:12px;margin-bottom:32px;padding:24px}.create-form-container.dark,.create-form-container.light{background:var(--card-background);border:1px solid var(--border-color)}.create-form{gap:16px;max-width:600px}.create-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:var(--text-primary);font-size:14px;font-weight:500}.form-group input[type=number],.form-group input[type=text],.form-group textarea{background:var(--input-background);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px;padding:8px 12px}.form-group textarea{min-height:80px;resize:vertical}.form-group select{-webkit-appearance:none;appearance:none;background:var(--input-background);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23666%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:8px auto;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:14px;padding:8px 32px 8px 12px}.form-group select.dark{background-color:var(--background-secondary);color:var(--text-primary)}.form-group select.light{background-color:#fff;color:var(--text-primary)}.form-group select:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #6366f11a;outline:none}.form-group select:disabled{cursor:not-allowed;opacity:.5}.form-actions{display:flex;gap:12px;margin-top:8px}.cancel-button,.submit-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.submit-button{background:var(--accent-color);color:#fff}.cancel-button:hover,.submit-button:hover{opacity:.9}.cancel-button:disabled,.submit-button:disabled{cursor:not-allowed;opacity:.5}.costs-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.cost-card{border-radius:12px;padding:24px;transition:all .2s ease}.cost-card.dark,.cost-card.light{background:var(--card-background);border:1px solid var(--border-color)}.cost-card:hover{transform:translateY(-2px)}.cost-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.cost-header h3{color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.cost-actions{display:flex;gap:8px}.cancel-button,.delete-button,.edit-button,.save-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.edit-button{background:var(--accent-color);color:#fff}.save-button{background:var(--success-color);color:#fff}.cancel-button,.delete-button{background:var(--danger-color);color:#fff}.cancel-button:hover,.delete-button:hover,.edit-button:hover,.save-button:hover{opacity:.9}.cancel-button:disabled,.delete-button:disabled,.edit-button:disabled,.save-button:disabled{cursor:not-allowed;opacity:.5}.cost-amount{align-items:center;display:flex;font-size:24px;font-weight:700;gap:8px;margin-bottom:12px}.cost-amount,.cost-amount svg{color:var(--accent-color)}.cost-description{color:var(--text-secondary);font-size:14px;line-height:1.5;margin-bottom:16px}.cost-status{align-items:center;border-radius:16px;display:inline-flex;font-size:13px;font-weight:500;padding:6px 12px}.cost-status.active{background:#ecfdf5;color:#059669}.cost-status.inactive{background:#fee2e2;color:#ef4444}.dark .cost-status.active{background:#0596691a;color:#34d399}.dark .cost-status.inactive{background:#ef44441a;color:#f87171}.edit-form{display:flex;flex-direction:column;gap:16px;margin-top:16px}.edit-form .form-group{margin-bottom:0}.no-actions-message{color:var(--danger-color);font-size:13px;font-style:italic;margin-top:8px}.cost-title{display:flex;flex-direction:column;gap:4px}.book-badge{align-items:center;background:var(--background-secondary);border-radius:6px;color:var(--text-secondary);display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:4px 8px}.book-badge svg{color:var(--accent-color)}@media (max-width:768px){.token-cost-manager{padding:20px}.costs-grid{grid-template-columns:1fr}.cost-card{padding:20px}}.modal-overlay{background-color:#00000080}.modal-overlay.dark{background-color:#000000b3}.token-cost-modal{background:var(--card-background);border-radius:12px;box-shadow:0 4px 6px #0000001a;max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:90%}.token-cost-modal.dark{border:1px solid var(--border-color)}.modal-close{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s ease}.modal-close:hover{background:var(--background-secondary);color:var(--text-primary)}.modal-close:disabled{cursor:not-allowed;opacity:.5}.modal-content .create-form{margin:0;padding:0}@media (max-width:768px){.token-cost-modal{margin:10px;width:95%}.modal-header{padding:16px 20px}.modal-content{padding:20px}}.books-page{background-color:var(--background-primary);min-height:100vh;padding:2rem}.books-page__loading{align-items:center;display:flex;justify-content:center;min-height:50vh}.books-page__spinner{animation:spin 1s linear infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-color);height:40px;width:40px}.books-page__content{margin:0 auto;max-width:1400px}.books-page__empty-state{background:var(--card-background);border:1px solid var(--border-color);border-radius:24px;margin:100px auto 2rem;max-width:600px;padding:4rem 2rem;text-align:center}.books-page__empty-state-icon{color:var(--accent-color);margin-bottom:1.5rem}.books-page__empty-state h2{color:var(--text-primary);font-size:1.75rem;margin-bottom:1rem}.books-page__empty-state p{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.books-page__empty-state-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.books-page__empty-state-button--primary,.books-page__empty-state-button--secondary{align-items:center;border-radius:12px;display:flex;font-size:1rem;font-weight:600;gap:.75rem;padding:.875rem 1.5rem;text-decoration:none;transition:all .2s ease}.books-page__empty-state-button--primary{background:var(--accent-color);color:#fff}.books-page__empty-state-button--primary:hover{background:var(--accent-color-hover);transform:translateY(-2px)}.books-page__empty-state-button--secondary{background:var(--card-background);border:1px solid var(--border-color);color:var(--text-primary)}.books-page__empty-state-button--secondary:hover{background:var(--hover-background);border-color:var(--accent-color);transform:translateY(-2px)}.books-page__characters{border-radius:24px;margin-bottom:3rem}.books-page__section-header{align-items:center;display:flex;margin-bottom:1.5rem}.books-page__section-header h2{color:var(--text-primary);font-size:1.75rem;margin-bottom:.5rem;margin-right:50px}.books-page__section-header p{color:var(--text-secondary);font-size:1.1rem}.books-page__search-container{margin-left:50px;position:relative;width:200px}.books-page__search-icon{color:var(--text-secondary);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.books-page__search-input{background-color:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.9rem;padding:.75rem 1rem .75rem 2.5rem;transition:all .2s ease;width:100%}.books-page__search-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-color-alpha);outline:none}.books-page__search-input::placeholder{color:var(--text-secondary)}.books-page__characters-by-book{display:flex;flex-direction:column;gap:2rem}.books-page__book-characters{background:var(--background-primary);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem}.books-page__book-title{align-items:center;border-bottom:1px solid var(--border-color);color:var(--text-primary);display:flex;font-size:1.25rem;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem;transition:color .2s ease}.books-page__book-title:hover{color:var(--accent-color)}.books-page__book-title svg{color:var(--accent-color);transition:transform .2s ease}.books-page__book-title:hover svg{transform:translateX(4px)}.books-page__character-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.books-page__character-compact{align-items:center;background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;display:flex;gap:1rem;padding:.75rem;transition:all .2s ease}.books-page__character-compact:hover{border-color:var(--accent-color);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.books-page__character-compact-image{border-radius:50%;flex-shrink:0;height:48px;overflow:hidden;width:48px}.books-page__character-compact-image img{height:100%;object-fit:cover;width:100%}.books-page__character-compact-info{flex:1 1;min-width:0}.books-page__character-compact-info h4{color:var(--text-primary);font-size:1rem;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.books-page__character-compact-stats{align-items:center;color:var(--text-secondary);display:flex;font-size:.875rem;gap:1rem;overflow:auto}.books-page__character-compact-stats span{align-items:center;display:flex;gap:.375rem}.books-page__character-compact-stats svg{color:var(--accent-color)}.books-page__modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.books-page__character-modal{background:var(--card-background);border-radius:24px;box-shadow:0 8px 32px #0003;left:50%;max-height:90vh;max-width:600px;overflow-y:auto;position:fixed;top:50%;transform:translate(-50%,-50%);width:90%;z-index:1001}.books-page__modal-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:.5rem;position:absolute;right:1rem;top:1rem;transition:all .2s ease}.books-page__modal-close:hover{background:var(--hover-background);color:var(--text-primary)}.books-page__modal-header{padding:2rem 2rem 0;text-align:center}.books-page__modal-image{border:4px solid var(--accent-color);border-radius:50%;height:160px;margin:0 auto 1.5rem;overflow:hidden;width:160px}.books-page__modal-image img{height:100%;object-fit:cover;width:100%}.books-page__modal-title h2{color:var(--text-primary);font-size:1.75rem;margin-bottom:.5rem}.books-page__modal-title p{color:var(--text-secondary);font-size:1.1rem}.books-page__modal-content{padding:2rem}.books-page__modal-section{margin-bottom:2rem}.books-page__modal-section h3{color:var(--text-primary);font-size:1.25rem;margin-bottom:1rem}.books-page__modal-section p{color:var(--text-secondary);line-height:1.6}.books-page__modal-tags{display:flex;flex-wrap:wrap;gap:.75rem}.books-page__modal-tag{align-items:center;background:var(--background-primary);border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);display:flex;font-size:.875rem;gap:.5rem;padding:.5rem 1rem}.books-page__modal-tag svg{color:var(--accent-color)}.books-page__modal-stats{align-items:center;color:var(--text-secondary);display:flex;font-size:.875rem;gap:1rem;margin-bottom:2rem}.books-page__modal-stats span{align-items:center;display:flex;gap:.5rem}.books-page__modal-stats svg{color:var(--accent-color)}.books-page__modal-chat-button{align-items:center;background:var(--accent-color);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.75rem;justify-content:center;padding:1rem;transition:all .2s ease;width:100%}.books-page__modal-chat-button:hover{background:var(--accent-color-hover);box-shadow:0 4px 12px rgba(var(--accent-color-rgb),.3);transform:translateY(-2px)}.books-page__hero{background:var(--card-background);border-radius:24px;margin-bottom:3rem;min-height:400px;overflow:hidden;position:relative}.books-page__hero-background{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.books-page__hero-background-book,.books-page__hero-background-character{animation:float 6s ease-in-out infinite;background-position:50%;background-size:cover;filter:blur(2px);height:450px;opacity:.15;position:absolute;transform-origin:center;width:300px}.books-page__hero-background-book:first-child{left:5%;top:-10%}.books-page__hero-background-book:nth-child(2){left:25%;top:20%}.books-page__hero-background-book:nth-child(3){left:45%;top:-5%}.books-page__hero-background-book:nth-child(4){left:65%;top:15%}.books-page__hero-background-book:nth-child(5){left:85%;top:-15%}.books-page__hero-background-character{border-radius:50%;height:250px;width:250px}.books-page__hero-background-character:nth-child(6){bottom:-10%;left:10%}.books-page__hero-background-character:nth-child(7){bottom:20%;left:40%}.books-page__hero-background-character:nth-child(8){bottom:-5%;left:70%}.books-page__hero-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,var(--card-background) 0,rgba(var(--accent-color-rgb),.1) 100%);bottom:0;left:0;position:absolute;right:0;top:0}.books-page__hero-content{margin:0 auto;max-width:1200px;padding:4rem 2rem;position:relative;z-index:1}.books-page__hero-content h1{color:var(--text-primary);font-size:clamp(2rem,5vw,3rem);font-weight:700;margin-bottom:1rem}.books-page__hero-content p{color:var(--text-secondary);font-size:clamp(1.1rem,2vw,1.25rem);margin-bottom:3rem}.books-page__hero-stats{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.books-page__hero-stat{align-items:center;background:var(--background-primary);border:1px solid var(--border-color);border-radius:16px;display:flex;gap:1rem;padding:1.5rem;transition:all .3s ease}.books-page__hero-stat:hover{border-color:var(--accent-color);box-shadow:0 4px 20px #0000001a;transform:translateY(-4px)}.books-page__hero-stat svg{color:var(--accent-color);flex-shrink:0}.books-page__hero-stat-content{display:flex;flex-direction:column;gap:.25rem}.books-page__hero-stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:700}.books-page__hero-stat-label{color:var(--text-secondary);font-size:.9rem}.books-page__library{border-radius:24px;margin-bottom:3rem}.books-page__library .books-page__section-header{margin-bottom:2rem}.books-page__library .books-page__section-header h2{margin-bottom:.5rem}.books-page__library .books-page__section-header p{color:var(--text-secondary);font-size:1.1rem}@media (max-width:768px){.books-page__section-header{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:1.5rem}}@media (max-width:480px){.books-page{padding:0;width:100%}.books-page__hero{border-radius:0}.books-page__library{background:none;border-radius:0;padding:25px}.books-page__hero{margin-bottom:50px}.books-page__section{padding-bottom:0}.books-page__characters{background:none;border-radius:0;padding:0 25px 25px}.books-page__library{margin-bottom:0}.books-page__hero-content{margin-bottom:25px}.continue-reading-section{padding:25px 25px 0}}.Toastify__toast{border-radius:12px;box-shadow:0 4px 12px #00000026;font-family:inherit;padding:16px}html[data-theme=light] .Toastify__toast{background:#fff;color:#1a1a1a}html[data-theme=light] .Toastify__toast--success{background:#edf7ed;border:1px solid #4caf50}html[data-theme=light] .Toastify__toast--error{background:#fdeded;border:1px solid #ef5350}html[data-theme=light] .Toastify__toast--warning{background:#fff4e5;border:1px solid #ff9800}html[data-theme=light] .Toastify__toast--info{background:#e8f4fd;border:1px solid #2196f3}html[data-theme=dark] .Toastify__toast{background:#2d2d2d;color:#fff}html[data-theme=dark] .Toastify__toast--success{background:#1e3620;border:1px solid #4caf50}html[data-theme=dark] .Toastify__toast--error{background:#321f1f;border:1px solid #ef5350}html[data-theme=dark] .Toastify__toast--warning{background:#332917;border:1px solid #ff9800}html[data-theme=dark] .Toastify__toast--info{background:#1a2733;border:1px solid #2196f3}.Toastify__progress-bar{height:3px}.Toastify__close-button{opacity:.7;transition:opacity .2s}.Toastify__close-button:hover{opacity:1}.Toastify__toast-body{font-size:14px;line-height:1.5;padding:4px 0}.token-transactions-dashboard{margin-top:75px;min-height:100vh;padding:40px}.token-transactions-dashboard.dark,.token-transactions-dashboard.light{background:var(--background-primary)}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.dashboard-header h1{color:var(--text-primary);font-size:28px;font-weight:600;margin:0}.dashboard-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.filter-group{align-items:center;background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:8px;padding:8px 12px}.filter-group select{background:none;border:none;cursor:pointer;font-size:14px;padding-right:24px}.filter-group select,.filter-group select.dark{color:var(--text-primary)}.filter-group svg{color:var(--text-secondary)}.refresh-button{align-items:center;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.refresh-button.dark,.refresh-button.light{background:var(--background-secondary);color:var(--text-primary)}.refresh-button:hover{background:var(--hover-background);transform:translateY(-1px)}.refresh-button svg{transition:transform .2s ease}.refresh-button:hover svg{transform:rotate(180deg)}.transactions-table-container{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden}.transactions-table{border-collapse:collapse;width:100%}.transactions-table th{background:var(--background-secondary);border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:14px;font-weight:500;padding:16px;text-align:left}.transactions-table th.sortable{align-items:center;cursor:pointer;display:flex;gap:4px;-webkit-user-select:none;user-select:none}.transactions-table td,.transactions-table th.sortable:hover{color:var(--text-primary)}.transactions-table td{border-bottom:1px solid var(--border-color);font-size:14px;padding:16px}.transactions-table tr:last-child td{border-bottom:none}.transactions-table tr:hover{background:var(--hover-background)}.amount{font-family:monospace;font-weight:500}.amount.credit{color:#059669}.amount.debit{color:#dc2626}.empty-cell,.loading-cell{color:var(--text-secondary);padding:48px!important;text-align:center}.loading-cell{align-items:center;display:flex;gap:12px;justify-content:center}@media (max-width:768px){.token-transactions-dashboard{padding:20px}.dashboard-header{align-items:flex-start;flex-direction:column;gap:16px}.dashboard-controls{flex-direction:column;width:100%}.filter-group,.filter-group select{width:100%}.refresh-button{justify-content:center;width:100%}.transactions-table td,.transactions-table th{font-size:13px;padding:12px}}.clickable-row{cursor:pointer;transition:background-color .2s ease}.clickable-row:hover{background:var(--hover-background)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.transaction-detail-modal{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-lg);max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:var(--text-primary);font-size:20px;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s ease}.close-button:hover{background:var(--hover-background);color:var(--text-primary)}.modal-content{padding:24px}.detail-group{margin-bottom:20px}.detail-group label{font-size:14px;margin-bottom:8px}.transaction-type{border-radius:20px;display:inline-block;font-size:14px;font-weight:500;padding:4px 12px}.transaction-type.credit{background:#0596691a;color:#059669}.transaction-type.debit{background:#dc26261a;color:#dc2626}.metadata-pre{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;font-family:SF Mono,Monaco,Menlo,Courier New,monospace;font-size:13px;line-height:1.5;margin:0;max-height:200px;overflow-y:auto;padding:12px;white-space:pre-wrap;word-break:break-all}.transaction-detail-modal.dark{background:var(--background-primary)}.transaction-detail-modal.dark .close-button{color:var(--text-secondary)}.transaction-detail-modal.dark .close-button:hover{background:var(--hover-background);color:var(--text-primary)}@media (max-width:768px){.transaction-detail-modal{margin:16px;max-height:95vh;width:95%}.modal-content,.modal-header{padding:16px}.detail-group{margin-bottom:16px}}.detail-sections{display:flex;flex-direction:column;gap:32px}.detail-section{background:var(--background-secondary);border-radius:8px;padding:20px}.detail-section h3{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 16px}.action-badge,.service-badge{border-radius:20px;display:inline-block;font-size:14px;font-weight:500;padding:4px 12px;text-transform:capitalize}.service-badge{background:var(--accent-color);color:#fff}.action-badge{background:rgba(var(--accent-color-rgb),.1);color:var(--accent-color)}.status-badge{border-radius:20px;display:inline-block;font-size:14px;font-weight:500;padding:4px 12px}.status-badge.complete{background:#0596691a;color:#059669}.status-badge.partial{background:#f59e0b1a;color:#f59e0b}.status-badge.failed{background:#dc26261a;color:#dc2626}.status-badge.pending{background:#3b82f61a;color:#3b82f6}.transaction-detail-modal{max-width:800px}.detail-group{border-bottom:1px solid var(--border-color);margin-bottom:16px;padding-bottom:16px}.detail-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.detail-group label{color:var(--text-secondary);display:block;font-size:13px;font-weight:500;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.detail-group div{color:var(--text-primary);font-size:15px;line-height:1.5}.transaction-detail-modal.dark .detail-section{background:var(--background-primary)}.transaction-detail-modal.dark .metadata-pre{background:var(--background-primary);border-color:var(--border-color)}.transaction-detail-modal.dark .action-badge{background:rgba(var(--accent-color-rgb),.2)}@media (max-width:768px){.detail-section{padding:16px}.detail-group{margin-bottom:12px;padding-bottom:12px}.detail-group label{font-size:12px}.detail-group div{font-size:14px}}.token-quote-breakdown{background:var(--background-secondary);border-radius:8px;margin-top:8px;padding:16px}.token-quote-breakdown>div{font-family:SF Mono,Monaco,Menlo,Courier New,monospace;font-size:13px;margin-bottom:8px}.token-quote-breakdown .total-tokens{border-bottom:1px solid var(--border-color);font-weight:600;margin-bottom:12px;padding-bottom:8px}.token-quote-breakdown .cost-breakdown{background:var(--background-primary);border-radius:6px;margin-top:8px;padding:12px}.token-quote-breakdown .cost-breakdown>div{margin-bottom:6px}.token-quote-breakdown .total-cost{border-top:1px solid var(--border-color);color:var(--accent-color);font-weight:600;margin-top:8px;padding-top:8px}.transaction-detail-modal.dark .token-quote-breakdown{background:var(--background-primary)}.transaction-detail-modal.dark .token-quote-breakdown .cost-breakdown{background:var(--background-secondary)}@media (max-width:768px){.token-quote-breakdown{padding:12px}.token-quote-breakdown>div{font-size:12px}.token-quote-breakdown .cost-breakdown{padding:10px}}.metrics-summary{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:32px}.metrics-group{background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-sm);padding:24px}.metrics-group h3{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 16px}.metrics-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metric-card{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px}.metric-card label{color:var(--text-secondary);display:block;font-size:13px;font-weight:500;margin-bottom:8px}.metric-card .metric-value{color:var(--text-primary);font-family:SF Mono,Monaco,Menlo,Courier New,monospace;font-size:15px;font-weight:600}.metric-card.total{background:var(--accent-color);border-color:var(--accent-color)}.metric-card.total .metric-value,.metric-card.total label{color:#fff}.token-transactions-dashboard.dark .metric-card{background:var(--background-primary)}.token-transactions-dashboard.dark .metric-card.total{background:var(--accent-color)}@media (max-width:768px){.metrics-summary{gap:16px;grid-template-columns:1fr}.metrics-group{padding:16px}.metrics-grid{gap:12px}.metric-card{padding:12px}.metric-card label{font-size:12px}.metric-card .metric-value{font-size:14px}}.search-group{align-items:center;background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:8px;min-width:250px;padding:8px 12px}.search-group svg{color:var(--text-secondary);min-width:16px}.search-group input{background:none;border:none;color:var(--text-primary);font-size:14px;outline:none;padding:0;width:100%}.search-group input::placeholder{color:var(--text-secondary)}.search-group input.dark{color:var(--text-primary)}.search-group .clear-search{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s ease}.search-group .clear-search:hover{background:var(--hover-background);color:var(--text-primary)}@media (max-width:768px){.dashboard-controls{align-items:stretch;flex-direction:column}.search-group{min-width:0;min-width:auto;width:100%}}.loading-more-cell{align-items:center;background:#0000!important;border-bottom:none!important;color:var(--text-secondary);display:flex;font-size:14px;gap:8px;justify-content:center;padding:16px!important;text-align:center}.loading-more-cell .loading-spinner{animation:spin 1s linear infinite;border:2px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-color);height:16px;width:16px}.loading-spinner{border:2px solid var(--border-color);border-top-color:var(--accent-color);height:20px;margin:0 auto;width:20px}.loading-more-cell:hover,.transactions-table tr:hover .loading-more-cell{background:#0000!important}.book-request-modal-overlay{align-items:center;background:#000000b3;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:2000}.book-request-modal-content{background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000040;color:#222;display:flex;flex-direction:column;max-height:90vh;max-width:95vw;min-width:340px;overflow-y:auto;padding:2rem 2.5rem 1.5rem;position:relative}.book-request-modal-content.dark{background:#23232b;color:#e2e8f0}.book-request-modal-header{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.book-request-modal-subtitle{color:#666;font-size:1rem;line-height:1.4;margin-bottom:1.5rem;text-align:center}.book-request-modal-content.dark .book-request-modal-subtitle{color:#a0aec0}.book-request-form-group{display:flex;flex-direction:column;margin-bottom:1.2rem}.book-request-form-group label{font-weight:500;margin-bottom:.4rem}.book-request-form-group input{background:#f8f9fa;border:1px solid #ccc;border-radius:5px;color:#222;font-size:1rem;padding:.6rem .8rem}.book-request-modal-content.dark .book-request-form-group input{background:#18181c;border:1px solid #444;color:#e2e8f0}.book-request-error-message{background:#ffeaea;color:#c0392b}.book-request-error-message,.book-request-success-message{border-radius:4px;margin-bottom:1rem;padding:.5rem 1rem;text-align:center}.book-request-success-message{background:#eaffea;color:#27ae60}.book-request-modal-footer{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.book-request-cancel-button{background:none;border:1px solid #aaa;border-radius:4px;color:#444;cursor:pointer;font-size:1rem;padding:.5rem 1.2rem;transition:background .2s,color .2s}.book-request-cancel-button:hover{background:#f0f0f0}.book-request-modal-content.dark .book-request-cancel-button{background:none;border:1px solid #666;color:#e2e8f0}.book-request-modal-content.dark .book-request-cancel-button:hover{background:#23232b}.book-request-submit-button{background:var(--accent-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.5rem 1.2rem;transition:background .2s}.book-request-submit-button:hover{background:var(--accent-color-hover)}.book-request-modal-content.dark .book-request-submit-button{background:var(--accent-color);color:#fff}.book-request-modal-content.dark .book-request-submit-button:hover{background:var(--accent-color-hover)}.hidden{display:none!important}.gallery-container{margin:0 auto;max-width:1200px}.gallery-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(3,1fr);margin:60px auto 40px;max-width:1200px;padding:0 2px}.gallery-item{background:var(--bg-card);border:none;border-radius:0;box-shadow:none;cursor:pointer;overflow:hidden;transition:transform .2s ease}.gallery-item:hover{transform:scale(1.02);z-index:10}.gallery-image-container{aspect-ratio:1;background:#f0f0f0;overflow:hidden;position:relative}.gallery-image{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.gallery-item:hover .gallery-image{transform:scale(1.05)}.gallery-overlay{background:linear-gradient(0deg,#000000d9 0,#00000080 50%,#0003 80%,#0000);bottom:0;display:flex;flex-direction:column;justify-content:flex-end;left:0;opacity:0;padding:20px;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s cubic-bezier(.4,0,.2,1)}.gallery-item:hover .gallery-overlay{opacity:1;pointer-events:all}.gallery-overlay-content{display:flex;flex-direction:column;gap:16px;width:100%}.gallery-info-hover{animation:slideUpFade .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:12px}@keyframes slideUpFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.gallery-book-info-hover{margin-bottom:4px}.gallery-book-title-hover{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#fff;display:-webkit-box;font-size:1rem;font-weight:700;line-height:1.3;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 8px #00000080}.gallery-book-author-hover{color:#ffffffd9;font-weight:500}.gallery-book-author-hover,.gallery-description-hover{font-size:.85rem;margin:0;text-shadow:0 1px 4px #00000080}.gallery-description-hover{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#ffffffe6;display:-webkit-box;font-weight:400;line-height:1.5;overflow:hidden;text-overflow:ellipsis}.gallery-actions{animation:slideUpFade .4s cubic-bezier(.4,0,.2,1) .1s both;gap:12px}.gallery-action-btn,.gallery-actions{align-items:center;display:flex;justify-content:center}.gallery-action-btn{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#ffffff26;border:1px solid #ffffff40;border-radius:24px;box-shadow:0 4px 16px #00000040,inset 0 1px 0 #fff3;color:#fff;cursor:pointer;gap:6px;padding:8px 16px;text-shadow:0 1px 2px #0000004d;transition:all .3s cubic-bezier(.4,0,.2,1)}.gallery-action-btn:hover{background:#ffffff40;border-color:#fff6;box-shadow:0 6px 20px #00000059,inset 0 1px 0 #ffffff4d;transform:translateY(-3px) scale(1.05)}.gallery-action-btn:active{transform:translateY(-1px) scale(1.02)}.gallery-action-btn.liked{background:#ed495640;border-color:#ed495680;box-shadow:0 4px 16px #ed495666,inset 0 1px 0 #fff3;color:#fff}.gallery-action-btn.liked:hover{background:#ed495659;border-color:#ed4956b3;box-shadow:0 6px 24px #ed495680,inset 0 1px 0 #ffffff4d;transform:translateY(-3px) scale(1.08)}.gallery-action-btn.liked:active{transform:translateY(-1px) scale(1.04)}.gallery-action-btn svg{height:18px;width:18px}.gallery-action-btn span{font-size:13px;font-weight:600;min-width:20px;text-align:center}.gallery-info{display:none}.gallery-book-info{margin-bottom:8px}.gallery-book-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-primary);display:-webkit-box;font-size:14px;font-weight:600;line-height:1.3;margin:0 0 2px;overflow:hidden}.gallery-book-author{color:var(--text-secondary);font-size:12px;font-weight:400;margin:0}.gallery-paragraph{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-secondary);display:-webkit-box;font-size:13px;line-height:1.4;margin:8px 0 10px;overflow:hidden}.gallery-meta{justify-content:space-between;margin-top:8px}.gallery-meta,.gallery-user{align-items:center;display:flex}.gallery-user{gap:8px}.gallery-user-avatar{border-radius:50%;height:16px;object-fit:cover;width:16px}.gallery-user span{color:var(--text-secondary);font-size:11px;font-weight:500}.gallery-date{font-size:11px;gap:4px}.gallery-date,.gallery-loading,.gallery-loading-more{align-items:center;color:var(--text-secondary);display:flex}.gallery-loading,.gallery-loading-more{flex-direction:column;justify-content:center;padding:40px}.gallery-loading{min-height:calc(100vh - 200px)}.gallery-loading-more{align-items:center;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:20px}.loading-spinner{animation:spin 1s linear infinite;border-top:3px solid var(--border-color);border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:40px;margin-bottom:15px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gallery-end{color:var(--text-secondary);font-style:italic;grid-column:1/-1;padding:40px;text-align:center}.image-viewer-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000f7;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-viewer-overlay.dark{background:#000000f7}.image-viewer-overlay.light{background:#fffffff7}.image-viewer-desktop-container{align-items:stretch;animation:slideUp .3s ease-out;display:flex;gap:20px;height:calc(100vh - 40px);max-width:1400px;padding:0 20px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.image-viewer-desktop-container .image-viewer-image-container{align-items:center;background:#000;border-radius:12px;display:flex;flex:1 1;justify-content:center;min-width:0;overflow:hidden}.image-viewer-desktop-container .image-viewer-image{border-radius:12px;max-height:100%;max-width:100%;object-fit:contain}.image-viewer-desktop-container .image-viewer-desktop-info{display:flex;flex-shrink:0;height:100%;min-width:400px;width:400px}.image-viewer-mobile-container{display:none}@media (max-width:768px){.image-viewer-desktop-container{display:none}.image-viewer-mobile-container{animation:slideUp .3s ease-out;display:flex;flex-direction:column;height:100vh;width:100%}.image-viewer-mobile-container .image-viewer-image-container{align-items:center;background:#000;display:flex;flex:1 1;justify-content:center;min-height:60vh;position:relative}.image-viewer-mobile-container .image-viewer-image{height:100%;object-fit:contain;width:100%}.image-viewer-mobile-book-overlay{background:linear-gradient(0deg,#000000e6,#000000b3,#0000004d,#0000);bottom:0;display:flex;flex-direction:column;gap:12px;left:0;padding:80px 20px 20px;position:absolute;right:0;z-index:8}.image-viewer-mobile-book-info{align-items:center;cursor:pointer;display:flex;gap:12px;transition:opacity .2s ease}.image-viewer-mobile-book-info:active{opacity:.8}.image-viewer-mobile-book-info svg{color:#fff;flex-shrink:0;opacity:.9}.image-viewer-mobile-book-text{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.image-viewer-mobile-book-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#fff;display:-webkit-box;font-size:16px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 4px #00000080}.image-viewer-mobile-book-author{color:#fffc;font-size:13px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px #00000080;white-space:nowrap}.image-viewer-mobile-paragraph{margin-top:4px}.image-viewer-mobile-paragraph p{color:#ffffffe6;font-size:14px;line-height:1.5;margin:0;text-shadow:0 1px 3px #0009}.image-viewer-mobile-paragraph .image-viewer-expand-btn{background:none;border:none;color:#fffffff2;display:block;font-size:.85rem;font-weight:700;margin-left:0;margin-top:6px;padding:4px 0 0;text-decoration:underline;-webkit-text-decoration-color:#ffffff80;text-decoration-color:#ffffff80;text-shadow:0 1px 3px #0009}.image-viewer-mobile-paragraph .image-viewer-expand-btn:hover{color:#fff;-webkit-text-decoration-color:#fffc;text-decoration-color:#fffc}.image-viewer-mobile-container .image-viewer-mobile-actions{bottom:150px;display:flex;flex-direction:column;gap:24px;position:absolute;right:20px;z-index:10}.image-viewer-mobile-action{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000080;border:2px solid #ffffff4d;border-radius:50%;box-shadow:0 4px 12px #0000004d;color:#fff;cursor:pointer;display:flex;flex-direction:column;gap:4px;height:64px;justify-content:center;transition:all .2s ease;width:64px}.image-viewer-mobile-action:active{transform:scale(.95)}.image-viewer-mobile-action.liked{background:#ed4956d9;border-color:#ffffff80}.image-viewer-mobile-action span{font-size:13px;font-weight:700;text-shadow:0 1px 2px #00000080}.image-viewer-mobile-container .image-viewer-comments-sheet,.image-viewer-mobile-container .image-viewer-info-sheet{background:#1a1a1a;border-radius:20px 20px 0 0;border-top:1px solid #ffffff1a;bottom:0;box-shadow:0 -4px 24px #0006;display:flex;flex-direction:column;left:0;max-height:70vh;overflow:hidden;position:fixed;right:0;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);z-index:1002}.image-viewer-overlay.light .image-viewer-comments-sheet,.image-viewer-overlay.light .image-viewer-info-sheet{background:#fff;border-top:1px solid #0000001a}.image-viewer-sheet-handle{background:#ffffff4d;border-radius:2px;flex-shrink:0;height:4px;margin:12px auto 8px;width:40px}.image-viewer-overlay.light .image-viewer-sheet-handle{background:#0000004d}.image-viewer-sheet-backdrop{animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1001}.image-viewer-comments-sheet,.image-viewer-info-sheet{display:none}.image-viewer-comments-sheet.show,.image-viewer-info-sheet.show{animation:slideUpSheet .35s cubic-bezier(.32,.72,0,1);transform:translateY(0)}}@media (max-width:768px){@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}}@media (max-width:768px){.image-viewer-mobile-container .image-viewer-comments-sheet .image-viewer-comments-list{-webkit-overflow-scrolling:touch;flex:1 1;margin:0;overflow-x:hidden;overflow-y:auto;padding:20px}.image-viewer-mobile-container .image-viewer-comment-form{background:#0003;border-bottom:1px solid #ffffff1a;flex-shrink:0;margin:0;padding:16px 20px}.image-viewer-overlay.light .image-viewer-mobile-container .image-viewer-comment-form{background:#00000005;border-bottom:1px solid #0000001a}.image-viewer-mobile-container .image-viewer-comment-form textarea{background:#ffffff14;border:1px solid #ffffff26;border-radius:12px;color:#fff;font-size:15px;min-height:80px;padding:12px;resize:none;width:100%}.image-viewer-mobile-container .image-viewer-comment-form textarea::placeholder{color:#ffffff80}.image-viewer-overlay.light .image-viewer-mobile-container .image-viewer-comment-form textarea{background:#0000000d;border:1px solid #00000026;color:#1a1a1a}.image-viewer-overlay.light .image-viewer-mobile-container .image-viewer-comment-form textarea::placeholder{color:#00000080}.image-viewer-mobile-container .image-viewer-comment-form button{margin-top:12px;width:100%}.image-viewer-mobile-container .image-viewer-signin-prompt{margin:16px 20px 0;padding:16px 20px}.image-viewer-comments-header,.image-viewer-info-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000004d;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:16px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.image-viewer-overlay.light .image-viewer-comments-header,.image-viewer-overlay.light .image-viewer-info-header{background:#ffffffe6;border-bottom:1px solid #0000001a}.image-viewer-comments-header h4,.image-viewer-info-header h4{color:#fff;font-size:1.1rem;font-weight:600;margin:0}.image-viewer-overlay.light .image-viewer-comments-header h4,.image-viewer-overlay.light .image-viewer-info-header h4{color:#1a1a1a}.image-viewer-comments-header button,.image-viewer-info-header button{background:none;border:none;border-radius:50%;color:#ffffffb3;cursor:pointer;padding:4px;transition:background .2s ease}.image-viewer-overlay.light .image-viewer-comments-header button,.image-viewer-overlay.light .image-viewer-info-header button{color:#000000b3}.image-viewer-comments-header button:hover,.image-viewer-info-header button:hover{background:#ffffff1a}.image-viewer-overlay.light .image-viewer-comments-header button:hover,.image-viewer-overlay.light .image-viewer-info-header button:hover{background:#0000000d}.image-viewer-info-content{max-height:calc(70vh - 80px);overflow-y:auto;padding:20px}}.image-viewer-info{background:linear-gradient(135deg,var(--bg-card) 0,#ffffff05 100%);border:1px solid var(--border-color);border-radius:20px;box-shadow:0 8px 32px #0000001f;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0;position:relative;width:100%}.image-viewer-info:before{background:linear-gradient(90deg,#0000,#667eea4d 50%,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0;z-index:1}.image-viewer-info-content{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:24px}.image-viewer-info-content::-webkit-scrollbar{width:8px}.image-viewer-info-content::-webkit-scrollbar-track{background:#0000001a;border-radius:10px}.image-viewer-info-content::-webkit-scrollbar-thumb{background:#667eea80;border-radius:10px}.image-viewer-info-content::-webkit-scrollbar-thumb:hover{background:#667eeab3}.image-viewer-section{margin-bottom:24px}.image-viewer-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:24px}.image-viewer-section-header{color:var(--text-secondary);font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-bottom:12px;padding-left:12px;position:relative;text-transform:uppercase}.image-viewer-section-header:before{background:linear-gradient(180deg,#667eea,#764ba2);border-radius:2px;content:"";height:16px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:3px}.image-viewer-close{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:50%;box-shadow:0 2px 8px #0000001a;color:var(--text-primary);cursor:pointer;display:flex;height:40px;justify-content:center;position:absolute;right:20px;top:20px;transition:all .2s ease;width:40px;z-index:1001}.image-viewer-close:hover{background:var(--hover-bg);box-shadow:0 4px 12px #00000026;transform:scale(1.05)}.image-viewer-overlay.light .image-viewer-close{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000001a}.image-viewer-overlay.light .image-viewer-close:hover{background:#fff;border:1px solid #00000026}.image-viewer-nav{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0009;border:1px solid #fff3;border-radius:50%;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s ease;width:48px;z-index:1001}.image-viewer-nav:hover{background:#000c;box-shadow:0 4px 12px #0000004d;transform:translateY(-50%) scale(1.1)}.image-viewer-overlay.light .image-viewer-nav{background:#ffffffe6;border:1px solid #0000001a;color:var(--text-primary)}.image-viewer-overlay.light .image-viewer-nav:hover{background:#fff;border:1px solid #00000026}@media (max-width:768px){.image-viewer-nav{height:44px;width:44px}}.image-viewer-nav-left{left:20px}.image-viewer-nav-right{right:20px}@media (max-width:768px){.image-viewer-nav-left{left:16px}.image-viewer-nav-right{right:16px}}.image-viewer-header{margin-bottom:20px}.image-viewer-book-info{margin-bottom:15px}.image-viewer-book-link{align-items:flex-start;background:linear-gradient(135deg,var(--bg-secondary) 0,#ffffff0d 100%);border:1px solid var(--border-color);border-radius:12px;color:inherit;cursor:pointer;display:flex;gap:16px;overflow:hidden;padding:20px;position:relative;text-align:left;text-decoration:none;transition:all .3s ease;width:100%}.image-viewer-book-link:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:3px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.image-viewer-book-link:hover:before{opacity:1}.image-viewer-book-link:hover{background:linear-gradient(135deg,var(--hover-bg) 0,#ffffff14 100%);border-color:#667eea4d;box-shadow:0 8px 25px #0000001f;transform:translateY(-2px)}.image-viewer-book-link h3{color:var(--text-primary);font-size:1.1rem;margin:0 0 4px}.image-viewer-book-link p{color:var(--text-secondary);font-size:.9rem;margin:0}.image-viewer-book-placeholder{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);display:flex;gap:10px;padding:15px}.image-viewer-character,.image-viewer-style{align-items:center;background:linear-gradient(135deg,#667eea1a,#764ba20d);border:1px solid #667eea33;border-radius:20px;color:var(--text-primary);display:inline-flex;font-size:.85rem;font-weight:500;gap:8px;margin-bottom:12px;margin-right:8px;padding:10px 16px;transition:all .3s ease}.image-viewer-character:hover,.image-viewer-style:hover{background:linear-gradient(135deg,#667eea26,#764ba214);box-shadow:0 4px 12px #667eea26;transform:translateY(-1px)}.image-viewer-paragraph{background:linear-gradient(135deg,var(--bg-secondary) 0,#ffffff05 100%);border:1px solid var(--border-color);border-radius:12px;line-height:1.6;margin-bottom:24px;overflow:hidden;padding:20px;position:relative}.image-viewer-paragraph:before{background:linear-gradient(180deg,#667eea,#764ba2);border-radius:2px;content:"";height:100%;left:0;position:absolute;top:0;width:4px}.image-viewer-paragraph p{color:var(--text-primary);font-size:.95rem;margin:0;padding-left:16px}.image-viewer-expand-btn{background:none;border:none;color:#667eea;cursor:pointer;font-size:.85rem;font-weight:600;margin-left:16px;padding:8px 16px 0;text-decoration:underline;-webkit-text-decoration-color:#667eea66;text-decoration-color:#667eea66;transition:all .2s ease}.image-viewer-expand-btn:hover{color:#667eeacc;-webkit-text-decoration-color:#667eeacc;text-decoration-color:#667eeacc;transform:translateX(2px)}.image-viewer-user-info{align-items:center;background:linear-gradient(135deg,var(--bg-secondary) 0,#ffffff05 100%);border:1px solid var(--border-color);border-radius:12px;display:flex;justify-content:space-between;margin-bottom:24px;padding:20px}.image-viewer-user,.image-viewer-user-link{align-items:center;display:flex;gap:12px}.image-viewer-user-link{background:linear-gradient(135deg,#ffffff0d,#ffffff05);border:1px solid var(--border-color);border-radius:30px;color:inherit;cursor:pointer;overflow:hidden;padding:12px 16px;position:relative;text-decoration:none;transition:all .3s ease}.image-viewer-user-link:hover{background:linear-gradient(135deg,var(--hover-bg) 0,#ffffff14 100%);box-shadow:0 6px 20px #0000001a;transform:translateY(-2px)}.image-viewer-user-avatar{border:2px solid var(--border-color);border-radius:50%;height:28px;object-fit:cover;transition:border-color .3s ease;width:28px}.image-viewer-user-link:hover .image-viewer-user-avatar{border-color:#667eea}.image-viewer-user span{color:var(--text-primary);font-size:.95rem;font-weight:600}.image-viewer-actions{border-bottom:1px solid var(--border-color);display:flex;gap:16px;margin-bottom:30px;padding:20px 0}.image-viewer-action-btn{align-items:center;background:linear-gradient(135deg,var(--bg-secondary) 0,#ffffff0d 100%);border:1px solid var(--border-color);border-radius:30px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:10px;justify-content:center;min-width:120px;overflow:hidden;padding:14px 20px;position:relative;transition:all .3s ease}.image-viewer-action-btn:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.image-viewer-action-btn:hover:before{left:100%}.image-viewer-action-btn:hover{background:linear-gradient(135deg,var(--hover-bg) 0,#ffffff14 100%);border-color:#667eea4d;box-shadow:0 6px 20px #0000001f;transform:translateY(-2px)}.image-viewer-action-btn.liked{background:linear-gradient(135deg,#ed495626,#ed49560d);border-color:#ed4956;color:#ed4956}.image-viewer-action-btn.liked:hover{background:linear-gradient(135deg,#ed495640,#ed49561a);box-shadow:0 8px 25px #ed495640;transform:translateY(-2px) scale(1.02)}.image-viewer-comments{margin-top:0;padding-top:0}.image-viewer-comments-header{border-bottom:1px solid var(--border-color);margin-bottom:24px;padding-bottom:16px;position:relative}.image-viewer-comments-header:after{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:1px;bottom:-1px;content:"";height:2px;left:0;position:absolute;width:60px}.image-viewer-comments-header h4{color:var(--text-primary);font-size:1.2rem;font-weight:600;margin:0}.image-viewer-comment-form{margin-bottom:20px}.image-viewer-signin-prompt{margin-bottom:24px;padding:16px 20px;text-align:center}.image-viewer-signin-prompt p{color:#ffffffb3;font-size:.95rem;margin:0}.image-viewer-overlay.light .image-viewer-signin-prompt p{color:#000000b3}.signin-link{color:#667eea;cursor:pointer;font-weight:600;text-decoration:underline;-webkit-text-decoration-color:#667eea66;text-decoration-color:#667eea66;transition:all .2s ease}.signin-link:hover{color:#667eeacc;-webkit-text-decoration-color:#667eeacc;text-decoration-color:#667eeacc}.image-viewer-comment-form textarea{background:linear-gradient(135deg,var(--bg-secondary) 0,#ffffff05 100%);border:1px solid var(--border-color);border-radius:12px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:.95rem;margin-bottom:12px;min-height:90px;padding:16px;resize:vertical;transition:all .3s ease;width:100%}.image-viewer-comment-form textarea:focus{background:linear-gradient(135deg,var(--hover-bg) 0,#ffffff0d 100%);border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.image-viewer-comment-form textarea::placeholder{color:var(--text-secondary);opacity:.7}.image-viewer-comment-form .btn,.image-viewer-comment-form .btn-primary,.image-viewer-comment-form button[type=submit]{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 12px #667eea4d;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:14px 24px;transition:all .3s ease;width:100%}.image-viewer-comment-form .btn-primary:hover,.image-viewer-comment-form .btn:hover,.image-viewer-comment-form button[type=submit]:hover{background:linear-gradient(135deg,#5568d3,#6a3d91);box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.image-viewer-comment-form .btn-primary:disabled,.image-viewer-comment-form .btn:disabled,.image-viewer-comment-form button[type=submit]:disabled{cursor:not-allowed;opacity:.5;transform:none}.image-viewer-comment-form .btn-primary:active,.image-viewer-comment-form .btn:active,.image-viewer-comment-form button[type=submit]:active{transform:translateY(0)}.image-viewer-comments-list{margin-top:16px;max-height:400px;overflow-y:auto;padding-right:8px}.image-viewer-comments-list::-webkit-scrollbar{width:6px}.image-viewer-comments-list::-webkit-scrollbar-track{background:#0000000d;border-radius:10px}.image-viewer-comments-list::-webkit-scrollbar-thumb{background:#667eea66;border-radius:10px}.image-viewer-comments-list::-webkit-scrollbar-thumb:hover{background:#667eea99}.image-viewer-comment{border-bottom:1px solid #ffffff1a;padding:18px 0;position:relative;transition:all .3s ease}.image-viewer-overlay.light .image-viewer-comment{border-bottom:1px solid #0000001a}.image-viewer-comment:hover{background:#ffffff0d;border-radius:12px;margin:0 -12px;padding:18px 12px;transform:translateX(4px)}.image-viewer-overlay.light .image-viewer-comment:hover{background:#00000008}.image-viewer-comment:last-child{border-bottom:none}.image-viewer-comment:before{background:linear-gradient(180deg,#667eea,#764ba2);border-radius:2px;content:"";height:0;left:-12px;position:absolute;top:50%;transform:translateY(-50%);transition:height .3s ease;width:4px}.image-viewer-comment:hover:before{height:60%}.image-viewer-comment-user{align-items:center;display:flex;gap:10px;margin-bottom:8px}.image-viewer-comment-avatar{border-radius:50%;height:20px;object-fit:cover;width:20px}.image-viewer-comment-username{color:#fff;font-size:.85rem;font-weight:600}.image-viewer-overlay.light .image-viewer-comment-username{color:#1a1a1a}.image-viewer-comment-date{color:#ffffff80;font-size:.75rem}.image-viewer-overlay.light .image-viewer-comment-date{color:#00000080}.image-viewer-comment-content{color:#ffffffe6;font-size:.9rem;line-height:1.4;margin:0}.image-viewer-overlay.light .image-viewer-comment-content{color:#000000e6}.image-viewer-no-comments{background:#ffffff0d;border:1px dashed #fff3;border-radius:12px;color:#fff9;font-size:.9rem;font-style:italic;margin-top:16px;padding:32px 20px;text-align:center}.image-viewer-overlay.light .image-viewer-no-comments{background:#00000008;border:1px dashed #0003;color:#0009}.image-viewer-error,.image-viewer-loading{align-items:center;color:var(--text-primary);display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center}.image-viewer-error{gap:20px}.image-viewer-error svg{color:#ff4d4d}@media (max-width:1024px){.gallery-grid{gap:2px;grid-template-columns:repeat(2,1fr)}.image-viewer-desktop-container{gap:15px;height:calc(100vh - 30px);padding:0 15px}.image-viewer-desktop-container .image-viewer-desktop-info{min-width:350px;width:350px}.image-viewer-info-content{padding:20px}}@media (max-width:768px){.gallery-container{padding:15px}.gallery-grid{gap:2px;grid-template-columns:repeat(2,1fr)}.gallery-overlay{padding:14px}.gallery-overlay-content{gap:12px}.gallery-book-title-hover{-webkit-line-clamp:1;font-size:.9rem}.gallery-book-author-hover{font-size:.75rem}.gallery-description-hover{-webkit-line-clamp:2;font-size:.8rem}.gallery-actions{gap:10px}.gallery-action-btn{font-size:.85rem;padding:6px 12px}.gallery-action-btn svg{height:16px;width:16px}.image-viewer-mobile-container,.image-viewer-overlay{padding:0}.image-viewer-mobile-actions{bottom:140px;gap:20px;right:16px}.image-viewer-mobile-action{height:56px;width:56px}.image-viewer-mobile-action span{font-size:12px}.image-viewer-mobile-book-overlay{gap:8px;padding:60px 16px 16px}.image-viewer-mobile-book-title{-webkit-line-clamp:1;font-size:14px}.image-viewer-mobile-book-author{font-size:12px}.image-viewer-mobile-paragraph p{font-size:13px;line-height:1.4}.image-viewer-comments-sheet,.image-viewer-info-sheet{max-height:75vh}.image-viewer-comments-header,.image-viewer-info-header{padding:12px 16px}.image-viewer-info-content{padding:16px}.image-viewer-desktop-container .image-viewer-desktop-info{min-width:320px;width:320px}}@media (max-width:640px){.gallery-grid{gap:2px;grid-template-columns:1fr}}@media (max-width:480px){.gallery-container{padding:0}.gallery-grid{gap:1px}}.app-header{align-items:center;background-color:var(--nav-background);box-shadow:var(--shadow-sm);display:flex;height:60px;justify-content:center;left:0;position:fixed;right:0;top:0;transform:translateY(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1),background-color .3s ease;z-index:998}.app-header.visible{transform:translateY(0)}.app-header.hidden{transform:translateY(-100%)}.app-header.dark,.app-header.light{background-color:var(--nav-background);box-shadow:var(--shadow-sm)}.header-content{align-items:center;display:flex;justify-content:space-between;max-width:1200px;padding:0 20px;width:100%}.hamburger-button-header{align-items:center;background:none;border:none;border-radius:8px;color:var(--nav-text);cursor:pointer;display:flex;justify-content:center;margin-left:auto;padding:8px;transition:all .2s ease}.hamburger-button-header svg{stroke:var(--nav-text);color:var(--nav-text);transition:all .3s ease}.hamburger-button-header:hover{background-color:var(--hover-background);transform:scale(1.05)}.request-book-button{background-color:var(--accent-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;margin-right:1rem;padding:.5rem 1rem;transition:background-color .2s}.request-book-button:hover{background-color:var(--accent-color-hover)}.header.dark .request-book-button{background-color:var(--accent-color)}.header.dark .request-book-button:hover{background-color:var(--accent-color-hover)}.no-results{color:#666;padding:1rem;text-align:center}.no-results.dark{color:#fff}.no-results .request-book-button{background-color:var(--accent-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;margin-top:1rem;padding:.5rem 1rem;transition:background-color .2s}.no-results .request-book-button:hover{background-color:var(--accent-color-hover)}.no-results.dark .request-book-button{background-color:var(--accent-color)}.no-results.dark .request-book-button:hover{background-color:var(--accent-color-hover)}.site-footer{background-color:var(--background-secondary);border-top:1px solid var(--border-color);color:var(--text-primary);padding:3rem 2rem 1rem}.footer-content{display:flex;gap:2rem;justify-content:space-around;margin:0 auto;max-width:1200px}.footer-section h4{color:var(--text-primary);font-size:1.1rem;margin-bottom:1rem}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin-bottom:.5rem}.footer-section ul li a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.footer-section ul li a:hover{color:var(--primary-color)}.partner-logos,.payment-icons{align-items:center;display:flex;gap:1rem}.partner-logos img,.payment-icons img{height:30px;opacity:.8;transition:opacity .2s ease;width:auto}.partner-logos img:hover,.payment-icons img:hover{opacity:1}.footer-bottom{border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.9rem;margin-top:2rem;padding-top:1rem;text-align:center}@media (max-width:768px){.site-footer{padding:2rem 1rem 1rem}}.cm-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1001}.cm-modal{border-radius:20px;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;position:relative;width:90%}.cm-modal.cm-dark,.cm-modal.cm-light{background:var(--card-background);border:1px solid var(--border-color);box-shadow:var(--shadow-lg)}.cm-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:8px;position:absolute;right:16px;top:16px;transition:all .2s ease;z-index:2}.cm-close:hover{background:var(--hover-background);color:var(--text-primary);transform:rotate(90deg)}.cm-content{display:flex;flex-direction:column;height:100%;overflow-y:auto}.cm-header{align-items:center;background:var(--card-background);border-bottom:1px solid var(--border-color);display:flex;gap:20px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.cm-image-container{flex-shrink:0;height:150px;overflow:hidden;width:150px}.cm-image{height:100%;object-fit:cover;width:100%}.cm-image-placeholder{align-items:center;background:var(--accent-color);color:#fff;display:flex;height:100%;justify-content:center;width:100%}.cm-header-info{flex:1 1}.cm-name{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0 0 8px}.cm-book-info{align-items:center;color:var(--text-secondary);display:flex;font-size:.9rem;gap:8px}.cm-book-link{cursor:pointer;transition:color .2s ease}.cm-book-link:hover{color:var(--accent-color);text-decoration:underline}.cm-details{overflow-y:auto;padding:24px}.cm-section{margin-bottom:24px}.cm-section h3{align-items:center;color:var(--text-primary);display:flex;font-size:1.1rem;font-weight:600;gap:8px;margin:0 0 12px}.cm-section p{color:var(--text-secondary);line-height:1.6;margin:0}.cm-section-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.cm-tags{display:flex;flex-wrap:wrap;gap:8px}.cm-tag{align-items:center;background:var(--background-secondary);border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);display:inline-flex;font-size:.9rem;gap:6px;padding:6px 12px;transition:all .2s ease}.cm-tag:hover{border-color:var(--accent-color);color:var(--accent-color);transform:translateY(-1px)}.cm-list{list-style:none;margin:0;padding:0}.cm-list li{align-items:center;color:var(--text-secondary);display:flex;font-size:.9rem;gap:8px;margin-bottom:8px}.cm-list li svg{color:var(--accent-color)}.cm-actions{background:var(--card-background);border-top:1px solid var(--border-color);padding:24px}.cm-chat-button{align-items:center;background:var(--accent-color);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:8px;justify-content:center;padding:12px;transition:all .2s ease;width:100%}.cm-chat-button:hover{background:var(--accent-color-hover);transform:translateY(-1px)}@media (max-width:768px){.cm-modal{border-radius:0;height:100%;max-height:100vh;width:100%}.cm-header{padding:16px}.cm-image-container{height:60px;width:60px}.cm-name{font-size:1.2rem}.cm-actions,.cm-details{padding:16px}.cm-section-grid{gap:16px;grid-template-columns:1fr}}.hero-section{align-items:center;background:var(--background-primary);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:40px 20px;position:relative;width:100%}.hero-section.dark{background:var(--background-secondary)}.hero-content{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:0 auto;max-width:1200px;width:100%}.hero-text{margin:0 auto;max-width:800px;text-align:center;z-index:10}.hero-title{color:var(--text-primary);font-size:3.5rem;font-weight:200;letter-spacing:.5px;margin-bottom:1.5rem;margin-top:0;text-shadow:0 0 20px #0003}.hero-subtitle{color:var(--text-primary);font-size:1.25rem;font-weight:300;letter-spacing:.2px;line-height:1.6;margin-bottom:2rem;margin-left:auto;margin-right:auto;max-width:700px;text-shadow:0 0 15px #0000001a}.cta-buttons{display:flex;gap:1rem;margin-top:2rem}.cta-buttons,.primary-cta,.secondary-cta{align-items:center;justify-content:center}.primary-cta,.secondary-cta{border-radius:.5rem;box-shadow:var(--shadow-sm);cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:.75rem;height:45px;transition:all .2s ease;width:180px}.primary-cta{background:var(--accent-color);border:none;box-shadow:var(--shadow-md);color:#fff}.primary-cta:hover{background:var(--accent-color-hover);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.secondary-cta{background:var(--card-background);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);color:var(--text-primary)}.secondary-cta:hover{background:var(--hover-background);box-shadow:var(--shadow-md);transform:translateY(-1px)}.primary-cta svg,.secondary-cta svg{stroke-width:2;height:20px;width:20px}.hero-background{background:var(--background-secondary);bottom:0;left:0;opacity:.8;position:absolute;right:0;top:0;z-index:1}.hero-section.dark .hero-background{background:var(--background-primary);opacity:.9}.floating-book{animation:float 6s ease-in-out infinite;background-position:50%;background-size:cover;border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);height:270px;opacity:.6;position:absolute;width:180px}.hero-section.dark .floating-book{box-shadow:0 20px 40px #0009;opacity:.7}.explore-prompt{color:var(--text-secondary);text-align:center;z-index:10}.arrow-down{border-bottom:2px solid var(--text-secondary);border-right:2px solid var(--text-secondary);height:20px;margin:1rem auto;transform:rotate(45deg);width:20px}@keyframes float{0%{transform:translateY(0) rotate(var(--rotation))}50%{transform:translateY(-15px) rotate(calc(var(--rotation) + 1deg))}to{transform:translateY(0) rotate(var(--rotation))}}@media (max-width:768px){.hero-section{min-height:80vh;padding:0}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.125rem}.cta-buttons{flex-direction:column;gap:.75rem;margin:0 auto;max-width:300px;width:100%}.primary-cta,.secondary-cta{padding:.75rem 1.5rem;width:100%}.floating-book{display:none}}
/*# sourceMappingURL=main.8893cf28.css.map*/