:root{--primary-color:#FF6B6B;--secondary-color:#4ECDC4;--accent-color:#FFE66D;--dark-bg:#f0f6ff;--medium-bg:#fefeff;--light-bg:#8F88F8;--text-primary:#333;--text-secondary:#666;--gradient:linear-gradient(135deg,#FF6B6B 0%,#FFE66D 50%,#4ECDC4 100%);--bg-gradient: linear-gradient(135deg, 
        #ffecd2 0%, 
        #fcb69f 20%, 
        #a1c4fd 50%, 
        #c2e9fb 80%, 
        #d4fc79 100%);--fluid-min-width:320;--fluid-max-width:1200;--fluid-min-size:14;--fluid-max-size:16;--fluid-min-ratio:1.2;--fluid-max-ratio:1.25}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:var(--bg-gradient);color:var(--text-primary);min-height:100vh;display:grid;grid-template-columns:280px 1fr}
.top-navbar{grid-column:1 / -1;}
.container{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}
.menu{display:flex;gap:1.5rem}
.menu-link:hover{color:var(--text-primary)}
.menu-link::after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--primary-color);transition:width .3s ease}
.menu-link:hover::after{width:100%}
.sidebar{background:var(--medium-bg);padding:2rem;border-right:1px solid rgba(255,255,255,0.1);position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar-header{margin-bottom:2rem;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,0.08)}
.logo{width:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2))}
.balance-card{background:var(--dark-bg);padding:1.5rem;border-radius:12px;margin-bottom:2rem}
.balance-label{color:var(--text-secondary);font-size:.9rem;margin-bottom:.5rem}
.floating-action-btn,.gradient-btn,.auth-cta,.audiobook-btn{padding:1rem 2.5rem;border-radius:50px;font-size:1.1rem;font-weight:600;border:none;background:#1a1a1a;color:#fff;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}
.floating-action-btn{padding:1rem 2.5rem;background:#1a1a1a;}
.floating-action-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.plus-icon{width:20px;height:20px;fill:currentColor}
.main-content{grid-column:1 / -1;width:100%;margin:0 auto;padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;background:transparent;min-height: 60vh;}
.page-header{margin-bottom:3rem;text-align:center}
.gradient-text{background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-size:2.5rem;font-weight:800;margin-bottom:1rem}
.subtitle{color:var(--text-secondary);font-size:1.1rem;margin-bottom:1.5rem}
.decorative-line{width:60px;height:4px;background:var(--gradient);margin:0 auto;border-radius:2px}
.prompt-card{background:var(--medium-bg);border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 6px rgba(0,0,0,0.1)}
.prompt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.ai-badge{background:rgba(168,85,247,0.2);color:var(--accent-color);padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600}
.prompt-input-group{display:flex;gap:1rem}
#prompt-input{flex:1;padding:1rem;background:var(--dark-bg);border:1px solid rgba(255,255,255,0.1);border-radius:8px;color:var(--text-primary);font-size:1rem}
.gradient-btn{padding:1rem 2.5rem;border-radius:50px;font-size:1.1rem;font-weight:600;border:none;background:#1a1a1a;color:#fff;cursor:pointer;transition:all .3s ease;display:inline-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)}
.gradient-btn:active{transform:translateY(0);box-shadow:0 4px 10px rgba(0,0,0,0.15)}
.sparkle-icon{width:20px;height:20px;fill:currentColor}
.page-display{background:var(--medium-bg);border-radius:12px;padding:2rem;margin-bottom:2rem}
.display-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}
.page-indicator{color:var(--text-secondary);font-size:.9rem}
.view-options{display:flex;gap:.5rem}
.view-option{padding:.5rem 1rem;background:var(--dark-bg);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer}
.view-option.active{background:var(--primary-color);color:#fff}
.page-preview{background:var(--dark-bg);border-radius:8px;padding:2rem;position:relative;min-height:400px}
.page-number{position:absolute;top:1rem;right:1rem;color:var(--text-secondary);font-size:.9rem}
.page-text{line-height:1.6;color:var(--text-primary);font-size:1.1rem;margin-bottom:2rem}
.page-actions{display:flex;gap:1rem;position:absolute;bottom:1rem;right:1rem}
.edit-btn,.illustrate-btn{padding:0.75rem 1.5rem;background:#1a1a1a;border:none;border-radius:50px;color:#fff;cursor:pointer;transition:all .3s ease;font-weight:600}
.edit-btn:hover,.illustrate-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.nav-btn{padding:0.75rem 1.5rem;border:2px solid #1a1a1a;border-radius:50px;color:#1a1a1a;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .3s ease;min-width:130px;background:#fff;font-weight:600}
.nav-btn:hover{background:#1a1a1a;color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.nav-icon{width:20px;height:20px;fill:currentColor}
.footer-content{max-width:1400px;margin:0 auto;text-align:center}
.footer-logo{width:80px;margin-bottom:1rem}
.tagline{color:var(--text-secondary);margin-bottom:1rem}
.highlight{color:var(--primary-color);font-weight:600}
.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{color:var(--primary-color)}
.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(15,23,42,0.95);z-index:9999;align-items:center;justify-content:center;backdrop-filter:blur(5px);padding:1rem}
.modal-header{text-align:center;margin-bottom:2rem}

.auth-switch{display:flex;gap:1rem;margin-bottom:2rem}
.auth-tab{flex:1;padding:1rem;background:none;border:1px solid rgba(255,255,255,0.1);color:var(--text-secondary);border-radius:8px;cursor:pointer;transition:all .2s ease}
.auth-tab.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}
.input-group{margin-bottom:1.5rem}
.input-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem}
.input-group input,.input-group select{width:100%;padding:1rem;background:var(--medium-bg);border:1px solid rgba(255,255,255,0.1);border-radius:8px;color:var(--text-primary);font-size:1rem}
.input-group input:focus{border-color:var(--primary-color);outline:none}
.auth-divider{text-align:center;margin:2rem 0;color:var (--text-secondary);position:relative}
.auth-divider::before,.auth-divider::after{content:'';position:absolute;top:50%;width:45%;height:1px;background:rgba(255,255,255,0.1)}
.auth-divider::before{left:0}
.auth-divider::after{right:0}
.social-auth{display:flex;flex-direction:column;gap:1rem}
.social-btn{width:100%;padding:1rem;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:.75rem;background:var(--medium-bg);border:1px solid rgba(255,255,255,0.1);color:var(--text-primary);cursor:pointer;transition:all .2s ease}
.social-btn:hover{background:var(--primary-color);border-color:var(--primary-color)}
.age-buttons{display:flex;gap:.5rem}
.modal-actions{margin-top:2rem;display:flex;gap:1rem}
.outline-btn{background:none;border:2px solid var(--primary-color);color:var(--primary-color);padding:1rem 2rem;border-radius:8px;cursor:pointer;transition:all .2s ease}
.outline-btn:hover{background:var(--primary-color);color:#fff}
.book-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.book-list-header h2{font-size:1.25rem;font-weight:600}
.sort-control{display:flex;align-items:center;gap:.5rem}
.sort-control span{color:var(--text-secondary);font-size:.9rem}
.sort-select{padding:.5rem;background:var(--dark-bg);border:1px solid rgba(255,255,255,0.1);border-radius:6px;color:var(--text-primary);font-size:.9rem;cursor:pointer}
.book-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}
.book-item{background:var(--dark-bg);padding:1rem;border-radius:8px;color:var(--text-primary);cursor:pointer;transition:all .3s cubic-bezier(0.4,0,0.2,1);border-left:4px solid transparent}
.book-item.pending{background:linear-gradient(135deg,rgba(99,102,241,0.1) 0%,rgba(168,85,247,0.05) 100%);border-left-color:var(--primary-color)}
.book-item.completed{background:linear-gradient(135deg,rgba(16,185,129,0.1) 0%,rgba(16,185,129,0.05) 100%);border-left-color:#10b981}
.book-item.failed{background:linear-gradient(135deg,rgba(239,68,68,0.1) 0%,rgba(239,68,68,0.05) 100%);border-left-color:#ef4444}
.book-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.2);background:var(--light-bg)}
.book-item.completed:hover{box-shadow:0 4px 12px rgba(16,185,129,0.15)}
.book-item.failed:hover{box-shadow:0 4px 12px rgba(239,68,68,0.15)}
.book-title{font-weight:500}
.book-item.selected{background-color:var(--primary-color);color:#fff}
.pages-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.page-item{padding:.5rem .75rem;background:var(--light-bg);border-radius:6px;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:background-color .2s ease,color .2s ease;user-select:none}
.page-item:hover{background:var(--primary-color);color:#fff}
.page-item.selected{background:var(--primary-color);color:#fff}
.auth-btn{padding:1rem 2.5rem;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.auth-btn.loading{opacity:.7;cursor:wait}
.no-book-selected{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:2rem;text-align:center}
.empty-state-container{max-width:560px;margin:0 auto}
.empty-state-illustration{position:relative;margin-bottom:2rem}
.illustration-image{width:200px;height:auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,0.1))}
.sparkle-container{position:absolute;top:-20px;right:-30px}
.sparkle{width:24px;height:24px;background:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" fill="%23FFD700" xmlns="http://www.w3.org/2000/svg"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>');position:absolute;animation:float 3s infinite ease-in-out}
.empty-state-title{font-size:2rem;margin-bottom:1rem;background:linear-gradient(45deg,#6a11cb,#2575fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.empty-state-description{color:#666;line-height:1.6;margin-bottom:2rem}
.cta-button.with-icon{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2rem;font-weight:600;transition:transform .2s ease}
.cta-button.with-icon:hover{transform:translateY(-2px)}
.helper-text{color:#888;font-size:.9rem;margin-top:1.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}
.info-icon{width:16px;height:16px;fill:currentColor}
@keyframes float {
0%,100%{transform:translateY(0)}
50%{transform:translateY(-10px)}
}
.cta-button{cursor:pointer}
.close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:color .2s ease,background-color .2s ease}
.close-btn:hover{color:var(--text-primary);background-color:rgba(255,255,255,0.05)}
.close-btn svg{width:1.25rem;height:1.25rem;vertical-align:middle}
.user-profile-container{display:flex;align-items:center;gap:16px}
.user-profile{display:flex;align-items:center;gap:12px;padding:8px 16px;background:rgba(255,255,255,0.1);border-radius:24px;transition:all .3s ease}
.user-profile:hover{background:rgba(255,255,255,0.15)}
.profile-badge{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#6a11cb 0%,#2575fc 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;border:2px solid rgba(255,255,255,0.2);box-shadow:0 2px 8px rgba(0,0,0,0.1)}
.profile-info{display:flex;flex-direction:column;align-items:flex-start}
.username{font-weight:500;font-size:.9rem;color:#fff;white-space:nowrap}
.logout-link{font-size:.8rem;color:#a0a0a0;text-decoration:none;transition:color .3s ease}
.logout-link:hover{color:#fff;text-decoration:underline}
.profile-badge{transition:transform .3s cubic-bezier(0.4,0,0.2,1)}
.profile-badge:hover{transform:rotate(15deg) scale(1.1)}
.book-title-style{font-size:1.5em;margin-bottom:10px;color:#333}
.story-page-container{margin-bottom:2rem;padding:2rem;background:#fff;border-radius:16px;box-shadow:0 4px 12px rgba(0,0,0,0.1);border:2px solid var(--accent-color)}
.story-page-title{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem;font-weight:600}
.story-page{width:100%;min-height:150px;padding:1rem;background:var(--dark-bg);border:2px solid var(--accent-color);border-radius:12px;font-family:'Inter',sans-serif;font-size:1rem;line-height:1.6;color:var(--text-primary);resize:vertical;transition:all 0.3s ease}

.definitions-textarea{width:100%;min-height:80px;padding:1rem;border:2px solid var(--accent-color);border-radius:8px;font-size:0.98rem;color:var(--text-primary);background:var(--dark-bg);resize:none;overflow:hidden;height:auto}
.master-defs{margin-top:2rem;border:2px dashed rgba(0,0,0,0.06)}
.definitions-master-textarea{background:#fff;color:var(--text-primary);border-color:var(--primary-color)}
.button-container{margin-top:2rem;padding:2rem;background:#fff;border-radius:16px;box-shadow:0 4px 12px rgba(0,0,0,0.1);display:flex;justify-content:center;gap:1rem;border:2px solid var(--accent-color)}
.story-button{padding:10px 15px;font-size:1em;border-radius:5px;cursor:pointer}
.secondary-button{background-color:#f0f0f0;color:#333;border:1px solid #ccc}
.generate-story-btn.loading,.story-button.loading{animation:loadingAnimation 1s infinite}
@keyframes loadingAnimation {
0%{opacity:1}
50%{opacity:.5}
100%{opacity:1}
}
.button-container button{padding:1rem 2.5rem;font-size:1.1rem;border-radius:50px;font-weight:600;cursor:pointer;transition:all 0.3s ease;min-width:180px}
.button-container .gradient-btn{background:#1a1a1a;border:none;color:#fff}
.button-container .gradient-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.button-container .secondary-button{background:#fff;border:2px solid #1a1a1a;color:#1a1a1a;border-radius:50px}
.button-container .secondary-button:hover{background:var(--dark-bg);transform:translateY(-2px)}
@media (max-width: 768px) {
.story-page-container{padding:1rem;margin-bottom:1rem}
.button-container{flex-direction:column;padding:1rem}
.button-container button{width:100%;min-width:unset}
}
.button-container button.gradient-btn{background:#1a1a1a;color:#fff}
.button-container button.gradient-btn:hover{background:#333;transform:translateY(-2px)}
.button-container button.gradient-btn:disabled{background:#ccc;cursor:not-allowed;transform:none}
.button-container button.secondary-button{background:#fff;color:#1a1a1a;border:2px solid #1a1a1a}
.button-container button.secondary-button:hover{background-color:#e0e0e0}
.button-container button.secondary-button:disabled{background-color:#f0f0f0;color:#999;cursor:not-allowed;border-color:#ccc}
#generate-story-btn,.button-container button.loading{animation:loadingAnimation 1s infinite}
@keyframes loadingAnimation {
0%{opacity:1}
50%{opacity:.5}
100%{opacity:1}
}
.button-container button#cancel-btn{background-color:#dc2626;color:#fff}
.button-container button#cancel-btn:hover{background-color:#b91c1c}
.image-card{position:relative;cursor:pointer;transition:all .3s ease;width:50%;border-radius:15px;overflow:hidden;transform:scale(1);box-shadow:0 4px 6px rgba(0,0,0,0.1)}
.image-card:hover{transform:scale(1.02);box-shadow:0 6px 12px rgba(0,0,0,0.15)}
.image-card.selected{transform:scale(1.03);box-shadow:0 8px 16px rgba(46,134,222,0.4);border:3px solid #2e86de;animation:select-pop .3s ease}
.image-card.selected::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(46,134,222,0.3);z-index:1}
.image-card.selected::before{content:'';position:absolute;top:8px;right:8px;width:24px;height:24px;background:#2e86de url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTkuMjkzIDUuMjkzTDkgMTUuNTg2IDQuNzA3IDExLjI5M2wtMS40MTQgMS40MTRMOSAxOC40MTRsMTEuNzA7LTExLjcwN3oiLz48L3N2Zz4=) center no-repeat;background-size:16px;border-radius:50%;z-index:2;box-shadow:0 2px 4px rgba(0,0,0,0.2)}
@keyframes select-pop {
0%{transform:scale(1)}
50%{transform:scale(1.05)}
100%{transform:scale(1.03)}
}
.image-card img{display:block;width:100%;height:auto;border-radius:15px;transition:transform .3s ease}
#download-pdf-btn.loading{position:relative;padding-right:2.5rem}
#download-pdf-btn.loading::after{content:"";position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:1.2rem;height:1.2rem;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin {
to{transform:translateY(-50%) rotate(360deg)}
}
.pending-message{color:#666;font-style:italic}
.notification{position:fixed;top:20px;right:20px;background:#4CAF50;color:#fff;padding:15px;border-radius:4px;z-index:1000;animation:fadeOut 5s forwards}
@keyframes shimmer {
100%{left:200%}
}
@keyframes pulse-glow {
0%{box-shadow:0 0 0 0 rgba(108,92,231,0.1)}
70%{box-shadow:0 0 0 10px rgba(108,92,231,0)}
100%{box-shadow:0 0 0 0 rgba(108,92,231,0)}
}
.status-indicator{display:flex;align-items:center;gap:.8rem;font-size:.9rem}
.pending-message{color:#6c5ce7;display:flex;align-items:center;gap:.5rem}
.pending-message::before{content:'';width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}
.failed-message{color:#ff5252;display:flex;align-items:center;gap:.5rem}
.failed-message::before{content:'⚠'}
@media (max-width: 768px) {
.book-item{flex-direction:column;align-items:flex-start;gap:1rem}
.status-indicator{width:100%;justify-content:space-between}
}
.status-content{display:flex;align-items:center;gap:1rem}
.status-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.completed .status-icon{background:#00b89420;color:#00b894}
.failed .status-icon{background:#ff767520;color:#ff7675}
.status-text{flex-grow:1}
.book-actions{display:flex;gap:1rem;margin-left:auto}
.view-book-btn{background:#1a1a1a;color:#fff;padding:0.75rem 1.5rem;border-radius:50px;border:none;transition:all .3s ease;font-weight:600;cursor:pointer}
.view-book-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.retry-btn{background:#e74c3c;color:#fff;padding:0.75rem 1.5rem;border-radius:50px;border:none;transition:all .3s ease;font-weight:600;cursor:pointer}
.retry-btn:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 8px 20px rgba(231,76,60,0.3)}
@keyframes slideIn {
0%{transform:translateX(20px);opacity:0}
100%{transform:translateX(0);opacity:1}
}
@keyframes shake {
0%,100%{transform:translateX(0)}
25%{transform:translateX(5px)}
75%{transform:translateX(-5px)}
}
.view-book-btn:hover{background:#009975;transform:translateY(-1px)}
.retry-btn:hover{background:#ff5252;transform:translateY(-1px)}
.book-item{background:var(--dark-bg);border-left:4px solid transparent;transition:all .3s cubic-bezier(0.4,0,0.2,1)}
.book-item.pending{background:linear-gradient(135deg,rgba(99,102,241,0.1) 0%,rgba(168,85,247,0.05) 100%);border-left-color:var(--primary-color)}
.book-item.completed{background:linear-gradient(135deg,rgba(16,185,129,0.1) 0%,rgba(16,185,129,0.05) 100%);border-left-color:#10b981}
.book-item.failed{background:linear-gradient(135deg,rgba(239,68,68,0.1) 0%,rgba(239,68,68,0.05) 100%);border-left-color:#ef4444}
.book-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.2);background:var(--light-bg)}
.book-item.completed:hover{box-shadow:0 4px 12px rgba(16,185,129,0.15)}
.book-item.failed:hover{box-shadow:0 4px 12px rgba(239,68,68,0.15)}
.status-indicator{display:flex;align-items:center;gap:.8rem;font-size:.9rem}
.pending-message{color:#6c5ce7;display:flex;align-items:center;gap:.5rem}
.pending-message::before{content:'';width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}
.failed-message{color:#ff5252;display:flex;align-items:center;gap:.5rem}
.failed-message::before{content:'⚠'}
@media (max-width: 768px) {
.book-item{flex-direction:column;align-items:flex-start;gap:1rem}
.status-indicator{width:100%;justify-content:space-between}
}
.notification{position:fixed;top:20px;right:20px;background:#4CAF50;color:#fff;padding:15px;border-radius:4px;z-index:1000;animation:fadeOut 5s forwards}
.generation-container{background:linear-gradient(145deg,var(--medium-bg) 0%,var(--dark-bg) 100%);border-radius:20px;padding:2.5rem;box-shadow:0 8px 32px rgba(0,0,0,0.1);border:1px solid rgba(255,255,255,0.1);max-width:600px;margin:0 auto}
.generation-header{text-align:center;margin-bottom:2rem;position:relative}
.loading-spinner{position:relative;width:80px;height:80px;margin:0 auto 1.5rem}
.spinner-circle{width:100%;height:100%;border:3px solid rgba(255,255,255,0.1);border-radius:50%;position:absolute}
.spinner-gradient{width:100%;height:100%;border:3px solid transparent;border-top-color:var(--accent-color);border-radius:50%;animation:spin 1.5s linear infinite;position:absolute}
.generation-title{font-size:1.8rem;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:1rem}
.time-estimate{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-bottom:2rem}
.clock-icon{width:24px;height:24px;opacity:.8}
.time-badge{background:rgba(168,85,247,0.2);color:var(--accent-color);padding:.5rem 1.2rem;border-radius:20px;font-weight:600}
.generation-text{text-align:center;color:var(--text-secondary);line-height:1.6;margin-bottom:2rem;font-size:1.1rem}
.highlight{color:var(--text-primary);font-weight:500}
.cta-section{text-align:center}
.plus-icon{width:20px;height:20px;vertical-align:middle}
.pulse{animation:pulse 2s infinite}
.secondary-info{color:var(--text-secondary);font-size:.9rem;margin-top:1.5rem;opacity:.8}
@keyframes spin {
to{transform:rotate(360deg)}
}
@keyframes pulse {
0%{transform:scale(1)}
50%{transform:scale(1.05)}
100%{transform:scale(1)}
}
.mobile-menu-btn{display:none;background:none;border:none;padding:8px;cursor:pointer;color:var(--text-primary)}
.menu-icon{width:24px;height:24px;fill:currentColor}
.close-sidebar-btn{display:none;position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-primary);padding:8px;cursor:pointer}
.close-icon{width:24px;height:24px;fill:currentColor}
.mobile-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:998}
@media (max-width: 768px) {
.mobile-menu-btn{display:block}
.close-sidebar-btn{display:block}
.sidebar{position:fixed;left:-280px;top:0;bottom:0;width:280px;z-index:999;transition:left .3s ease}
.sidebar.active{left:0}
.mobile-overlay.active{display:block}
.main-content{margin-left:0;padding:0; padding-top:10px;padding-bottom:10px}
.top-navbar .container{padding:.4rem}
.page-display{padding:1rem}
.prompt-card{padding:1rem}
.prompt-input-group{flex-direction:column;gap:1rem}
.gradient-btn{width:100%}
.navigation-container{flex-direction:column;gap:1rem}
.nav-btn{width:100%}
.book-item{padding:.8rem}
.empty-state-container{padding:1rem}
.modal-content{width:95%;margin:1rem;padding:1.5rem}
.auth-btn{padding:.5rem}
.user-profile{padding:.5rem}
.balance-card{margin:1rem 0}
.image-card{width:100%}
.images-container{flex-direction:column;gap:1rem}
nav.menu{display:none}
.sidebar.active nav.menu{display:flex;flex-direction:column;margin:1rem 0;width:100%}
.menu-link:hover{background-color:var(--light-bg)}
.menu-link::after{display:none}
}
@media (max-width: 768px) {
.sidebar{position:fixed;left:-100%;top:0;bottom:0;width:85%;max-width:280px;z-index:1000;transition:left .3s ease;display:block!important;overflow-y:auto}
.sidebar.active{left:0;box-shadow:2px 0 12px rgba(0,0,0,0.2)}
.mobile-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:999;display:none;opacity:0;transition:opacity .3s ease}
.mobile-overlay.active{display:block;opacity:1}
.mobile-menu-btn{display:flex;align-items:center;justify-content:center;margin-right:1rem}
body.sidebar-open{overflow:hidden}
}
.images-container{display:flex;gap:1rem;flex-wrap:wrap;justify-content:flex-start}
.image-card{width:auto;position:relative;min-height:300px}
.image-card.generating{border:2px dashed var(--text-secondary);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.05)}
.generating-indicator{text-align:center;}
.image-card.loading{display:flex;align-items:center;justify-content:center;background:#f5f5f5;min-height:300px;border:2px dashed #ddd}
.loading-spinner{text-align:center}
.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 10px}
@keyframes spin {
0%{transform:rotate(0deg)}
100%{transform:rotate(360deg)}
}
.sidebar-header{padding:1rem 0;border-bottom:1px solid rgba(255,255,255,0.08);margin-bottom:1.5rem}
.sidebar .book-list-header{margin-top:1.5rem}
.pages-list-container{list-style:none;padding:0;margin:0;width:100%}
.completion-popup{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.9);display:none;opacity:0;justify-content:center;align-items:center;z-index:1000;transition:opacity .4s cubic-bezier(0.4,0,0.2,1);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%)}
.completion-content{background:linear-gradient(145deg,var(--medium-bg),var(--dark-bg));padding:2.5rem;border-radius:20px;text-align:center;max-width:440px;width:90%;position:relative;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,0.4),0 0 24px rgba(255,255,255,0.08);transform:translateY(20px) scale(0.98);transition:all .4s cubic-bezier(0.4,0,0.2,1);position:relative}
.completion-content::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:20px;padding:2px;background:linear-gradient(45deg,var(--primary-color) 0%,rgba(255,255,255,0.15) 50%,var(--primary-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.completion-content h3{margin:0 0 1.2rem;font-size:2rem;background:linear-gradient(45deg,#fff,var(--primary-color));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.5px;position:relative;display:inline-block}
.completion-content h3::after{content:'✨';position:absolute;right:-38px;top:-12px;font-size:1.6rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2))}
.completion-content p{color:var(--text-primary);line-height:1.6;margin-bottom:2rem;font-size:1.1rem;opacity:.9}
.button-group{display:flex;gap:1.2rem;justify-content:center}
.gradient-btn{z-index:100;padding:1rem 2.5rem;border-radius:50px;font-weight:600;transition:all .3s ease;background:#1a1a1a;color:#fff;border:none}
.gradient-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.completion-popup.active{opacity:1}
.completion-popup.active .completion-content{transform:translateY(0) scale(1)}
.modal-close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;padding:0;border:none;background:rgba(255,255,255,0.1);border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;color:var(--text-primary);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,0.15);z-index:100}
.modal-close-btn:hover{background:rgba(255,255,255,0.2);transform:rotate(90deg);color:var(--primary-color)}
.modal-close-btn::before{content:'×';font-size:1.8rem;line-height:1;margin-top:-2px}
.audio-controls{display:flex;gap:8px;align-items:center;margin-left:8px}
.audio-btn{background:none;border:none;cursor:pointer;padding:4px;font-size:1.2em;border-radius:50%;transition:background-color .2s}
.audio-btn:hover{background-color:rgba(255,255,255,0.2)}
#play-audiobook{display:flex;align-items:center;justify-content:center;gap:8px}
.theater-mode{background:var(--dark-bg);position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:none;opacity:0;transition:opacity .3s ease;backdrop-filter:blur(15px)}
.theater-mode .image-card{height:90vh;margin:0 auto;position:relative;border-radius:15px;overflow:hidden;box-shadow:0 0 60px color-mix(in srgb,var(--accent-color) 30%,transparent);border:2px solid var(--primary-color);background:var(--medium-bg);animation:float 6s ease-in-out infinite}
.theater-mode .image-card::before{content:'';position:absolute;inset:-2px;background:var(--gradient);z-index:-1;border-radius:15px;filter:blur(20px);opacity:.2}
.theater-mode .nav-btn2{position:fixed;top:50%;transform:translateY(-50%);background:var(--gradient);width:80px;height:80px;border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;justify-content:center;box-shadow:0 8px 30px color-mix(in srgb,var(--primary-color) 30%,transparent);border:2px solid var(--primary-color);font-size:3.5rem;color:var(--text-primary)}
.theater-mode .nav-btn2::before{content:'';position:absolute;inset:0;background:linear-gradient(45deg,transparent 50%,rgba(255,255,255,0.1));border-radius:50%}
.theater-mode .nav-btn2:hover{transform:translateY(-50%) scale(1.1);box-shadow:0 12px 40px color-mix(in srgb,var(--secondary-color) 40%,transparent);filter:brightness(1.2)}
.theater-mode .close-theater{position:fixed;top:30px;right:30px;background:var(--accent-color);border:none;width:45px;height:45px;border-radius:50%;cursor:pointer;color:var(--text-primary);font-size:1.8rem;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 25px color-mix(in srgb,var(--accent-color) 30%,transparent);border:2px solid var(--primary-color)}
.theater-mode .close-theater:hover{transform:rotate(90deg) scale(1.1);background:var(--secondary-color)}
.theater-mode .nav-btn2.prev-page-btn{left:30px}
.theater-mode .nav-btn2.next-page-btn{right:30px}
@keyframes float {
0%,100%{transform:translateY(0)}
50%{transform:translateY(-20px)}
}
@media (max-width: 768px) {
.theater-mode .nav-btn2{width:60px;height:60px;font-size:2.5rem}
}
#audiobook-btn{float:right}
#audiobook-btn.loading{position:relative;cursor:wait;opacity:.7}
#audiobook-btn.loading::after{content:"";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
#audiobook-btn.loading .audio-controls,#audiobook-btn.loading .button-text{opacity:.5}
.theater-mode .loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.7);display:none;justify-content:center;align-items:center;backdrop-filter:blur(4px)}
.theater-mode .loading-overlay.active{display:flex}
.theater-mode .loading-indicator{text-align:center;color:var(--text-primary)}
.theater-mode .loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,0.1);border-radius:50%;border-top-color:var(--accent-color);animation:spin 1s linear infinite;margin:0 auto 1rem}
.theater-mode .loading-text{font-size:1.1rem;margin-top:1rem;color:var(--text-primary)}
.audiobook-btn{position:relative;transition:all .3s ease}
.audiobook-btn.loading{cursor:not-allowed;opacity:.7}
.generating-indicator{display:flex;align-items:center;gap:8px}
.generating-indicator .spinner{width:16px;height:16px;border:3px solid #f3f3f3;border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}
.generating-progress{position:absolute;bottom:0;left:0;height:2px;background:#3498db;width:0;transition:width .3s ease;animation:progress-pulse 1.5s ease-in-out infinite}
@keyframes spin {
0%{transform:rotate(0deg)}
100%{transform:rotate(360deg)}
}
@keyframes progress-pulse {
0%{opacity:1}
50%{opacity:.5}
100%{opacity:1}
}
.audiobook-btn:not(.loading):hover{transform:translateY(-1px);box-shadow:0 2px 5px rgba(0,0,0,0.1)}
.generating-text{animation:pulse 1.5s ease-in-out infinite}
@keyframes pulse {
0%{opacity:1}
50%{opacity:.6}
100%{opacity:1}
}
.audiobook-btn{position:relative;padding:0.75rem 1.5rem;background:#1a1a1a;border:none;border-radius:50px;color:#fff;font-weight:600;cursor:pointer;overflow:hidden;transition:all .3s ease;display:flex;align-items:center;gap:8px}
.audiobook-btn:hover:not(.loading){transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2);background:#333}
.audiobook-btn .generating-text{display:flex;align-items:center;gap:8px}
.audiobook-btn .generating-indicator{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,0.9)}
.audiobook-btn .spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,0.3);border-top:2px solid #fff;border-radius:50%;animation:spin .8s linear infinite}
.audiobook-btn .generating-progress{position:absolute;bottom:0;left:0;width:100%;height:3px;background:rgba(255,255,255,0.1);overflow:hidden}
.audiobook-btn .generating-progress::after{content:'';position:absolute;top:0;left:0;width:30%;height:100%;background:rgba(255,255,255,0.9);animation:progress 1.5s ease-in-out infinite}
.audiobook-btn .audio-controls{display:flex;align-items:center;gap:4px}
.audiobook-btn .play-icon,.audiobook-btn .pause-icon{font-size:1.2em;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.2);border-radius:50%;transition:background .2s ease}
.audiobook-btn .play-icon:hover,.audiobook-btn .pause-icon:hover{background:rgba(255,255,255,0.3)}
@keyframes progress {
0%{left:-30%}
100%{left:100%}
}
.audiobook-btn.loading{cursor:not-allowed;opacity:.9;background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%)}
.audiobook-btn.loading:hover{transform:none;box-shadow:0 4px 12px rgba(99,102,241,0.25)}
.share-icon{width:20px;height:20px;fill:currentColor}
.share-url-input{width:100%;padding:8px 12px;border:2px solid var(--primary-color);border-radius:8px;background:var(--dark-bg);color:var(--text-primary);font-size:14px;margin-top:8px}
.shared-book-container{max-width:800px;margin:0 auto;padding:2rem}
.shared-book-header{text-align:center;margin-bottom:3rem}
.auth-prompt{margin:2rem auto;padding:2.5rem;background:linear-gradient(145deg,var(--medium-bg),var(--dark-bg));border-radius:16px;position:relative;box-shadow:0 8px 32px rgba(0,0,0,0.15);border:1px solid rgba(255,255,255,0.1);max-width:400px}
.auth-prompt-content{text-align:center}
.auth-prompt h3{font-size:1.8rem;margin-bottom:1rem;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.auth-prompt p{color:var(--text-secondary);font-size:1rem;margin-bottom:2rem;line-height:1.5}
.auth-buttons{display:flex;gap:1rem;justify-content:center}
.auth-buttons .gradient-btn{background:#1a1a1a}
.auth-buttons .gradient-btn:hover{background:#333}
.auth-buttons .outline-btn{background:transparent;border:2px solid var(--primary-color);color:var(--text-primary)}
.auth-buttons .outline-btn:hover{background:var(--primary-color);color:#fff}
@media (max-width: 768px) {
.auth-prompt{margin:1rem;padding:1.5rem}
.auth-buttons{flex-direction:column}
.auth-buttons .gradient-btn,.auth-buttons .outline-btn{width:100%}
}
.auth-prompt{margin:2rem auto;padding:2rem;background:linear-gradient(145deg,var(--medium-bg),var(--dark-bg));border-radius:20px;position:relative;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.15);border:1px solid rgba(255,255,255,0.1);max-width:600px}
.auth-prompt::before{content:'';position:absolute;inset:-1px;background:var(--gradient);z-index:-1;filter:blur(24px);opacity:.15}
.auth-prompt-content{text-align:center;position:relative;z-index:1}
.auth-prompt h3{font-size:2rem;margin-bottom:1rem;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}
.auth-prompt p{color:var(--text-secondary);font-size:1.1rem;margin-bottom:2rem;line-height:1.6}
.auth-prompt-features{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem}
.feature{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-primary)}
.feature-icon{font-size:1.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2))}
.auth-cta{padding:1rem 2.5rem;font-size:1.1rem;position:relative;overflow:hidden;transition:all .3s cubic-bezier(0.4,0,0.2,1)}
.auth-cta:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(99,102,241,0.3)}
.sparkles{font-size:2rem;margin-bottom:1rem;animation:sparkle 2s infinite}
@keyframes sparkle {
0%,100%{opacity:1;transform:scale(1)}
50%{opacity:.7;transform:scale(1.1)}
}
@media (max-width: 768px) {
.auth-prompt{margin:1rem;padding:1.5rem}
.auth-prompt-features{flex-direction:column;gap:1rem}
.feature{flex-direction:row;justify-content:center}
}
.shared-page{margin-bottom:3rem;padding:2rem;background:var(--medium-bg);border-radius:12px}
.error-container{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:2rem;text-align:center}
.error-content{text-align:center;max-width:480px;padding:2rem;background-color:#fff;border-radius:16px;box-shadow:0 4px 12px rgba(0,0,0,0.1)}
.error-illustration{margin-bottom:1.5rem}
.error-illustration img{max-width:200px;height:auto}
.error-title{font-size:1.5rem;color:var(--text-primary);margin-bottom:1rem}
.error-description{color:var(--text-secondary);margin-bottom:2rem;line-height:1.5}
.error-actions{display:flex;gap:1rem;justify-content:center}
.error-actions button,.error-actions a{min-width:120px;padding:.75rem 1.5rem;z-index:10;}
.secondary-btn{background:#fff;border:2px solid #1a1a1a;color:#1a1a1a;border-radius:50px;padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease}
.secondary-btn:hover{background:#f5f5f5;color:#1a1a1a;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.15)}
.shared-book-container{max-width:1000px;margin:0 auto;padding:2rem;min-height:60vh}
.shared-book-container .page-header{margin-bottom:3rem}
.shared-book-container .page-display{background:var(--medium-bg);border-radius:12px;padding:2rem;margin-bottom:2rem}
.shared-book-container .page-navigation{display:flex;align-items:center;justify-content:center;gap:2rem;margin:2rem 0}
.shared-book-container .nav-btn:disabled{opacity:.5;cursor:not-allowed}
.shared-book-container .nav-btn:not(:disabled):hover{background-color:var(--primary-color);border-color:var,--primary-color}
.shared-book-container .page-indicator{color:var(--text-secondary);font-size:.9rem}
.shared-book-container .page-preview{background:var(--dark-bg);border-radius:8px;padding:2rem;position:relative;min-height:400px}
.shared-book-container .page-content{display:flex;flex-direction:column;gap:2rem;align-items:center}
.shared-book-container .image-container{width:100%;max-width:800px;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,0.2)}
.shared-book-container .page-image{width:100%;height:auto;display:block}
.shared-book-container .text-container{width:100%;max-width:800px}
.book-actions{display:flex;gap:1rem;margin-top:1rem;justify-content:center}
.download-icon{width:20px;height:20px;margin-right:8px}
#download-shared-pdf{display:flex;align-items:center}
#download-shared-pdf.loading{position:relative;padding-right:2.5rem}
#download-shared-pdf.loading::after{content:"";position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:1.2rem;height:1.2rem;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
.subscription-popup{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.85);display:none;opacity:0;justify-content:center;align-items:center;z-index:1000;transition:opacity .4s cubic-bezier(0.4,0,0.2,1);backdrop-filter:blur(8px)}
.subscription-popup.active{display:flex;opacity:1}
.subscription-content{background:linear-gradient(145deg,var(--medium-bg),var(--dark-bg));padding:2.5rem;border-radius:20px;text-align:center;max-width:400px;width:90%;position:relative;transform:translateY(20px) scale(0.98);transition:all .4s cubic-bezier(0.4,0,0.2,1);box-shadow:0 20px 40px rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.1)}
.subscription-popup.active .subscription-content{transform:translateY(0) scale(1)}
.subscription-icon{font-size:3rem;margin-bottom:1.5rem;filter:drop-shadow(0 0 10px rgba(var(--primary-color),0.5));animation:float 6s ease-in-out infinite}
.subscription-content h3{font-size:1.8rem;margin-bottom:1rem;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.subscription-content p{color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}
.feature-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}
.feature-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:rgba(255,255,255,0.05);border-radius:12px;transition:transform .3s ease}
.feature-item:hover{transform:translateX(5px);background:rgba(255,255,255,0.1)}
.feature-icon{font-size:1.2rem}
.feature-text{color:var(--text-primary);font-size:.95rem}
.subscribe-btn{position:relative;overflow:hidden;padding:1rem 2.5rem;font-size:1.1rem}
.btn-sparkle{position:absolute;right:1rem;top:50%;transform:translateY(-50%);animation:pulse 2s infinite}
.auth-buttons{display:flex;gap:1rem;justify-content:center}
.primary-auth-btn,.secondary-auth-btn{display:flex;align-items:center;gap:.75rem;padding:1rem 2rem;font-size:1.1rem;font-weight:600;border-radius:12px;transition:all .3s cubic-bezier(0.4,0,0.2,1);width:200px;justify-content:center}
.primary-auth-btn{background:var(--gradient);color:#fff;border:none;box-shadow:0 4px 12px rgba(99,102,241,0.25)}
.primary-auth-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(99,102,241,0.35)}
.secondary-auth-btn{background:transparent;color:var(--text-primary);border:2px solid var(--primary-color)}
.secondary-auth-btn:hover{background:var(--primary-color);color:#fff;transform:translateY(-2px)}
.auth-icon{width:24px;height:24px}
@media (max-width: 768px) {
.auth-buttons{flex-direction:column;gap:1rem}
.primary-auth-btn,.secondary-auth-btn{width:100%}
}
.format-buttons{display:flex;gap:1rem;margin-top:.5rem}
.format-option{flex:1;padding:1rem;border:2px solid rgba(255,255,255,0.1);border-radius:12px;background:var(--medium-bg);color:var(--text-secondary);cursor:pointer;transition:all .3s cubic-bezier(0.4,0,0.2,1);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.format-option:hover{border-color:var(--primary-color);transform:translateY(-2px)}
.format-option.selected{background:linear-gradient(135deg,rgba(99,102,241,0.1) 0%,rgba(168,85,247,0.05) 100%);border-color:var(--primary-color);color:var(--text-primary);box-shadow:0 4px 12px rgba(99,102,241,0.2)}
.format-option::before{content:'';position:absolute;inset:-2px;background:var(--gradient);opacity:0;transition:opacity .3s ease;z-index:-1}
.format-option.selected::before{opacity:.1}
.format-icon{font-size:1.5rem;margin-bottom:.25rem}
.format-label{font-weight:500;font-size:.9rem}
.format-description{font-size:.8rem;opacity:.7;text-align:center}
.format-option .tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) scale(0.8);background:var(--dark-bg);padding:.75rem 1rem;border-radius:8px;font-size:.8rem;color:var(--text-primary);box-shadow:0 4px 12px rgba(0,0,0,0.2);opacity:0;visibility:hidden;transition:all .2s ease;width:max-content;max-width:200px;text-align:center;pointer-events:none;z-index:100}
.format-option .tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--dark-bg)}
.format-option:hover .tooltip{opacity:1;visibility:visible;transform:translateX(-50%) scale(1)}
.experimental-badge{position:absolute;top:0;right:0;background:var(--accent-color);color:#fff;font-size:.7rem;padding:.25rem .5rem;border-radius:12px;font-weight:600;transform:scale(0.8);transition:transform .3s ease}
.format-option:hover .experimental-badge{transform:scale(1)}
@media screen and (max-width: 1400px) {
body{grid-template-columns:250px 1fr}
}
@media screen and (max-width: 1200px) {
.images-container{grid-template-columns:1fr 1fr}
.shared-book-container{padding:1rem}
}
@media screen and (max-width: 992px) {
body{grid-template-columns:220px 1fr}
.gradient-text{font-size:2rem}
.completion-content,.modal-content{width:95%;max-width:500px}
}
@media screen and (max-width: 768px) {
.sidebar{position:fixed;left:-100%;width:85%;max-width:300px;z-index:1000;transition:left .3s ease}
.sidebar.active{left:0}
.mobile-menu-btn{display:block}
.mobile-overlay.active{display:block}
.prompt-input-group,.navigation-container,.auth-buttons,.format-buttons{flex-direction:column;gap:1rem}
.gradient-btn,.nav-btn,.format-option{width:100%}
.images-container{grid-template-columns:1fr}
.page-preview{padding:1rem}
.book-actions{flex-wrap:wrap}
}
@media screen and (max-width: 480px) {
.top-navbar{padding:.5rem 1rem}
.gradient-text{font-size:1.75rem}
.subtitle{font-size:.9rem}
.prompt-card,.page-display{padding:1rem}
.completion-content,.modal-content,.auth-prompt{padding:1.5rem}
.format-buttons{gap:.5rem}
.format-option{padding:.75rem}
.feature-list{gap:.5rem}
.theater-mode .nav-btn2{width:40px;height:40px;font-size:1.5rem}
}
.spacing-sm{padding:clamp(0.5rem,1vw,1rem)}
.spacing-md{padding:clamp(1rem,2vw,2rem)}
.spacing-lg{padding:clamp(1.5rem,3vw,3rem)}
.grid-layout{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.container{width:min(100% - 2rem,1200px);margin-inline:auto}
.flex-container{display:flex;flex-wrap:wrap;gap:1rem}
.theater-mode{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.95);z-index:9999;opacity:0;transition:opacity .3s ease}
.theater-mode.active{display:flex;opacity:1;justify-content:center;background:linear-gradient(45deg,var(--medium-bg) 30%,var(--dark-bg))}
.theater-mode .theater-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:20px}
.theater-mode .theater-controls{background:rgba(0,0,0,0.7);padding:1vh;border-radius:30px;display:flex;gap:20px;align-items:center}
.theater-mode .theater-btn{background:none;border:none;color:#fff;cursor:pointer;padding:1.1vh;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center}
.theater-mode .theater-btn:hover{background:rgba(255,255,255,0.1);transform:scale(1.1)}
.theater-mode .theater-btn svg{width:24px;height:24px}
.theater-mode .theater-btn.play-pause-btn{background:rgba(255,255,255,0.1);padding:1.1vh}
.theater-mode .theater-btn.play-pause-btn:hover{background:rgba(255,255,255,0.2)}
.theater-mode .close-theater{z-index:100;position:absolute;top:20px;right:20px;background:rgba(0,0,0,0.5);border:none;color:#fff;font-size:24px;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .2s ease}
.theater-mode .close-theater:hover{background:rgba(0,0,0,0.7);transform:rotate(90deg)}
.theater-mode .nav-btn2{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.5);border:none;color:#fff;padding:1.1vh;cursor:pointer;border-radius:50%;transition:background-color .2s}
.theater-mode .nav-btn2:hover{background:rgba(0,0,0,0.7)}
.theater-mode .nav-btn2.prev-page-btn{left:20px}
.theater-mode .nav-btn2.next-page-btn{right:20px}
.tokens-popup{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:1000;justify-content:center;align-items:center;opacity:0;transition:opacity .3s ease}
.tokens-popup.active{opacity:1}
.tokens-popup-content{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 10px 25px rgba(0,0,0,0.1);max-width:480px;width:90%;text-align:center;position:relative;transform:translateY(20px);transition:transform .3s ease}
.tokens-popup.active .tokens-popup-content{transform:translateY(0)}
.tokens-popup-icon{width:80px;height:80px;background:#f8f9fa;border-radius:50%;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;font-size:2.5rem}
.tokens-popup h3{color:#2c3e50;margin-bottom:1rem;font-size:1.5rem}
.tokens-popup p{color:#666;margin-bottom:1.5rem;line-height:1.6}
.tokens-popup .subscription-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;padding:.8rem 2rem;border-radius:8px;border:none;font-size:1rem;font-weight:500;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-right:1rem;text-decoration:none;display:inline-block}
.tokens-popup .subscription-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(99,102,241,0.2)}
.tokens-popup .close-btn{color:#666;background:none;border:none;padding:.8rem 2rem;cursor:pointer;font-size:1rem}
.tokens-popup .close-btn:hover{color:#2c3e50}
.button-container button{border-radius:50px;border:none;font-size:1.1rem;font-weight:600}
.gradient-btn{border-radius:50px;font-size:1.1rem;padding:1rem 2.5rem;border:none;background:#1a1a1a;color:#fff;transition:all .3s ease}
.gradient-btn:hover{background:#333;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.2)}
.gradient-btn:active{transform:translateY(0);box-shadow:0 4px 10px rgba(0,0,0,0.15)}

/* Failed Book Notification Modal */
.failed-book-modal {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1000;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.failed-book-modal.active {
  opacity: 1;
  visibility: visible;
}

.failed-book-modal .modal-content {
  background: #fff;
  padding: 2rem;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
  max-width: 520px;
  width: 90%;
  text-align: center;
  position: relative;
  transform: translateY(20px) scale(0.95);
  transition: transform 0.3s ease;
}

.failed-book-modal.active .modal-content {
  transform: translateY(0) scale(1);
}

.failed-book-modal .modal-header {
  margin-bottom: 1.5rem;
  position: relative;
}

.failed-book-modal .modal-header h3 {
  color: #e74c3c;
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 0;
}

.failed-book-modal .close-btn {
  position: absolute;
  top: -10px;
  right: -10px;
  background: #f8f9fa;
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: #666;
  cursor: pointer;
  transition: all 0.2s ease;
}

.failed-book-modal .close-btn:hover {
  background: #e9ecef;
  color: #333;
}

.failed-book-modal .modal-body {
  margin-bottom: 2rem;
}

.failed-book-modal .modal-body p {
  color: #555;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.failed-book-modal .failure-info {
  background: #f8f9ff;
  border-radius: 12px;
  padding: 1.5rem;
  margin: 1.5rem 0;
  text-align: left;
}

.failed-book-modal .info-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.8rem;
}

.failed-book-modal .info-item:last-child {
  margin-bottom: 0;
}

.failed-book-modal .info-label {
  font-weight: 600;
  color: #666;
}

.failed-book-modal .info-value {
  font-weight: 700;
  color: #333;
}

.failed-book-modal .reassurance {
  background: #e8f5e8;
  border-left: 4px solid #4caf50;
  padding: 1rem;
  border-radius: 8px;
  color: #2e7d32;
  font-weight: 500;
  text-align: left;
  margin-top: 1.5rem;
}

.failed-book-modal .modal-footer {
  display: flex;
  gap: 1rem;
  justify-content: center;
}

.failed-book-modal .btn {
  padding: 0.8rem 1.5rem;
  border-radius: 8px;
  border: none;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.failed-book-modal .btn-secondary {
  background: #f8f9fa;
  color: #666;
  border: 1px solid #dee2e6;
}

.failed-book-modal .btn-secondary:hover {
  background: #e9ecef;
  color: #333;
}

.failed-book-modal .btn-primary {
  background: linear-gradient(135deg, #FF6B6B 0%, #FFE66D 50%, #4ECDC4 100%);
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.failed-book-modal .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}