:root{--primary-color:#FF6B6B;--primary-dark:#FF5252;--accent-color:#4ECDC4;--accent-dark:#45B7AF;--text-dark:#2C3E50;--text-light:#FFF;--background-light:#FFF;--shadow-color:rgba(0,0,0,0.1);--dark-bg:#f0f6ff}
@keyframes shine {
0%{background-position:0 50%}
100%{background-position:200% 50%}
}
@keyframes spin {
to{transform:rotate(360deg)}
}
@keyframes pulse {
0%{transform:scale(0.8);opacity:1}
50%{transform:scale(1.2);opacity:1}
100%{transform:scale(0.8);opacity:1}
}
@keyframes sparkle {
0%{transform:scale(0);opacity:0}
50%{transform:scale(1);opacity:.8}
100%{transform:scale(0);opacity:0}
}
@keyframes balancePulse {
0%{transform:scale(1)}
50%{transform:scale(1.05)}
100%{transform:scale(1)}
}
@keyframes popupSlideUp {
from{opacity:0;transform:translateY(20px)}
to{opacity:1;transform:translateY(0)}
}
.top-navbar{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fff;border-bottom:3px solid var(--accent-color);box-shadow:0 2px 8px rgba(0,0,0,0.1);top:0;z-index:90;padding:.75rem 0}
.container{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0}
.logo{height:50px;width:auto;}
.menu-section{display:flex;align-items:center;gap:2rem; z-index:100}
.desktop-menu{display:flex;align-items:center;gap:1.5rem}

/* Hide mobile elements on desktop */
.mobile-menu-sidebar{display:none}
.menu-overlay{display:none}
.menu-close-btn{display:none}

.desktop-menu .menu-link{position:relative;padding:.5rem 0;font-weight:600;font-size:1rem;opacity:.9;color:var(--text-primary);text-transform:none;text-decoration:none;transition:all .3s ease}
.desktop-menu .menu-link:after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:3px;background:#FFD700;border-radius:2px;transform:scaleX(0);transform-origin:right;transition:transform .3s ease}
.desktop-menu .menu-link:hover{opacity:1;color:#000;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 1px rgba(0,0,0,0.2))}
.desktop-menu .menu-link:hover:after{transform:scaleX(1);transform-origin:left}
.right-section{display:flex;align-items:center;gap:1.5rem}
.balance-card{background:var(--background-light);border:3px solid var(--accent-color);border-radius:20px;transform:rotate(-1deg);padding:.6rem 1.2rem;margin:0;transition:all .3s cubic-bezier(0.4,0,0.2,1);position:relative;overflow:hidden;box-shadow:4px 4px 0 var(--accent-dark)}
.balance-card:hover{background:#f8f9fa;transform:rotate(2deg) translateY(-5px);box-shadow:6px 6px 0 var(--accent-dark)}
.balance-card::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.1),transparent);transition:.5s}
.balance-card:hover::before{left:100%}
.balance-card .balance-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--text-primary);margin-bottom:.2rem;display:block}
.balance-content{display:flex;align-items:baseline;gap:.35rem}
.balance-card .balance-amount{font-size:1rem;font-weight:800;color:var(--text-dark);letter-spacing:.02em;text-shadow:none;position:relative;background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset}
.balance-card .balance-unit{font-size:.85rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}
.auth-btn{padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;border-radius:50px;cursor:pointer;transition:all .3s ease}
.gradient-btn.auth-btn{background:#1a1a1a;color:#fff;border:none}
.gradient-btn.auth-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.secondary-btn.auth-btn{background:#fff;color:#1a1a1a;border:2px solid #1a1a1a}
.secondary-btn.auth-btn:hover{background:#f5f5f5;color:#1a1a1a;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.15)}
.mobile-menu-btn{display:none;padding:0;margin:0;background:none;border:none;cursor:pointer}
.mobile-menu-btn svg{width:24px;height:24px;fill:var(--text-dark)}
.mobile-only-logout {
  display: none;
}
@media (max-width: 768px) {
.container{flex-wrap:wrap;gap:1rem;padding:1rem}
.top-navbar{padding:1rem 0}
.logo{height:45px;order:1}
.logo-link{order:1}
.mobile-menu-btn{display:block;order:2}
.right-section{order:3;margin-left:auto;gap:0.75rem}

/* Hide desktop inline menu on mobile */
.menu-section{display:none!important}

/* Mobile menu sidebar - fixed sidebar outside header */
.mobile-menu-sidebar{
  position:fixed;
  top:0;
  left:-100%;
  width:80%;
  max-width:320px;
  height:100vh;
  background:#fff;
  padding:2rem;
  z-index:10001;
  flex-direction:column;
  transition:left .3s ease;
  display:flex!important;
  box-shadow:2px 0 10px rgba(0,0,0,0.3);
  overflow-y:auto;
}
.mobile-menu-sidebar.active{left:0}
.menu-overlay{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,0.5);
  display:none;
  z-index:10000;
}
.menu-overlay.active{display:block}
.mobile-menu-sidebar .menu-link{
  font-size:1.1rem;
  padding:1rem 0;
  width:100%;
  text-align:left;
  font-weight:600;
  color:#333;
}
.mobile-menu-sidebar .menu-link:hover{
  color:var(--accent-color);
}
.menu-close-btn{
  position:absolute;
  top:1rem;
  right:1rem;
  background:#f0f0f0;
  border:none;
  padding:.75rem;
  cursor:pointer;
  border-radius:50%;
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.menu-close-btn:hover{
  background:#e0e0e0;
}
.menu-close-btn svg{
  width:20px;
  height:20px;
  stroke:#333;
  stroke-width:2;
}
.mobile-menu-btn{display:block}
  
/* Hide desktop profile and balance card on mobile */
.balance-card{display:none}
.user-profile{display:none}
  
/* Better auth buttons on mobile */
.auth-btn,
.header-auth-btn{
  padding:0.75rem 1.5rem;
  font-size:0.95rem;
  min-width:90px;
  text-align:center;
  margin:0;
  white-space:nowrap;
  border-radius:50px;
  font-weight:600;
  transition:all 0.3s ease;
}

.logout-btn{
  padding:0.75rem 1.5rem;
  font-size:0.95rem;
  border:2px solid #000;
  border-radius:50px;
  font-weight:600;
  transition:all 0.3s ease;
}

.logout-btn:hover{
  background:#000;
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(0,0,0,0.2);
}
  
/* Display mobile logout link in the menu */
/* Hide logout button in header on mobile, show in menu */
.logout-btn{
  display:none!important;
}
  
/* Display mobile logout link in the menu */
.mobile-only-logout {
  display: block;
  margin-top:1rem;
  padding-top:1rem;
  border-top: 2px solid rgba(78, 205, 196, 0.3);
  font-weight: 700;
  color: var(--accent-color);
  font-size: 1.1rem;
}
.mobile-only-logout:after {
  background: var(--accent-color);
}

/* Create new book button */
.create-new-book-btn{
  padding: 0.75rem 1.5rem;
  font-size: 0.95rem;
  white-space: nowrap;
  background: #1a1a1a;
  border: none;
  border-radius: 50px;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

.create-new-book-btn:hover{
  background: #333;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}

.create-new-book-btn:active{
  transform: translateY(1px);
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}
.page-display{padding:1.5rem;margin:1rem;min-height:auto}
.story-text{font-size:1rem;line-height:1.6}
.action-buttons{grid-template-columns:1fr;gap:.8rem;padding:0 1rem}
.navigation-container{gap:1rem;flex-wrap:wrap;justify-content:center;padding:0 1rem}
.nav-btn{padding:.6rem 1rem;font-size:.9rem}
.progress-bar{max-width:100%;order:-1;width:100%;height:32px;margin:0 10px}
.page-indicator{width:24px;height:24px;font-size:.8rem}
.prompt-card{margin:1rem;padding:1.5rem}
.prompt-input-group{flex-direction:column}
.prompt-header h3{font-size:1.4rem}
.gradient-btn{width:100%}
.generation-container{margin:1rem;padding:1.5rem}
.completion-content{margin:1rem;padding:1.5rem}
.story-button{padding:.8rem;font-size:.9rem}
}
@media (max-width: 480px) {
.modal-content{padding:1rem}
.balance-card{display:none}
.auth-btn{padding:.5rem 1rem;font-size:.9rem}
.story-button svg{width:20px;height:20px}
.page-content{gap:1rem}
.image-controls{margin-top:.5rem}
  /* Auth buttons even more compact on very small screens */
  .auth-btn{
    padding:.6rem 1.2rem;
    font-size:.9rem;
    min-width:100px;
  }
}


.floating-action-btn.compact{width:auto;margin:0;background:linear-gradient(90deg,#FF9AA2,#FFB347,#98FB98,#87CEEB,#DDA0DD,#FF9AA2);background-size:200% 100%;color:#FFF;font-weight:700;padding:12px 24px;border:none;border-radius:10px;cursor:pointer;text-shadow:1px 1px 2px rgba(0,0,0,0.7);animation:shine 4s linear infinite;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 4px 15px rgba(0,0,0,0.2);font-size:1rem; animation:shine 4s linear infinite;}
.floating-action-btn.compact:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.25);animation:shine 2s linear infinite}
.floating-action-btn.compact:active{transform:translateY(1px);box-shadow:0 2px 10px rgba(0,0,0,0.2)}
.user-profile-container{display:flex;align-items:center;gap:16px}
.user-profile{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--background-light);border:2px solid var(--accent-color);border-radius:24px;transition:all .3s ease}
.user-profile:hover{background:var(--accent-color);color:var(--text-light)}
.profile-badge{width:36px;height:36px;border-radius:50%;background:var(--accent-color);color:var(--text-light);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;border:2px solid var(--accent-dark);box-shadow:2px 2px 0 var(--accent-dark)}
.profile-info{display:flex;flex-direction:column;align-items:flex-start}
.username{font-weight:700;font-size:.9rem;color:var(--text-primary);white-space:nowrap}
.logout-link{font-size:.8rem;color:var(--text-dark);text-decoration:none;transition:color .3s ease}
.logout-link:hover{color:var(--text-primary);text-decoration:underline}
.user-profile:hover .logout-link{color:var(--text-light)}
.balance-content{display:flex;align-items:baseline;gap:.35rem}
.balance-unit{font-size:.85rem;font-weight:500;color:rgba(255,255,255,0.6);letter-spacing:.02em}
.balance-update{animation:balancePulse .3s ease-in-out}
.book-viewer-page{display:flex;flex-direction:column;min-height:100vh;background:var(--dark-bg)}
.viewer-header{background:#fff;border-bottom:2px solid var(--accent-color);box-shadow:0 2px 8px rgba(255,230,109,0.2);padding:1rem;position:sticky;top:0;z-index:100}
.viewer-header .header-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:2rem}
.back-button{display:flex;align-items:center;gap:.5rem;color:#666;text-decoration:none;font-weight:500;transition:color .2s}
.back-button svg{width:24px;height:24px;fill:currentColor}
.back-button:hover{color:var(--primary-color)}
.viewer-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}
@media (max-width: 768px) {
.viewer-header .header-content{flex-direction:column;gap:1rem;align-items:flex-start}
.viewer-content{padding:1rem}
}
.app-footer {
  grid-column:1 / -1;
  background: #fafafa;
  padding: 1.5rem 1.5rem;
  border-top: 1px solid #e5e7eb;
}

.footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  gap: 4rem;
  align-items: flex-start;
}

.footer-left {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex-shrink: 0;
}

.footer-logo {
  width: 120px;
  height: auto;
}

.footer-tagline {
  color: #6b7280;
  font-size: 0.875rem;
  margin: 0;
  max-width: 200px;
}

.footer-social {
  display: flex;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.social-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border-radius: 6px;
  color: #6b7280;
  transition: all 0.2s ease;
  text-decoration: none;
}

.social-icon:hover {
  color: #000;
}

.social-icon svg {
  width: 18px;
  height: 18px;
}

.footer-disclaimer {
  flex: 1;
}

.footer-disclaimer p {
  color: #6b7280;
  font-size: 0.75rem;
  line-height: 1.6;
  margin: 0 0 1rem 0;
}

.footer-links {
  display: flex;
  gap: 1.5rem;
}

.footer-links a {
  color: #111827;
  text-decoration: underline;
  font-size: 0.875rem;
  transition: color 0.2s ease;
}

.footer-links a:hover {
  color: #6b7280;
}

/* Logout Button */
.logout-btn {
  border: 2px solid #000;
  border-radius: 50px;
  padding: 0.75rem 1.75rem;
  color: #000;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
  transition: all 0.3s ease;
  display: inline-block;
  background: transparent;
}

.logout-btn:hover {
  background: #000;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}

@media (max-width: 768px) {
  .app-footer {
    padding: 2.5rem 1.5rem;
  }
  
  .footer-container {
    flex-direction: column;
    gap: 2rem;
    align-items: center;
  }
  
  .footer-left {
    align-items: center;
    text-align: center;
    width: 100%;
  }
  
  .footer-logo {
    width: 100px;
  }
  
  .footer-tagline {
    max-width: 100%;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  
  .footer-social {
    justify-content: center;
    margin-top: 1rem;
  }
  
  .social-icon {
    width: 40px;
    height: 40px;
  }
  
  .social-icon svg {
    width: 20px;
    height: 20px;
  }
  
  .footer-disclaimer {
    text-align: center;
    width: 100%;
  }
  
  .footer-disclaimer p {
    font-size: 0.8rem;
    line-height: 1.6;
    margin-bottom: 1.5rem;
  }
  
  .footer-links {
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
  }
  
  .footer-links a {
    font-size: 0.9rem;
  }
}

.footer-content{max-width:1200px;margin:0 auto;text-align:center}
.footer-logo{height: 40px;width: auto;margin-bottom:0}
.tagline{color:var(--text-primary);margin-bottom:1rem;font-size:1.1rem;font-weight:600}
.disclaimer{color:var(--text-secondary);font-size:.9rem;line-height:1.5;max-width:800px;margin:0 auto 1.5rem}
.highlight{background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.social-links{display:flex;justify-content:center;gap:2rem}
.social-link{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}
.social-link:hover{background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.failed-message{color:#333;font-weight:600}
.failed-message::before{content:'⚠';color:orange}
.book-item.failed{border-left-color:orange}
.no-book-selected{display:flex;align-items:center;justify-content:center;padding:2rem}
.empty-state-container{max-width:800px;width:100%;text-align:center;background:#fff;border-radius:24px;padding:3rem 2rem;box-shadow:0 4px 20px rgba(0,0,0,0.05);border:3px solid var(--accent-color)}
.empty-state-illustration{position:relative;margin-bottom:2rem}
.illustration-image{width:200px;height:auto;margin:0 auto}
.sparkle-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}
.sparkle{position:absolute;width:20px;height:20px;background:linear-gradient(45deg,#FFD700,orange);border-radius:50%;opacity:0;animation:sparkle 2s ease-in-out infinite}
.sparkle:nth-child(1){top:20%;left:30%;animation-delay:0}
.sparkle:nth-child(2){top:40%;right:30%;animation-delay:.4s}
.sparkle:nth-child(3){bottom:20%;left:40%;animation-delay:.8s}
.empty-state-title{font-size:2rem;color:var(--text-dark);margin-bottom:1rem;font-weight:700}
.empty-state-description{font-size:1.1rem;color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}
.empty-state-actions{display:flex;flex-direction:column;align-items:center;gap:1rem}
.cta-button{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;background:linear-gradient(90deg,#FF9AA2,#FFB347,#98FB98,#87CEEB);background-size:300% 100%;border:none;border-radius:25px;color:#fff;font-weight:700;font-size:1.1rem;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(0,0,0,0.2);animation:shine 4s linear infinite}
.cta-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.25);animation:shine 2s linear infinite}
.helper-text{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.9rem}
.info-icon{width:16px;height:16px;fill:var(--accent-color)}
.plus-icon{width:20px;height:20px;fill:currentColor}
@media (max-width: 768px) {
.no-book-selected{padding:1rem}
.empty-state-container{padding:2rem 1rem}
.empty-state-title{font-size:1.5rem}
.empty-state-description{font-size:1rem}
.cta-button{width:100%;justify-content:center}
}
.generation-container{background:#fff;border-radius:24px;padding:2rem;border:3px solid var(--accent-color);box-shadow:0 4px 20px rgba(0,0,0,0.05);max-width:800px;margin:2rem auto}
.generation-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem}
.loading-spinner{position:relative;width:48px;height:48px}
.spinner-circle{width:100%;height:100%;border:4px solid var(--accent-color);border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}
.spinner-gradient{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#FFD700,#4ECDC4);border-radius:50%;opacity:.2;animation:pulse 2s ease-in-out infinite}
.generation-title{font-size:1.8rem;color:var(--text-dark);font-weight:700;margin:0}
.generation-content{text-align:center}
.time-estimate{display:inline-flex;align-items:center;gap:.5rem;background:var(--dark-bg);padding:.5rem 1rem;border-radius:20px;margin-bottom:1.5rem}
.clock-icon{width:24px;height:24px;color:var(--accent-color)}
.time-badge{font-weight:600;color:var(--text-dark)}
.generation-text{font-size:1.2rem;color:var(--text-dark);margin-bottom:2rem;line-height:1.5}
.cta-section{display:flex;flex-direction:column;align-items:center;gap:1rem}
.gradient-btn{background:#1a1a1a;color:#fff;border:none;border-radius:50px;padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease}
.gradient-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.secondary-info{color:var(--text-secondary);font-size:.9rem}
@media (max-width: 768px) {
.generation-container{margin:1rem;padding:1.5rem}
.generation-header{flex-direction:column;text-align:center;gap:1rem}
.generation-title{font-size:1.5rem}
.gradient-btn{width:100%}
}
.completion-popup{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);backdrop-filter:blur(5px);display:none;justify-content:center;align-items:center;z-index:1000}
.completion-popup.active{display:flex}
.completion-content{background:#fff;border-radius:24px;padding:2.5rem 2rem;width:90%;max-width:400px;text-align:center;position:relative;border:3px solid var(--accent-color);box-shadow:0 10px 25px rgba(0,0,0,0.1);animation:popupSlideUp .3s ease-out}
.modal-close-btn{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border:none;background:none;cursor:pointer;border-radius:50%;transition:all .3s ease}
.modal-close-btn::before,.modal-close-btn::after{content:'';position:absolute;width:16px;height:2px;background:var(--text-dark);top:50%;left:50%;transition:background .3s ease}
.modal-close-btn::before{transform:translate(-50%,-50%) rotate(45deg)}
.modal-close-btn::after{transform:translate(-50%,-50%) rotate(-45deg)}
.modal-close-btn:hover{background:var(--dark-bg)}
.completion-content h3{font-size:1.8rem;color:var(--text-dark);margin-bottom:1rem;font-weight:700}
.completion-content p{color:var(--text-dark);margin-bottom:2rem;font-size:1.1rem;line-height:1.5}
.button-group{display:flex;justify-content:center;gap:1rem}
.view-book-btn{min-width:200px}
@media (max-width: 768px) {
.completion-content{width:95%;padding:2rem 1.5rem}
.completion-content h3{font-size:1.5rem}
.completion-content p{font-size:1rem}
.view-book-btn{width:100%}
}
.prompt-card{background:#fff;border-radius:24px;padding:2rem;border:3px solid var(--accent-color);box-shadow:0 4px 20px rgba(0,0,0,0.05);max-width:800px;margin:2rem auto}
.prompt-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.prompt-header h3{font-size:1.8rem;color:var(--text-dark);font-weight:700;margin:0}
.ai-badge{background:var(--accent-color);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600}
.prompt-input-group{display:flex;gap:1rem}
#prompt-input{flex:1;padding:1rem;border:2px solid var(--accent-color);border-radius:12px;font-size:1rem;transition:all .3s ease}
#prompt-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(78,205,196,0.2)}
.gradient-btn{background:#1a1a1a;color:#fff;border:none;border-radius:50px;padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}
.gradient-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.sparkle-icon{width:20px;height:20px;fill:currentColor}
.navigation-container{display:flex;align-items:center;justify-content:center;gap:2rem;margin:2rem 0}
.nav-btn{background:#fff;border:2px solid #1a1a1a;border-radius:50px;padding:0.75rem 1.5rem;display:flex;align-items:center;gap:.5rem;color:#1a1a1a;font-weight:600;cursor:pointer;transition:all .3s ease}
.nav-btn:hover{background:#1a1a1a;color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}

/* Finish Story Button Styling */
.nav-btn.finish-story-btn{
  background: linear-gradient(135deg, #4CAF50, #45a049);
  border: 2px solid #45a049;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3);
}
.nav-btn.finish-story-btn:hover{
  background: linear-gradient(135deg, #45a049, #3d8b40);
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(76, 175, 80, 0.4);
}
.nav-btn.finish-story-btn svg{
  animation: checkmark-pulse 1.5s ease-in-out infinite;
}
@keyframes checkmark-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

/* Story Completion Modal */
.story-completion-modal .modal-content{
  text-align: center;
  max-width: 500px;
}
.story-completion-modal .modal-header{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  border-bottom: 1px solid #e0e0e0;
  background: #fff;
  border-radius: 12px 12px 0 0;
}
.story-completion-modal .modal-header h3{
  font-size: 1.8rem;
  color: #4CAF50;
  margin: 0;
  font-weight: 700;
}
.story-completion-modal .modal-header .close-btn{
  background: none;
  border: none;
  font-size: 2rem;
  color: #666;
  cursor: pointer;
  line-height: 1;
  padding: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.story-completion-modal .modal-header .close-btn:hover{
  color: #333;
  transform: scale(1.1);
}
.story-completion-modal .completion-message{
  font-size: 1.1rem;
  color: #666;
  margin-top: 1rem;
}
.story-completion-modal .modal-footer{
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  padding: 1.5rem;
}
.story-completion-modal .my-books-btn{
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.nav-icon{width:20px;height:20px;fill:currentColor}
.progress-fill{position:absolute;height:100%;background:linear-gradient(90deg,var(--accent-color),var(--primary-color));border-radius:12px;transition:width .3s ease;z-index:1}
.page-indicators{display:flex;justify-content:space-between;width:100%;position:relative;z-index:2}
.page-indicator{width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--accent-color);cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:var(--text-dark);position:relative}
.page-indicator:hover{transform:scale(1.2);background:var(--accent-color);color:#fff;box-shadow:0 2px 4px rgba(0,0,0,0.2)}
.page-indicator.active{background:var(--accent-color);color:#fff;transform:scale(1.1);box-shadow:0 2px 4px rgba(0,0,0,0.2)}
.page-indicator:not(.active):hover{background:var(--accent-dark)}
.page-indicator::after{content:attr(data-page);position:absolute;top:-20px;left:50%;transform:translateX(-50%);background:var(--accent-color);color:#fff;padding:2px 6px;border-radius:4px;font-size:.7rem;opacity:0;transition:opacity .2s ease;pointer-events:none}
.page-indicator:hover::after{opacity:1}
@media (max-width: 768px) {
.progress-bar{max-width:100%;height:32px;margin:0 10px}
.page-indicator{width:24px;height:24px;font-size:.8rem}
.navigation-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 10px;
  }

  .navigation-container .progress-bar {
    flex: 1;
    margin: 0 10px;
  }

  .navigation-container .nav-btn {
    width: auto;
    height: auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .navigation-container .nav-btn.prev {
    order: -1;
  }

  .navigation-container .nav-btn.next {
    order: 1;
  }
}
.action-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;max-width:800px;margin:2rem auto;padding:0 1rem}
.story-button{position:relative;min-height:60px;padding:1rem 2rem;border:none;border-radius:50px;font-size:1.1rem;font-weight:600;text-align:center;color:#fff;background:#1a1a1a;transition:all .3s ease;cursor:pointer}
.story-button:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.story-button:hover{transform:translateY(-4px);box-shadow:0 6px 0 var(--accent-dark)}
.story-button:active{transform:translateY(0);box-shadow:0 2px 0 var(--accent-dark)}
.story-button.share{background:#FF9AA2;box-shadow:0 4px 0 #FF7A82;text-shadow:0 0 .7px rgba(0,0,0,0.7)}
.story-button.share:hover{box-shadow:0 6px 0 #FF7A82}
.story-button.select{background:#98FB98;box-shadow:0 4px 0 #78DB78;text-shadow:0 0 .7px rgba(0,0,0,0.7)}
.story-button.select:hover{box-shadow:0 6px 0 #78DB78}
.story-button.download{background:#4A90E2;box-shadow:0 4px 0 #357ABD;text-shadow:0 0 .7px rgba(0,0,0,0.7)}
.story-button.download:hover{box-shadow:0 6px 0 #357ABD}
.story-button.audio{background:#DDA0DD;box-shadow:0 4px 0 #BD80BD;text-shadow:0 0 .7px rgba(0,0,0,0.7)}
.story-button.audio:hover{box-shadow:0 6px 0 #BD80BD}
.story-button svg{width:24px;height:24px;margin-right:8px;vertical-align:middle}
#audiobook-btn .generating-indicator{display:inline-flex;align-items:center;gap:.5rem}
#audiobook-btn .spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%}
@media (max-width: 768px) {
.action-buttons{grid-template-columns:1fr;padding:0 .5rem}
.story-button{width:100%;font-size:1.1rem;padding:1rem}
}
.page-display{padding:1.5rem;margin:1rem;min-height:auto;overflow:visible;border: 3px solid var(--accent-color);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);border-radius: 20px;}
.page-content{display:flex;gap:2rem;align-items:flex-start}
.story-text{flex:1;font-size:1.2rem;line-height:1.8;color:var(--text-dark)}
.story-image{width:300px;border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,0.1);transition:transform .3s ease}
.story-image:hover{transform:scale(1.02)}
.page-number{position:absolute;bottom:1rem;right:1rem;font-size:.9rem;color:var(--text-secondary);font-weight:500}
.image-placeholder{width:300px;height:300px;background:linear-gradient(45deg,#f0f0f0 25%,#e0e0e0 25%,#e0e0e0 50%,#f0f0f0 50%,#f0f0f0 75%,#e0e0e0 75%);background-size:20px 20px;border-radius:12px;display:flex;align-items:center;justify-content:center;animation:shine 2s linear infinite}
.image-loading{font-size:.9rem;color:var(--text-secondary);text-align:center}
.image-controls{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}
.image-button{padding:.5rem 1rem;font-size:.9rem;background:var(--dark-bg);border:2px solid var(--accent-color);border-radius:8px;color:var(--text-dark);cursor:pointer;transition:all .3s ease}
.image-button:hover{background:var(--accent-color);color:#fff}
.image-button.selected{background:var(--accent-color);color:#fff}
@media (max-width: 768px) {
.page-display{margin:0;padding:0;overflow:visible}
.page-content{flex-direction:column}
.story-image{width:100%;height:auto}
.image-placeholder{width:100%;height:200px}
}
.page-transition-enter{opacity:0;transform:translateX(20px)}
.page-transition-enter-active{opacity:1;transform:translateX(0);transition:opacity .3s ease,transform .3s ease}
.page-transition-exit{opacity:1;transform:translateX(0)}
.page-transition-exit-active{opacity:0;transform:translateX(-20px);transition:opacity .3s ease,transform .3s ease}
.story-button,.gradient-btn,.nav-btn,.cta-button,.auth-btn{text-shadow:0 0 .7px rgba(0,0,0,0.7)}
.theater-btn{text-shadow:0 0 .7px rgba(0,0,0,0.7)}
.share-url-input{margin-bottom:10px;width:100%;padding:.8rem 1rem;font-size:1rem;border:2px solid var(--accent-color);border-radius:16px;background:var(--background-light);color:var(--text-dark);text-align:center;margin-top:.5rem;box-shadow:0 2px 0 var(--accent-dark);cursor:text;transition:all .3s ease}
.share-url-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 4px 0 var(--accent-dark);transform:translateY(-2px)}
.share-url-input::selection{background:var(--accent-color);color:var(--text-light)}
/* Add these specific rules to forcefully hide balance and user profile on mobile */
@media (max-width: 768px) {
  /* Force hide these elements on mobile */
  .balance-card, 
  .user-profile {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
  }
  
  /* Improve auth buttons */
  .auth-btn {
    padding: 0.7rem 1.5rem;
    font-size: 1rem;
    min-width: 120px;
    text-align: center;
    margin: 0 0.5rem;
  }
}

.auth-prompt h3, .story-button, .gradient-btn, .nav-btn, .cta-button, .auth-btn{text-shadow:3px 3px 2px var(--shadow-color)}
.main-content#story .content-wrapper{max-width: 1400px;margin: 0 auto;padding: 0 20px;}

/* Mobile balance card styles */
.balance-card.mobile-balance {
  display: none;
}

/* Mobile - hide all token/balance displays */
@media screen and (max-width: 768px) {
  .right-section .balance-card,
  .balance-card.mobile-balance,
  .mobile-token-display {
    display: none !important;
  }
}


/* Footer Styles */
.landing-footer {
    background: #1a1a1a;
    color: white;
    padding: 4rem 5%;
    grid-column: 1 / -1;
}

.footer-container {
    max-width: 1400px;
    margin: 0 auto;
}

.footer-main {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 4rem;
    margin-bottom: 3rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer-logo {
    height: 40px;
    width: auto;
}

.footer-tagline {
    color: rgba(255, 255, 255, 0.7);
    font-size: 1rem;
}

.footer-links {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.footer-column h4 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: white;
}

.footer-column a {
    display: block;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    margin-bottom: 0.75rem;
    transition: color 0.3s ease;
}

.footer-column a:hover {
    color: white;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.company-info {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.9rem;
}

.company-info p {
    margin: 0.25rem 0;
}

.social-icons {
    display: flex;
    gap: 1rem;
}

.social-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    text-decoration: none;
    font-size: 1.2rem;
    transition: all 0.3s ease;
}

.social-icon:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
}