@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap);body{margin:0;text-rendering:optimizeLegibility}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;color:#1f2937;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}.app,body{min-height:100vh;position:relative}.app{background:#fff;margin:0 auto;max-width:1200px;padding:0 40px;z-index:1}.app>div:not(.app-header){grid-gap:32px;align-items:start;display:grid;gap:32px;grid-template-columns:1fr 1fr;padding:20px 0}.weekly-progress{grid-column:1/-1}@media (min-width:1024px){.app>div:not(.app-header){gap:32px;grid-template-areas:"weekly weekly" "daily books";grid-template-columns:1fr 1fr}.weekly-progress{grid-area:weekly}.daily-progress{grid-area:daily}.book-list{grid-area:books}.book-card,.progress-card{padding:24px}.book-list h2,.progress-header h2{font-size:24px}.btn{font-size:16px;min-height:48px;padding:14px 24px}}@media (max-width:1023px){.app{max-width:768px;padding:0 20px}.app>div:not(.app-header){gap:24px;grid-template-columns:1fr}.weekly-progress{grid-column:1}}@media (max-width:767px){.app{max-width:100%;padding:0}.app>div:not(.app-header){gap:16px;grid-template-columns:1fr;padding:12px 0}}.app-header{align-items:center;background:#2c1810;border-bottom:2px solid #d4af374d;box-shadow:0 4px 20px #0000004d,inset 0 1px 0 #d4af3733;color:#d4af37;display:flex;justify-content:space-between;padding:20px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:100}@media (max-width:1023px){.app-header{padding:20px}}@media (max-width:767px){.app-header{gap:8px;padding:10px 12px}.header-left{gap:10px}.logo-image{height:28px;width:28px}}.header-left{gap:16px}.header-left,.logo{align-items:center;display:flex}.logo-image{border:1px solid #d4af3733;border-radius:6px;box-shadow:0 2px 8px #0000004d,inset 0 1px 0 #d4af374d;height:32px;width:32px}.header-actions,.updating-indicator{align-items:center;display:flex;gap:8px}.updating-indicator{color:#fff;font-size:14px;opacity:.8}.spinner-small{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:inline-flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;min-height:44px;padding:12px 16px;text-decoration:none;transition:all .2s ease}@media (max-width:1023px){.btn{font-size:15px;min-height:44px;padding:12px 18px}}@media (max-width:767px){.btn{font-size:14px;min-height:40px;padding:10px 16px}.header-btn{border-radius:8px;box-shadow:0 2px 8px #667eea33;font-size:12px;font-weight:500;gap:5px;min-height:34px;padding:7px 12px}.header-actions{gap:6px}.btn-label-short{display:none}}@media (max-width:480px){.header-btn{border-radius:7px;font-size:11px;gap:4px;min-height:32px;padding:6px 10px}.header-btn .btn-label{display:none}.header-btn .btn-label-short{display:inline}}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 14px 0 #667eea4d}.btn-primary:hover{background:linear-gradient(135deg,#5a67d8,#6b46c1);box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-secondary{background:#f8fafc}.btn-icon{border-radius:50%;min-height:44px;min-width:44px;padding:8px}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-sync{background:#f59e0b;color:#fff}.btn-sync:hover{background:#d97706}.btn-small{font-size:14px;min-height:36px;padding:8px 12px}.app-main{padding:16px 16px 100px}@media (max-width:767px){.app-main{padding:12px 12px 80px}}.loading{flex-direction:column;gap:16px;min-height:50vh}.spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#4f46e5;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.daily-progress{margin-bottom:24px}@media (max-width:1023px){.daily-progress{margin-bottom:24px}}@media (max-width:767px){.daily-progress{margin-bottom:12px}.progress-card{border-radius:12px;padding:14px}.progress-header{gap:8px;margin-bottom:14px}.progress-header h2{font-size:17px}.progress-stats{gap:10px;margin-bottom:14px}.stat-number{font-size:20px}}.progress-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;padding:20px}.progress-header{display:flex;gap:12px;margin-bottom:20px}.progress-icon{color:#4f46e5;height:24px;width:24px}.progress-header h2{color:#d4af37;font-size:20px;font-weight:700;text-shadow:0 2px 4px #0000004d}.progress-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.stat-number{color:#1f2937;display:block;font-size:24px;font-weight:700;margin-bottom:4px}.progress-bar-container{margin-bottom:16px;position:relative}.progress-bar{border-radius:6px;height:12px}.progress-fill{border-radius:6px;transition:width .8s ease}.progress-percentage{color:#6b7280;font-size:12px;font-weight:600;position:absolute;right:0;top:-24px}.goal-achieved{align-items:center;animation:pulse 2s infinite;background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;color:#fff;display:flex;font-weight:600;gap:8px;padding:12px 16px}.achievement-icon{height:20px;width:20px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.celebration-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.celebration-content{background:#fff;border-radius:20px;max-width:300px;padding:40px 32px;position:relative}.trophy-icon{color:#fbbf24;height:64px;margin-bottom:16px;width:64px}.celebration-content h2{color:#1f2937;font-size:24px;font-weight:700;margin-bottom:8px}.celebration-content p{color:#6b7280;margin-bottom:20px}.stars{display:flex;gap:8px;left:50%;position:absolute;top:-20px;transform:translateX(-50%)}.star{color:#fbbf24;height:24px;width:24px}.book-list h2{color:#1f2937;font-size:20px;font-weight:700;margin-bottom:16px}@media (max-width:1023px){.book-list h2{font-size:22px;margin-bottom:20px}}@media (max-width:767px){.book-list h2{font-size:18px;margin-bottom:12px}}.book-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;margin-bottom:16px;padding:20px;transition:all .2s ease}@media (max-width:1023px){.book-card{margin-bottom:18px;padding:20px}}.book-card:hover{border-color:#d1d5db;box-shadow:0 10px 25px -3px #0000001a,0 4px 6px -2px #0000000d;transform:translateY(-2px)}@media (min-width:768px){.book-card{grid-gap:0 16px;align-items:start;display:grid;gap:0 16px;grid-template-columns:72px 1fr;grid-template-rows:auto}.book-cover-wrapper{grid-column:1;grid-row:1/3}.book-info,.book-status-pill{grid-column:2}.book-actions-tray,.book-edit,.book-progress,.book-stats{grid-column:1/-1}}.book-cover-wrapper,.book-status-pill{margin-bottom:12px}.book-status-pill{position:relative}.book-status-pill .status-btn{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:inherit;cursor:pointer;display:inline-flex;font-size:14px;gap:6px;padding:4px 12px;transition:all .15s ease}.book-status-pill .status-btn:hover{background:#f3f4f6}.book-status-pill .status-dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 10px 30px #00000026;left:0;margin-top:4px;min-width:140px;padding:4px;position:absolute;top:100%;z-index:10}.book-status-pill .status-option{align-items:center;background:#0000;border:none;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:8px 12px;transition:background .15s ease;width:100%}.book-status-pill .status-option:hover{background:#f3f4f6}.book-status-pill .status-option.active{background:#eff6ff;color:#3b82f6;font-weight:600}.book-actions-tray{align-items:center;display:flex;gap:8px;margin-bottom:8px;margin-top:8px}.book-actions-tray .btn.btn-icon{border-radius:8px;height:36px;width:36px}.progress-current{font-weight:700}.book-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px}@media (max-width:768px){.book-header{align-items:stretch;flex-direction:column}.book-actions{justify-content:space-between;margin-top:12px}.status-selector{margin-bottom:8px;margin-right:0}}@media (max-width:767px){.book-card{align-items:center;border:none;border-radius:16px;box-shadow:0 2px 12px #0000000f,0 0 0 1px #0000000a;display:flex;flex-direction:column;gap:14px;padding:24px 16px 16px;text-align:center}.book-card:hover{transform:none}.book-cover-wrapper{display:flex;justify-content:center}.book-cover-wrapper .book-cover{border-radius:10px;box-shadow:0 8px 24px #0000001f,0 2px 6px #00000014;height:116px;width:88px}.book-cover-wrapper .book-cover img{border-radius:10px}.book-card .book-info{text-align:center}.book-card .book-info h3{font-size:17px;margin-bottom:2px}.book-card .book-author{font-size:13px}.book-status-pill{display:flex;justify-content:center;position:relative}.book-status-pill .status-btn{background:#f8fafc;border:1.5px solid #e5e7eb;border-radius:999px;font-size:13px;gap:6px;min-width:0;padding:6px 18px}.book-status-pill .status-dropdown{left:50%;min-width:150px;transform:translateX(-50%)}.book-card .book-progress{margin-bottom:0;width:100%}.book-card .progress-info{align-items:baseline;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:8px}.book-card .progress-text{color:#374151;font-size:15px}.book-card .progress-current{color:#1f2937;font-size:26px;font-weight:800;letter-spacing:-.5px}.book-card .progress-percentage{color:#6b7280;font-size:14px;font-weight:600;position:static}.book-card .progress-bar{border-radius:5px;height:10px}.book-card .progress-fill{border-radius:5px}.book-actions-tray{background:#f3f4f6;border-radius:999px;box-shadow:inset 0 1px 3px #0000000f;gap:16px;padding:10px 28px}.book-actions-tray,.book-actions-tray .btn.btn-icon{align-items:center;display:flex;justify-content:center}.book-actions-tray .btn.btn-icon{border:none;border-radius:50%;box-shadow:0 3px 10px #0000001a;height:48px;min-height:48px;min-width:48px;padding:0;transition:transform .15s ease,box-shadow .15s ease;width:48px}.book-actions-tray .btn.btn-icon:active{transform:scale(.93)}.book-actions-tray .btn-sync{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff}.book-actions-tray .btn-edit-action{background:#e5e7eb;color:#374151}.book-actions-tray .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.book-card .book-stats{grid-gap:0;background:#f9fafb;border:1px solid #f0f0f0;border-radius:12px;display:grid;gap:0;grid-template-columns:1fr 1fr;padding:12px 0;width:100%}.book-card .book-stats>.stat{align-items:center;display:flex;flex-direction:column;gap:4px;padding:0 12px}.book-card .book-stats>.stat:first-child{border-right:1px solid #e5e7eb}.book-card .book-stats .stat-label{color:#9ca3af;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.book-card .book-stats .stat-value{color:#1f2937;font-size:15px;font-weight:600}.book-card .book-stats .stat-value-container{justify-content:center}.book-card .book-edit{width:100%}.book-card .daily-goal-edit,.book-card .daily-goal-edit .goal-actions,.book-card .daily-goal-edit .input-with-buttons{justify-content:center}}.book-info h3{font-weight:700;line-height:1.3;margin-bottom:4px}.book-actions{flex-wrap:wrap;gap:8px}.status-selector{margin-right:8px;position:relative}.status-btn{background:#f8fafc;border-radius:8px;font-size:14px;font-weight:500;gap:6px;justify-content:space-between;min-width:100px;padding:8px 12px}.status-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.status-dropdown{background:#fff;border:2px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%;z-index:10}.status-option{align-items:center;background:#fff;border:none;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 12px;text-align:left;transition:background-color .2s ease;width:100%}.status-option:hover{background:#f8fafc}.status-option.active{background:#eff6ff;color:#1d4ed8;font-weight:600}.book-progress{margin-bottom:16px}.progress-info{align-items:center;justify-content:space-between;margin-bottom:8px}.progress-text{color:#6b7280;font-size:14px}.book-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.stat-label{margin-bottom:4px}.stat-value{font-size:16px}.book-edit{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.edit-controls{display:flex;flex-direction:column;gap:16px}.input-group{gap:8px}.input-group label{color:#d4af37;font-size:14px;text-shadow:0 1px 2px #0000004d}.input-with-buttons{align-items:center;display:flex;gap:8px}.input-with-buttons input{background:linear-gradient(145deg,#2c1810,#1a0f0a),repeating-linear-gradient(45deg,#0000,#0000 2px,#8b45130d 0,#8b45130d 4px);border:2px solid #d4af374d;border-radius:8px;color:#d4af37;flex:1 1;font-size:16px;padding:12px 16px;text-align:center;text-shadow:0 1px 2px #0000004d;transition:border-color .2s ease}.input-with-buttons input:focus{border-color:#d4af37;box-shadow:0 0 0 3px #d4af371a;outline:none}.edit-actions{display:flex;gap:12px}.empty-state{color:#6b7280}.empty-state h3{color:#374151;font-weight:600;margin-bottom:8px}.empty-state p{line-height:1.5}.modal-overlay{padding:16px}.modal-content{background:linear-gradient(145deg,#3d2914,#2c1810),repeating-linear-gradient(45deg,#0000,#0000 10px,#d4af370d 0,#d4af370d 20px);border:2px solid #d4af3733;border-radius:20px;box-shadow:0 20px 60px #00000080,inset 0 1px 0 #d4af371a;color:#d4af37;max-width:400px;width:100%}.modal-header{border-bottom:2px solid #d4af3733}.modal-header h2{color:#d4af37;font-size:20px;font-weight:700;text-shadow:0 2px 4px #0000004d}.modal-form{padding:24px}.form-group{margin-bottom:20px}.form-group label{align-items:center;display:flex;font-weight:600;gap:8px;margin-bottom:8px}.form-group input{border:2px solid #e5e7eb;border-radius:12px;font-size:16px;padding:12px 16px}.form-group input:focus{border-color:#4f46e5}.form-group input.error{border-color:#ef4444}.error-message{color:#ef4444;display:block;font-size:12px;margin-top:4px}.modal-actions{margin-top:24px}.modal-actions .btn{flex:1 1}@media (max-width:1023px){.modal-content{max-width:500px}}@media (max-width:767px){.modal-content{max-width:90%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.barcode-scanner-overlay{align-items:center;background:#000000e6;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:1000}.barcode-scanner-content{background:#fff;border-radius:20px;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.scanner-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.scanner-header h3{color:#1f2937;font-size:18px;font-weight:700;margin:0}.scanner-body{padding:24px}.camera-container{background:#000;border-radius:12px;height:300px;margin-bottom:20px;overflow:hidden;position:relative;width:100%}.camera-view{height:100%;object-fit:cover;width:100%}.scanning-overlay{align-items:center;background:#0000004d;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0}.scan-frame{border:2px solid #10b981;border-radius:12px;height:120px;position:relative;width:200px}.scan-corners{bottom:0;left:0;position:absolute;right:0;top:0}.corner{border:3px solid #10b981;height:20px;position:absolute;width:20px}.corner.top-left{border-bottom:none;border-right:none;left:-3px;top:-3px}.corner.top-right{border-bottom:none;border-left:none;right:-3px;top:-3px}.corner.bottom-left{border-right:none;border-top:none;bottom:-3px;left:-3px}.corner.bottom-right{border-left:none;border-top:none;bottom:-3px;right:-3px}.scan-instruction{background:#000000b3;border-radius:20px;color:#fff;font-size:14px;margin-top:20px;padding:8px 16px;text-align:center}.scanner-controls{display:flex;gap:12px;justify-content:center;margin-bottom:20px}.scanner-instructions{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:16px}.scanner-instructions h4{color:#374151;font-size:14px;font-weight:600;margin-bottom:8px}.scanner-instructions ul{color:#6b7280;font-size:13px;line-height:1.5;margin:0;padding-left:20px}.scanner-instructions li{margin-bottom:4px}.add-book-options{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:24px}.option-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;color:#374151;cursor:pointer;display:flex;flex-direction:column;font-size:14px;font-weight:600;gap:8px;padding:20px 16px;transition:all .2s ease}.option-btn:hover{background:#f8fafc;border-color:#4f46e5;transform:translateY(-2px)}.option-btn svg{color:#4f46e5}.search-section{margin-bottom:24px}.search-input-group{display:flex;gap:8px;margin-bottom:16px}.search-input-group input{border:2px solid #e5e7eb;border-radius:12px;flex:1 1;font-size:16px;padding:12px 16px}.search-input-group input:focus{border-color:#4f46e5;outline:none}.search-results{background:#fff;border:1px solid #e5e7eb;border-radius:12px;max-height:300px;overflow-y:auto}.search-result-item{border-bottom:1px solid #f3f4f6;cursor:pointer;display:flex;gap:12px;padding:12px;transition:background-color .2s ease}.search-result-item:hover{background:#f8fafc}.search-result-item:last-child{border-bottom:none}.book-cover{border-radius:4px;box-shadow:0 2px 8px #0000001a;height:70px;object-fit:cover;width:50px}.book-info h4{color:#1f2937;font-size:14px;font-weight:600;line-height:1.3;margin:0 0 4px}.book-info p{color:#6b7280;font-size:12px;margin:0 0 2px}.book-pages{color:#4f46e5;font-weight:600}.selected-book{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:12px;margin-bottom:20px;padding:16px}.selected-book h3{color:#0c4a6e;font-size:14px;font-weight:600;margin:0 0 12px}.selected-book-info{align-items:center;display:flex;gap:12px}.selected-cover{border-radius:6px;box-shadow:0 4px 12px #00000026;height:80px;object-fit:cover;width:60px}.selected-book-info h4{color:#0c4a6e;font-size:16px;font-weight:700;margin:0 0 4px}.selected-book-info p{color:#0369a1;font-size:14px;margin:0 0 2px}.general-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;margin-bottom:16px;padding:12px 16px}@media (max-width:480px){.add-book-options{grid-template-columns:1fr}.option-btn{flex-direction:row;justify-content:flex-start;padding:16px}.scanner-controls,.search-input-group{flex-direction:column}.scanner-controls .btn{width:100%}}.input-mode-selector{border:2px solid #e5e7eb;border-radius:12px;display:flex;margin-bottom:20px;overflow:hidden}.mode-btn{align-items:center;background:#f9fafb;border:none;color:#6b7280;cursor:pointer;display:flex;flex:1 1;font-weight:500;gap:8px;justify-content:center;padding:12px 16px;transition:all .2s ease}.mode-btn.active{background:#3b82f6;color:#fff}.mode-btn:hover:not(.active){background:#e5e7eb;color:#374151}.manual-input-container{padding:20px;text-align:center}.input-group{display:flex;flex-direction:column;gap:16px}.input-group label{font-weight:600;text-align:left}.isbn-input{border:2px solid #e5e7eb;border-radius:12px;font-size:16px;padding:16px;text-align:center;transition:border-color .2s ease;width:100%}.isbn-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.isbn-input::placeholder{color:#9ca3af}@media (max-width:480px){.input-mode-selector{margin-bottom:16px}.mode-btn{font-size:14px;padding:10px 12px}.manual-input-container{padding:16px}.isbn-input{font-size:14px;padding:14px}}.weekly-calendar{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:20px}@media (max-width:1023px){.weekly-calendar{margin-bottom:20px;padding:20px}}@media (max-width:767px){.weekly-calendar{border-radius:12px;margin-bottom:12px;padding:12px}.calendar-header{gap:10px;margin-bottom:12px}.calendar-title h3{font-size:16px}.weekly-stats{gap:14px}.stat-value{font-size:17px}.calendar-grid{gap:6px;margin-bottom:12px}.calendar-day{border-radius:8px;border-width:1.5px;min-height:64px;padding:6px 3px}.day-header{margin-bottom:4px}.day-name{font-size:10px;letter-spacing:0}.day-number{font-size:13px}.weekly-summary{border-radius:8px;padding:10px}.summary-text{font-size:12px}}.calendar-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px}.calendar-title{align-items:center;color:#374151;display:flex;gap:8px}.calendar-title h3{font-size:18px;font-weight:600;margin:0}.weekly-stats{display:flex;flex-wrap:wrap;gap:20px}.stat{align-items:center;display:flex;flex-direction:column;text-align:center}.stat-value{color:#3b82f6;font-size:20px;font-weight:700;line-height:1}.stat-label{margin-top:2px}.calendar-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(7,1fr);margin-bottom:20px}.calendar-day{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;justify-content:space-between;min-height:80px;padding:12px 8px;text-align:center;transition:all .2s ease}.calendar-day.today{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633,0 4px 12px #3b82f626;position:relative;transform:scale(1.02)}.calendar-day.today:before{animation:todayGlow 2s ease-in-out infinite alternate;background:linear-gradient(45deg,#3b82f6,#8b5cf6,#06b6d4);border-radius:14px;bottom:-2px;content:"";left:-2px;position:absolute;right:-2px;top:-2px;z-index:-1}@keyframes todayGlow{0%{opacity:.3}to{opacity:.6}}.calendar-day.completed{background:#ecfdf5;border-color:#10b981}.calendar-day.incomplete{background:#fffbeb;border-color:#f59e0b}.calendar-day.no-data{background:#f9fafb;border-color:#d1d5db;opacity:.6}.day-header{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.day-name{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.day-number-container{align-items:center;display:flex;gap:4px;justify-content:center;position:relative}.day-number{color:#374151;font-size:16px;font-weight:700}.today-indicator{align-items:center;display:flex;justify-content:center}.today-star{animation:starPulse 1.5s ease-in-out infinite;color:#fbbf24}@keyframes starPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.day-content{flex:1 1;justify-content:center}.day-content,.no-data{align-items:center;display:flex;flex-direction:column}.no-data{color:#9ca3af;font-size:10px;gap:4px}.no-data-icon{color:#9ca3af;opacity:.7}.no-data-text{font-size:9px;font-weight:500}.day-progress{flex-direction:column;gap:4px}.day-progress,.progress-icon{align-items:center;display:flex}.progress-icon{justify-content:center}.completed-icon{animation:successPulse 2s ease-in-out infinite;color:#10b981}.incomplete-icon{color:#f59e0b;opacity:.8}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.progress-info{align-items:baseline;display:flex;font-size:12px;gap:2px}.pages-read{color:#374151;font-weight:700}.pages-goal{color:#6b7280;font-size:10px}.weekly-summary{background:#f3f4f6;border-radius:12px;padding:16px;text-align:center}.summary-bar{background:#e5e7eb;border-radius:4px;height:8px;margin-bottom:12px;overflow:hidden}.summary-progress{background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:4px;height:100%;transition:width .3s ease}.summary-text{color:#374151;font-size:14px;font-weight:500}@media (max-width:768px){.calendar-header{align-items:flex-start;flex-direction:column}.weekly-stats{justify-content:space-around;width:100%}.calendar-grid{gap:8px}.calendar-day{min-height:70px;padding:8px 4px}.day-number{font-size:14px}.pages-read{font-size:11px}}@media (max-width:480px){.weekly-calendar{padding:10px}.calendar-grid{gap:4px}.calendar-day{border-radius:7px;min-height:56px;padding:5px 2px}.day-name{font-size:9px}.day-number{font-size:11px}.progress-icon svg{height:14px;width:14px}.pages-read{font-size:9px}.pages-goal{font-size:7px}.calendar-day.today{transform:scale(1.01)}}.book-cover{border-radius:8px;box-shadow:0 4px 8px #0000001a;flex-shrink:0;height:80px;overflow:hidden;width:60px}.book-cover img{border-radius:8px;height:100%;object-fit:cover;width:100%}.book-cover{position:relative}.cover-actions{display:flex;flex-direction:column;gap:2px;opacity:0;position:absolute;right:2px;top:2px;transition:opacity .2s ease}.book-cover:hover .cover-actions{opacity:1}.cover-btn{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:10px;height:20px;justify-content:center;transition:all .2s ease;width:20px}.search-btn{background:#3b82f6e6;color:#fff}.search-btn:hover{background:#3b82f6;transform:scale(1.1)}.upload-btn{background:#10b981e6;color:#fff}.upload-btn:hover{background:#10b981;transform:scale(1.1)}.cover-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.daily-goal-edit{align-items:center;display:flex;flex-direction:column;gap:8px}.daily-goal-input{border:1px solid #e2e8f0;border-radius:6px;font-size:14px;font-weight:600;padding:4px 8px;text-align:center;width:60px}.goal-actions{display:flex;gap:4px}.stat-value-container{align-items:center;display:flex;gap:8px}.btn-success{background:#10b981;border:none;color:#fff}.btn-success:hover{background:#059669}.btn-small{font-size:12px;height:28px;min-width:28px;padding:4px 8px}.progress-bar{background:#e2e8f0;height:8px}.progress-bar,.progress-fill{border-radius:4px;position:relative}.progress-fill{background:linear-gradient(90deg,#4f46e5,#7c3aed)}.progress-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:0;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h3{color:#1f2937;font-size:18px;font-weight:600;margin:0}.modal-body{padding:24px}.modal-body p{color:#6b7280;line-height:1.5;margin:0 0 20px}.input-group{margin-bottom:20px}.input-group label{color:#374151;display:block;font-weight:500;margin-bottom:8px}.input-hint{color:#6b7280;display:block;font-size:12px;margin-top:4px}.modal-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.btn-secondary{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.btn-secondary:hover{background:#e5e7eb;border-color:#9ca3af}.btn-primary{background:#4f46e5;border:1px solid #4f46e5;color:#fff}.btn-primary:hover{background:#4338ca;border-color:#4338ca}:root{--surface-base:#f6f1e8;--surface-card:#fffdfa;--surface-muted:#f1ebe2;--border-soft:#5e4a341f;--border-strong:#5e4a342e;--ink-strong:#241a14;--ink-body:#584a3c;--ink-muted:#8e7b68;--accent-primary:#6f4b3e;--accent-soft:#b7815d;--shadow-soft:0 10px 30px #3524150f}body{background:radial-gradient(circle at top left,#ba96791f,#0000 32%),linear-gradient(180deg,#fbf7f1,#f6f1e8);background:radial-gradient(circle at top left,#ba96791f,#0000 32%),linear-gradient(180deg,#fbf7f1 0,var(--surface-base) 100%);color:#241a14;color:var(--ink-strong)}.app{background:#0000;max-width:1040px}.app-header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbf7f1e0;border-bottom:1px solid #5e4a341f;border-bottom:1px solid var(--border-soft);box-shadow:0 8px 24px #22160c0f;color:#241a14;color:var(--ink-strong);padding:14px 18px}.header-left{gap:12px}.logo-image{border:1px solid #6f4b3e24;border-radius:8px;box-shadow:0 6px 14px #422a171f;height:30px;width:30px}.header-actions{gap:10px}.updating-indicator{color:#584a3c;color:var(--ink-body);font-size:12px;letter-spacing:.01em}.spinner-small{border:2px solid #6f4b3e2e;border-top-color:#6f4b3e;border-top:2px solid var(--accent-primary)}.header-btn{border-radius:12px;font-size:13px;font-weight:600;letter-spacing:-.01em;min-height:38px;padding:10px 14px}.btn-primary{background:#6f4b3e;background:var(--accent-primary);box-shadow:0 8px 18px #6f4b3e2e}.btn-primary:hover{background:#5b3d32;box-shadow:0 10px 22px #5b3d3238}.app-main{padding:18px 18px 92px}.daily-progress{display:flex;flex-direction:column;gap:16px;margin-bottom:18px}.progress-card{background:color-mix(in srgb,#fffdfa 92%,#fff 8%);background:color-mix(in srgb,var(--surface-card) 92%,#fff 8%);border:1px solid #5e4a341f;border:1px solid var(--border-soft);border-radius:24px;box-shadow:0 10px 30px #3524150f;box-shadow:var(--shadow-soft);order:1;padding:22px 22px 18px}.weekly-calendar{background:#fffdfac7;border:1px solid #5e4a341f;border:1px solid var(--border-soft);border-radius:22px;box-shadow:0 8px 20px #3524150a;order:2}.progress-header{align-items:center;gap:10px;margin-bottom:16px}.progress-icon{color:#6f4b3e;color:var(--accent-primary);height:20px;width:20px}.book-list h2,.calendar-title h3,.progress-header h2{font-family:Newsreader,Georgia,serif;font-weight:500;letter-spacing:-.02em}.progress-header h2{color:#241a14;color:var(--ink-strong);font-size:28px;text-shadow:none}.progress-stats{gap:12px;margin-bottom:16px}.progress-card .stat{background:#f1ebe2;background:var(--surface-muted);border:1px solid #6f4b3e14;border-radius:18px;padding:14px 14px 12px;text-align:left}.progress-card .stat-number{color:#241a14;color:var(--ink-strong);font-size:31px;font-weight:700;letter-spacing:-.04em;line-height:.95;margin-bottom:6px}.progress-card .stat-label{color:#8e7b68;color:var(--ink-muted);font-size:10px;letter-spacing:.12em;line-height:1.35}.progress-bar-container{margin-bottom:12px}.progress-bar{background:#6f4b3e1f;height:7px}.progress-bar,.progress-fill{border-radius:999px}.progress-percentage{color:#8e7b68;color:var(--ink-muted);font-size:11px;font-weight:700;letter-spacing:.04em;top:-20px}.goal-achieved{animation:none;border-radius:16px;font-size:13px;padding:10px 12px}.book-list h2{color:#241a14;color:var(--ink-strong);font-size:30px;margin-bottom:14px}.book-card{background:#fffdfa;background:var(--surface-card);border:1px solid #5e4a341f;border:1px solid var(--border-soft);border-radius:24px;box-shadow:0 10px 30px #3524150f;box-shadow:var(--shadow-soft)}.book-card:hover{border-color:#5e4a342e;border-color:var(--border-strong);box-shadow:0 16px 32px #35241514}.book-info h3{color:#241a14;color:var(--ink-strong);font-size:21px;letter-spacing:-.03em;line-height:1.15;margin-bottom:6px}.book-author,.input-hint,.modal-body p,.progress-text,.summary-text{color:#584a3c;color:var(--ink-body)}.book-author{font-size:13px;line-height:1.35}.book-status-pill .status-btn{background:#fffaf5d9;border-color:#6f4b3e1f;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.01em}.book-progress{margin-bottom:12px}.progress-info{margin-bottom:7px}.book-card .progress-text{font-size:13px}.book-card .progress-current{font-size:18px;font-weight:700;letter-spacing:-.04em}.book-card .progress-percentage{color:#8e7b68;color:var(--ink-muted);font-size:12px;font-weight:600;position:static}.book-actions-tray{gap:10px;margin-bottom:10px;margin-top:2px}.book-actions-tray .btn.btn-icon{border-radius:10px;height:34px;width:34px}.book-stats{gap:12px}.book-stats .stat{text-align:left}.book-stats .stat-label{color:#8e7b68;color:var(--ink-muted);font-size:10px;letter-spacing:.12em}.book-stats .stat-value{font-size:14px;font-weight:600}.book-stats .stat-value,.weekly-calendar .calendar-title{color:#241a14;color:var(--ink-strong)}.weekly-calendar .stat-value{color:#6f4b3e;color:var(--accent-primary)}.calendar-day{background:#f9f5eeeb;border-color:#6f4b3e1a}.calendar-day.today{background:linear-gradient(180deg,#fffaf5,#f5ede2);border-color:#6f4b3e57;box-shadow:0 0 0 2px #6f4b3e14,0 6px 14px #6f4b3e14}.calendar-day.today:before{display:none}.calendar-day.completed{background:#f0f3eb;border-color:#59785838}.calendar-day.incomplete{background:#faf1e6;border-color:#b7815d38}.summary-bar{border-radius:999px;height:6px}.summary-progress{background:linear-gradient(90deg,#6f4b3e,#b7815d);background:linear-gradient(90deg,var(--accent-primary),var(--accent-soft));border-radius:999px}@media (max-width:767px){.app-header{padding:12px 14px}.header-left{gap:10px}.logo-image{height:28px;width:28px}.header-btn{border-radius:10px;box-shadow:0 6px 14px #6f4b3e24;font-size:12px;min-height:34px;padding:7px 11px}.app-main{padding:14px 14px 82px}.daily-progress{gap:12px;margin-bottom:14px}.progress-card,.weekly-calendar{border-radius:20px}.progress-card{padding:16px 16px 14px}.progress-header{margin-bottom:12px}.progress-header h2{font-size:24px}.progress-stats{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.progress-card .stat{padding:12px 10px 10px}.progress-card .stat-number{font-size:25px;margin-bottom:4px}.progress-card .stat-label{font-size:9px;letter-spacing:.08em}.progress-percentage{font-size:10px;top:-18px}.book-list h2{font-size:26px;margin-bottom:10px}.book-card{grid-gap:8px 14px;align-items:start;border:1px solid #5e4a341f;border:1px solid var(--border-soft);border-radius:20px;box-shadow:0 10px 24px #3524150d;display:grid;gap:8px 14px;grid-template-areas:"cover info" "cover status" "progress progress" "stats stats" "actions actions" "edit edit";grid-template-columns:74px minmax(0,1fr);margin-bottom:12px;padding:16px;text-align:left}.book-cover-wrapper{display:block;grid-area:cover;margin:0}.book-cover-wrapper .book-cover{border-radius:14px;box-shadow:0 10px 20px #3524151f;height:102px;width:74px}.book-cover-wrapper .book-cover img{border-radius:14px}.book-card .book-info{align-self:end;grid-area:info;text-align:left}.book-card .book-info h3{font-size:18px;margin-bottom:3px}.book-card .book-author{font-size:12px}.book-status-pill{align-self:start;display:flex;grid-area:status;justify-content:flex-start;margin:0}.book-status-pill .status-btn{background:#f1ebe2;background:var(--surface-muted);border-width:1px;font-size:11px;padding:5px 12px}.book-status-pill .status-dropdown{left:0;min-width:140px;transform:none}.book-card .book-progress{grid-area:progress;margin:4px 0 0;width:100%}.book-card .progress-info{align-items:end;flex-wrap:nowrap;gap:8px;justify-content:space-between;margin-bottom:6px}.book-card .progress-text{font-size:12px;line-height:1.3}.book-card .progress-current{font-size:15px}.book-card .progress-bar{height:6px}.book-card .book-stats{background:#0000;border:none;gap:8px;grid-area:stats;grid-template-columns:1fr 1fr;margin-top:2px;padding:0;width:100%}.book-card .book-stats>.stat{align-items:flex-start;background:#f1ebe2;background:var(--surface-muted);border:1px solid #6f4b3e14;border-radius:14px;padding:10px 12px}.book-card .book-stats>.stat:first-child{border-right:1px solid #6f4b3e14}.book-card .book-stats .stat-label{font-size:9px;letter-spacing:.08em;margin-bottom:3px}.book-card .book-stats .stat-value{font-size:13px}.book-actions-tray{background:#0000;box-shadow:none;gap:8px;grid-area:actions;justify-content:flex-end;margin:0;padding:0}.book-actions-tray .btn.btn-icon{border-radius:12px;box-shadow:none;height:38px;min-height:38px;min-width:38px;width:38px}.book-actions-tray .btn-edit-action{background:#f1ebe2;background:var(--surface-muted)}.book-card .book-edit{grid-area:edit;margin-top:2px;width:100%}.weekly-calendar{margin-bottom:0;padding:12px 12px 10px}.calendar-header{gap:8px;margin-bottom:10px}.calendar-title h3{font-size:20px}.weekly-stats{gap:10px}.weekly-calendar .stat-value{font-size:16px}.weekly-calendar .stat-label{font-size:10px;letter-spacing:.06em}.calendar-grid{gap:5px;margin-bottom:10px}.calendar-day{border-radius:10px;min-height:62px;padding:6px 3px}.summary-text{font-size:12px}}.auth-screen{align-items:center;background:linear-gradient(180deg,#faf7f2,#f2ece1);display:flex;justify-content:center;min-height:100vh;padding:24px}.auth-card{background:#ffffffeb;border:1px solid #6549301f;border-radius:28px;box-shadow:0 20px 60px #422a181f;padding:28px;width:min(100%,420px)}.auth-brand h1{font-size:2rem;margin:0 0 8px}.auth-brand p{color:#6e5a49;margin:0 0 20px}.auth-tabs{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:20px}.admin-user-actions button,.auth-submit,.auth-tabs button{border:0;border-radius:14px;cursor:pointer}.auth-tabs button{background:#efe8de;color:#5d4a3b;padding:12px 14px}.auth-tabs button.active{background:#2f241d;color:#fff}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-form label{color:#6e5a49;font-size:.86rem}.auth-form input{background:#fff;border:1px solid #6549302e;border-radius:14px;font-size:.96rem;padding:13px 14px}.auth-checkbox{align-items:center;color:#6e5a49;display:flex;font-size:.9rem;gap:10px;margin-top:4px}.auth-checkbox input{height:16px;margin:0;width:16px}.auth-error{background:#fff0ee;border-radius:12px;color:#b4422f;font-size:.9rem;padding:12px 14px}.auth-submit{background:#2f241d;color:#fff;font-weight:600;margin-top:10px;padding:14px 16px}.header-user{display:flex;flex-direction:column;margin-left:10px}.header-user strong{font-size:.92rem}.header-user span{color:#7b6657;font-size:.78rem}.admin-panel{padding:24px}.admin-header{align-items:center;display:flex;gap:14px;margin-bottom:24px}.admin-stats{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:22px}.admin-stat-card,.admin-user-card{background:#fff;border:1px solid #6549301f;border-radius:20px;box-shadow:0 10px 30px #422a180f;padding:18px}.admin-stat-card span{color:#7b6657;display:block;font-size:.82rem}.admin-stat-card strong{display:block;font-size:1.7rem;margin-top:6px}.admin-users{grid-gap:14px;display:grid;gap:14px}.admin-user-card{align-items:center;display:flex;gap:16px;justify-content:space-between}.admin-user-card h3{margin:0 0 6px}.admin-user-card p{color:#6e5a49;margin:2px 0}.admin-user-actions{display:flex;flex-direction:column;gap:8px;min-width:140px}.admin-user-actions button{background:#2f241d;color:#fff;padding:10px 14px}.admin-user-actions button.danger{background:#c84b31}@media (max-width:720px){.header-user{display:none}.admin-user-card{align-items:flex-start;flex-direction:column}.admin-user-actions{width:100%}}.auth-success{background:#eef8f0;border-radius:12px;color:#256640;font-size:.9rem;margin-bottom:16px;padding:12px 14px}.admin-section{margin-top:26px}.admin-section-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.admin-section-header h2{font-size:1.1rem;margin:0}.admin-section-header span{color:#7b6657;font-size:.88rem}.admin-empty-state{background:#fff;border:1px dashed #65493033;border-radius:18px;color:#7b6657;padding:18px}.pending-request-card{background:#fffaf4;border-color:#bf814d3d}.auth-link-button{background:#0000;border:0;color:#6f4b3e;cursor:pointer;font-size:.92rem;padding:0;text-align:left}.auth-link-button:hover{text-decoration:underline}.auth-secondary-link{color:#7b6657;margin-top:6px}.admin-email-logs{grid-gap:12px;display:grid;gap:12px}.admin-email-log-card{background:#fff;border:1px solid #6549301f;border-radius:18px;box-shadow:0 10px 24px #422a180a;padding:16px}.admin-email-log-card p{color:#6e5a49;margin:6px 0 0}.admin-email-log-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.email-log-status{align-items:center;border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:700;justify-content:center;padding:4px 10px}.email-log-status.sent{background:#e8f6eb;color:#2d7a43}.email-log-status.error{background:#fff0ee;color:#b4422f}.email-log-error{color:#a53b2a!important}body.theme-dark{--surface-base:#11161f;--surface-card:#181f2b;--surface-muted:#202938;--border-soft:#9cadc524;--border-strong:#9cadc53d;--ink-strong:#edf2ff;--ink-body:#b3bfd3;--ink-muted:#7f8ba3;--accent-primary:#8aa0ff;--accent-soft:#c4a7ff;--shadow-soft:0 18px 40px #0106105c;background:radial-gradient(circle at top left,#6275c22e,#0000 30%),radial-gradient(circle at top right,#6d528f1f,#0000 24%),linear-gradient(180deg,#0c1017,#11161f);color:#241a14;color:var(--ink-strong)}body.theme-dark button,body.theme-dark input,body.theme-dark select,body.theme-dark textarea{font-family:inherit}.app.theme-dark,.app.theme-dark .app-header{color:#241a14;color:var(--ink-strong)}.app.theme-dark .app-header{background:#0f141cd6;border-bottom:1px solid #8aa0ff1a;box-shadow:0 10px 28px #04081257}.theme-toggle-btn{align-items:center;background:#fffdfadb;border:1px solid #6f4b3e1f;border-radius:12px;box-shadow:0 8px 18px #35241514;color:#241a14;color:var(--ink-strong);cursor:pointer;display:inline-flex;height:40px;justify-content:center;transition:transform .2s ease,background .2s ease,border-color .2s ease;width:40px}.theme-toggle-btn:hover{background:#fffdfa;transform:translateY(-1px)}.auth-theme-toggle{align-items:center;background:#fffdfae6;border:1px solid #6f4b3e1f;border-radius:14px;box-shadow:0 10px 22px #3524151f;color:#241a14;color:var(--ink-strong);cursor:pointer;display:inline-flex;height:42px;justify-content:center;position:fixed;right:18px;top:18px;width:42px;z-index:30}.app.theme-dark .theme-toggle-btn{background:#1d2431f0;border-color:#8aa0ff1f;box-shadow:0 12px 22px #04081247;color:#d9e2ff}.app.theme-dark .theme-toggle-btn:hover{background:#242c3bfa}.app.theme-dark .auth-theme-toggle{background:#1d2431f5;border-color:#8aa0ff1f;box-shadow:0 14px 28px #04081247;color:#d9e2ff}.app.theme-dark .admin-email-log-card p,.app.theme-dark .admin-empty-state,.app.theme-dark .admin-section-header span,.app.theme-dark .admin-user-card p,.app.theme-dark .auth-brand p,.app.theme-dark .auth-checkbox,.app.theme-dark .auth-form label,.app.theme-dark .book-author,.app.theme-dark .header-user span,.app.theme-dark .input-hint,.app.theme-dark .modal-body p,.app.theme-dark .progress-text,.app.theme-dark .push-error,.app.theme-dark .summary-text,.app.theme-dark .updating-indicator{color:#584a3c;color:var(--ink-body)}.app.theme-dark .admin-email-log-card,.app.theme-dark .admin-empty-state,.app.theme-dark .admin-stat-card,.app.theme-dark .admin-user-card,.app.theme-dark .auth-card,.app.theme-dark .book-card,.app.theme-dark .modal-content,.app.theme-dark .progress-card,.app.theme-dark .weekly-calendar{background:linear-gradient(180deg,#191f2bfa,#131924fa);border-color:#5e4a341f;border-color:var(--border-soft);box-shadow:0 10px 30px #3524150f;box-shadow:var(--shadow-soft)}.app.theme-dark .book-card,.app.theme-dark .progress-card,.app.theme-dark .weekly-calendar{outline:1px solid #8aa0ff0d}.app.theme-dark .admin-email-log-card:hover,.app.theme-dark .admin-user-card:hover,.app.theme-dark .book-card:hover{border-color:#5e4a342e;border-color:var(--border-strong);box-shadow:0 24px 48px #01061052}.app.theme-dark .admin-stat-card,.app.theme-dark .auth-tabs button,.app.theme-dark .book-actions-tray .btn-edit-action,.app.theme-dark .book-card .book-stats>.stat,.app.theme-dark .book-status-pill .status-btn,.app.theme-dark .notif-recurrence-tabs,.app.theme-dark .pending-request-card,.app.theme-dark .progress-card .stat{background:#202938f2}.app.theme-dark .book-card .book-stats>.stat,.app.theme-dark .progress-card .stat,.app.theme-dark .weekly-calendar .stat{border:1px solid #8aa0ff14;box-shadow:inset 0 1px 0 #ffffff05}.app.theme-dark .admin-user-card h3,.app.theme-dark .auth-brand h1,.app.theme-dark .book-info h3,.app.theme-dark .book-list h2,.app.theme-dark .modal-header h3,.app.theme-dark .progress-header h2{color:#241a14;color:var(--ink-strong)}.app.theme-dark .admin-stat-card strong,.app.theme-dark .book-card .progress-current,.app.theme-dark .book-stats .stat-value,.app.theme-dark .progress-card .stat-number,.app.theme-dark .stat-value{color:#f4f7ff}.app.theme-dark .auth-secondary-link,.app.theme-dark .book-stats .stat-label,.app.theme-dark .header-user span,.app.theme-dark .progress-card .stat-label,.app.theme-dark .progress-percentage,.app.theme-dark .stat-label{color:#8e7b68;color:var(--ink-muted)}.app.theme-dark .book-card .book-stats .stat-label,.app.theme-dark .calendar-day .day-name,.app.theme-dark .calendar-day .no-data,.app.theme-dark .calendar-day .pages-goal,.app.theme-dark .progress-card .stat-label,.app.theme-dark .weekly-calendar .stat-label{color:#95a3bc}.app.theme-dark .btn-primary{background:linear-gradient(135deg,#6e84ff,#8265d4);box-shadow:0 12px 24px #485fc247}.app.theme-dark .btn-primary:hover{background:linear-gradient(135deg,#7890ff,#8f72e0)}.app.theme-dark .header-btn{border:1px solid #97a8ff1f;color:#f6f8ff}.app.theme-dark .header-btn .btn-label,.app.theme-dark .header-btn .btn-label-short{color:inherit}.app.theme-dark .back-btn,.app.theme-dark .btn-secondary,.app.theme-dark .cancel-button,.app.theme-dark .save-button,.app.theme-dark .status-btn{background:#202938;border-color:#5e4a341f;border-color:var(--border-soft);color:#241a14;color:var(--ink-strong)}.app.theme-dark .back-btn:hover,.app.theme-dark .btn-secondary:hover,.app.theme-dark .status-btn:hover{background:#263143}.app.theme-dark .auth-form input,.app.theme-dark .calendar-day,.app.theme-dark .daily-goal-input,.app.theme-dark .input-with-buttons input,.app.theme-dark .modal-body input,.app.theme-dark .modal-body textarea,.app.theme-dark .progress-bar,.app.theme-dark .summary-bar{background:#19212ef5;border-color:#5e4a341f;border-color:var(--border-soft);color:#241a14;color:var(--ink-strong)}.app.theme-dark .progress-bar{background:#8aa0ff24}.app.theme-dark .book-card .progress-bar,.app.theme-dark .weekly-calendar .summary-bar{background:#cad6ff2e;box-shadow:inset 0 1px 2px #0003}.app.theme-dark .book-card .progress-percentage,.app.theme-dark .book-card .progress-text,.app.theme-dark .weekly-calendar .summary-text{color:#aab6cc}.app.theme-dark .progress-fill:after{background:linear-gradient(90deg,#0000,#ffffff1f 50%,#0000)}.app.theme-dark .calendar-day{background:#161d28f2}.app.theme-dark .calendar-day.today{background:linear-gradient(180deg,#1d2532,#19202c);border-color:#8aa0ff57;box-shadow:0 0 0 2px #8aa0ff17,0 10px 18px #02081238}.app.theme-dark .calendar-day.completed{background:#1e3530c2;border-color:#44b68533}.app.theme-dark .calendar-day.incomplete{background:#392b1fc7;border-color:#d996662e}.app.theme-dark .goal-achieved{background:linear-gradient(135deg,#15725b,#0f8e6c)}.app.theme-dark .book-actions-tray{background:#1e2634f5;border:1px solid #8aa0ff14;box-shadow:inset 0 1px 0 #ffffff08,0 10px 22px #02081233}.app.theme-dark .book-actions-tray .btn.btn-icon{border:1px solid #ffffff0a;box-shadow:0 8px 16px #02081238}.app.theme-dark .book-actions-tray .btn-sync{background:linear-gradient(135deg,#f6a548,#dd7d2f);color:#fffaf3}.app.theme-dark .book-actions-tray .btn-edit-action{background:linear-gradient(180deg,#eff4ff,#dce6ff);border-color:#ffffff59;color:#21314d}.app.theme-dark .book-actions-tray .btn-danger{background:linear-gradient(135deg,#e45d5d,#be4040);color:#fff8f8}.app.theme-dark .book-actions-tray .btn-icon:hover{transform:translateY(-1px)}.app.theme-dark .goal-actions .btn.btn-icon,.app.theme-dark .modal-header .btn.btn-icon,.app.theme-dark .stat-value-container .btn.btn-icon{background:#eaf1fff5;border:1px solid #ffffff73;color:#24344f}.app.theme-dark .goal-actions .btn.btn-icon:hover,.app.theme-dark .modal-header .btn.btn-icon:hover,.app.theme-dark .stat-value-container .btn.btn-icon:hover{background:#f4f7ff}.app.theme-dark .book-card .stat-value-container{gap:10px}.app.theme-dark .book-status-pill .status-btn{background:linear-gradient(180deg,#273041fa,#1e2532fa);border-color:#8aa0ff29;box-shadow:inset 0 1px 0 #ffffff08}.app.theme-dark .book-status-pill .status-dropdown{background:#1a2230;border-color:#8aa0ff1f}.app.theme-dark .book-status-pill .status-option{color:#dce6ff}.app.theme-dark .book-status-pill .status-option:hover{background:#ffffff0d}.app.theme-dark .book-status-pill .status-option.active{background:#6e84ff29;color:#cfd9ff}.app.theme-dark .cover-btn{box-shadow:0 6px 12px #00000038}.app.theme-dark .daily-goal-input,.app.theme-dark .input-with-buttons input{color:#eff4ff}.app.theme-dark .calendar-day{color:#dce6ff}.app.theme-dark .calendar-day .pages-read{color:#eef3ff}.app.theme-dark .weekly-calendar .calendar-grid{gap:7px}.app.theme-dark .progress-card .progress-header,.app.theme-dark .weekly-calendar .calendar-header{margin-bottom:14px}.app.theme-dark .book-cover,.app.theme-dark .logo-image{box-shadow:0 12px 24px #00000047}.app.theme-dark .auth-screen{background:radial-gradient(circle at top left,#6275c229,#0000 30%),linear-gradient(180deg,#0c1017,#11161f)}.app.theme-dark .admin-user-actions button,.app.theme-dark .auth-submit,.app.theme-dark .auth-tabs button.active{background:linear-gradient(135deg,#6e84ff,#8265d4);color:#f8fbff}.app.theme-dark .auth-error{background:#782d2d38;color:#ffb0b0}.app.theme-dark .auth-success{background:#15725b38;color:#8ee2bf}.app.theme-dark .pending-request-card{background:linear-gradient(180deg,#30251cf2,#201914f2);border-color:#e9ad7338}.app.theme-dark .email-log-status.sent{background:#1a694b38;color:#8de0ba}.app.theme-dark .email-log-status.error{background:#842b2b38;color:#ffb1b1}.app.theme-dark .celebration-overlay,.app.theme-dark .modal-overlay{background:#03080fc7}.app.theme-dark .action-button,.app.theme-dark .close-button{color:#584a3c;color:var(--ink-body)}.app.theme-dark .action-button.delete:hover,.app.theme-dark .action-button.edit:hover,.app.theme-dark .close-button:hover{background:#ffffff0f}.app.theme-dark .empty-library,.app.theme-dark .empty-state,.app.theme-dark .loading{color:#584a3c;color:var(--ink-body)}.app.theme-dark .spinner{border:4px solid #8aa0ff29;border-top-color:#8aa0ff}@media (max-width:767px){.theme-toggle-btn{border-radius:10px;height:34px;width:34px}}.celebration-backdrop{align-items:center;animation:celebration-fade-in .18s ease-out;-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);background:#0a0c128c;box-sizing:border-box;display:flex;height:100vh;inset:0;justify-content:center;overscroll-behavior:none;padding:16px;position:fixed;transform:translateZ(0);width:100vw;z-index:9999}.celebration-card{animation:celebration-scale-in .18s ease-out forwards;background:linear-gradient(180deg,#141826eb,#10121ceb);border:1px solid #ffffff14;border-radius:22px;box-shadow:0 40px 120px #00000073,inset 0 1px 0 #ffffff0f;box-sizing:border-box;color:#f9fafb;margin:0;max-height:calc(100vh - 32px);max-width:min(520px,calc(100vw - 32px));padding:24px;transform:scale(.98)}.celebration-header{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto;margin-bottom:16px}.celebration-title-row{align-items:center;display:inline-flex;gap:12px}.celebration-badge{align-items:center;animation:celebration-float 3.2s ease-in-out infinite;background:#ffffff1a;border-radius:14px;box-shadow:0 10px 22px #00000040;display:inline-flex;font-size:1.55rem;height:44px;justify-content:center;position:relative;width:44px}.celebration-badge:before{animation:celebration-glow 2.8s ease-in-out infinite;background:radial-gradient(circle,#7c3aed80,#0000 70%);border-radius:18px;content:"";filter:blur(8px);inset:-8px;opacity:.6;position:absolute;z-index:-1}.celebration-animation{height:132px;margin:0;opacity:.9;width:132px}.celebration-content{margin:0 0 20px;text-align:center}.celebration-title{font-size:1.4rem;font-weight:600;letter-spacing:.2px;margin:0}.celebration-message{color:#d7deee;margin:0 0 14px}.celebration-pages-badge{align-items:baseline;animation:pages-breath 3.6s ease-in-out infinite;background:linear-gradient(135deg,#6d28d9,#2563eb);border:1px solid #ffffff2e;border-radius:999px;box-shadow:0 10px 24px #2563eb59;display:inline-flex;gap:8px;margin:8px 0 12px;padding:10px 16px}.celebration-pages-number{color:#fffffff2;font-size:2.1rem;font-weight:700}.celebration-pages-label{color:#ffffffe6;font-size:.7rem;letter-spacing:1px;text-transform:uppercase}.celebration-subtitle{color:#b9c2dd;font-size:.95rem;margin:0}.celebration-actions{align-items:center;display:flex;gap:16px;justify-content:space-between}.celebration-button{background:linear-gradient(135deg,#7c3aed,#3b82f6);border:none;border-radius:12px;box-shadow:0 14px 34px #3b82f659;color:#fff;cursor:pointer;font-weight:600;letter-spacing:.2px;min-height:44px;padding:12px 20px;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.celebration-button:hover{box-shadow:0 18px 40px #7c3aed73;transform:translateY(-1px)}.celebration-toggle{align-items:center;color:#cbd5f5;display:inline-flex;font-size:.9rem;gap:8px}.celebration-toggle input{accent-color:#7c3aed}@keyframes celebration-fade-in{0%{opacity:0}to{opacity:1}}@keyframes celebration-scale-in{0%{transform:scale(.97)}to{transform:scale(1)}}@keyframes celebration-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes celebration-glow{0%,to{opacity:.45}50%{opacity:.85}}@keyframes pages-breath{0%,to{box-shadow:0 10px 24px #2563eb47;transform:scale(1)}50%{box-shadow:0 14px 30px #2563eb66;transform:scale(1.03)}}@media (prefers-reduced-motion:reduce){.celebration-badge,.celebration-badge:before,.celebration-pages-badge{animation:none}}@media (max-width:520px){.celebration-header{grid-template-columns:1fr}.celebration-animation{height:120px;justify-self:center;width:120px}.celebration-actions{flex-direction:row}}.hamburger-button{align-items:center;background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:background-color .2s ease}.hamburger-button:hover{background-color:#ffffff1a}.menu-overlay{align-items:flex-start;background-color:#00000080;bottom:0;display:flex;justify-content:flex-end;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.menu-content{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;max-width:90vw;width:280px}@keyframes slideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.menu-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px}.menu-header h3{color:#374151;font-size:18px;font-weight:600;margin:0}.close-button{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;padding:4px;transition:background-color .2s ease}.close-button:hover{background-color:#f3f4f6}.menu-nav{padding:10px 0}.menu-item{align-items:center;background:none;border:none;color:#374151;cursor:pointer;display:flex;font-size:16px;gap:12px;padding:16px 20px;text-align:left;transition:background-color .2s ease;width:100%}.menu-item:hover{background-color:#f9fafb}.menu-item:active{background-color:#f3f4f6}body.theme-dark .hamburger-button{color:#dbe5ff}body.theme-dark .hamburger-button:hover{background-color:#ffffff14}body.theme-dark .menu-overlay{background-color:#020810b8}body.theme-dark .menu-content{background:linear-gradient(180deg,#18202c,#121923);border:1px solid #8aa0ff1f;box-shadow:0 20px 48px #00000061}body.theme-dark .menu-header{border-bottom-color:#8aa0ff1a}body.theme-dark .menu-header h3,body.theme-dark .menu-item{color:#edf2ff}body.theme-dark .close-button{color:#aebad0}body.theme-dark .close-button:hover,body.theme-dark .menu-item:active,body.theme-dark .menu-item:hover{background-color:#ffffff0f}@media (max-width:480px){.menu-overlay{padding:10px}.menu-content{max-width:none;width:100%}}.reading-history{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.history-header{gap:16px;margin-bottom:24px}.back-button,.history-header{align-items:center;display:flex}.back-button{background:#fff3;border:none;border-radius:12px;color:#fff;cursor:pointer;justify-content:center;padding:12px;transition:all .2s ease}.back-button:hover{background:#ffffff4d;transform:translateX(-2px)}.history-header h1{color:#fff;font-size:24px;font-weight:600;margin:0}.loading{align-items:center;color:#fff;display:flex;font-size:18px;height:200px;justify-content:center}.empty-state{color:#fff;padding:60px 20px;text-align:center}.empty-icon{margin-bottom:16px;opacity:.7}.empty-state h3{font-size:20px;margin:0 0 8px}.empty-state p{font-size:16px;margin:0;opacity:.8}.records-list{display:flex;flex-direction:column;gap:16px}.record-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;padding:20px;transition:transform .2s ease,box-shadow .2s ease}.record-card:hover{box-shadow:0 8px 30px #00000026;transform:translateY(-2px)}.record-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.book-title{color:#1f2937;flex:1 1;font-size:18px;font-weight:600;margin:0 16px 0 0}.record-actions{display:flex;gap:8px}.action-button{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s ease}.action-button.edit{color:#3b82f6}.action-button.edit:hover{background:#dbeafe}.action-button.delete{color:#ef4444}.action-button.delete:hover{background:#fee2e2}.record-details{display:flex;flex-direction:column;gap:12px}.detail-item{align-items:center;color:#6b7280;display:flex;font-size:14px;gap:8px}.completed-badge{align-self:flex-start;background:#dcfce7;border-radius:6px;color:#166534;font-size:12px;font-weight:500;padding:4px 8px}.edit-form{background:#f9fafb;border-radius:12px;margin-top:16px;padding:16px}.form-group{margin-bottom:16px}.form-group label{color:#374151;display:block;font-size:14px;font-weight:500;margin-bottom:4px}.form-group input{border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:8px 12px;transition:border-color .2s ease;width:100%}.form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-actions{display:flex;gap:8px;justify-content:flex-end}.save-button{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.save-button:hover{background:#2563eb}.cancel-button{background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.cancel-button:hover{background:#4b5563}@media (max-width:480px){.reading-history{padding:16px}.record-header{flex-direction:column;gap:12px}.book-title{margin-right:0}.record-actions{align-self:flex-end}.form-actions{flex-direction:column}.cancel-button,.save-button{width:100%}}body.theme-dark .reading-history{background:radial-gradient(circle at top left,#5f6ebd2e,#0000 28%),linear-gradient(180deg,#0d121a,#121925)}body.theme-dark .book-title,body.theme-dark .history-header h1{color:#edf2ff}body.theme-dark .back-button{background:#ffffff14;color:#dce6ff}body.theme-dark .back-button:hover{background:#ffffff1f}body.theme-dark .detail-item,body.theme-dark .empty-state,body.theme-dark .loading{color:#b3bfd3}body.theme-dark .edit-form,body.theme-dark .record-card{background:linear-gradient(180deg,#18202cfa,#121923fa);border:1px solid #8aa0ff1f;box-shadow:0 18px 38px #01061042}body.theme-dark .record-card:hover{box-shadow:0 22px 46px #0106105c}body.theme-dark .action-button.edit{color:#8aa0ff}body.theme-dark .action-button.delete:hover,body.theme-dark .action-button.edit:hover{background:#ffffff0f}body.theme-dark .action-button.delete{color:#ff8e8e}body.theme-dark .completed-badge{background:#15725b38;color:#8ee2bf}body.theme-dark .form-group label{color:#d7e1f7}body.theme-dark .form-group input{background:#1a2230;border-color:#8aa0ff24;color:#edf2ff}body.theme-dark .form-group input:focus{border-color:#7f96ff;box-shadow:0 0 0 3px #7f96ff26}body.theme-dark .save-button{background:linear-gradient(135deg,#6e84ff,#8265d4)}body.theme-dark .cancel-button{background:#293344}.library{margin:0 auto;max-width:1200px;padding:20px}@media (min-width:1024px){.library{padding:40px}}.library-header{align-items:center;display:flex;gap:16px;margin-bottom:24px}@media (min-width:1024px){.library-header{margin-bottom:32px}.library-header h1{font-size:32px}}.back-btn{background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s ease}.back-btn:hover{background:#e5e7eb}.library-header h1{color:#1f2937;font-size:28px;font-weight:700;margin:0}.library-controls{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}@media (min-width:1024px){.library-controls{align-items:center;flex-direction:row;gap:24px;justify-content:space-between}.search-box{max-width:300px}.filter-buttons{flex-wrap:nowrap}}.search-box{max-width:400px;position:relative}.search-box input{border:2px solid #e5e7eb;border-radius:12px;font-size:16px;padding:12px 16px 12px 48px;transition:border-color .2s ease;width:100%}.search-box input:focus{border-color:#4f46e5;outline:none}.search-icon{color:#6b7280;left:16px;position:absolute;top:50%;transform:translateY(-50%)}.filter-buttons{display:flex;flex-wrap:wrap;gap:8px}.filter-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;font-weight:500;gap:8px;padding:8px 16px;transition:all .2s ease}.filter-btn:hover{background:#f8fafc;border-color:#4f46e5}.filter-btn.active{background:#4f46e5;border-color:#4f46e5;color:#fff}.library-content{grid-gap:16px;display:grid;gap:16px}@media (min-width:1024px){.library-content{gap:20px;grid-template-columns:repeat(auto-fit,minmax(500px,1fr))}}.library-book{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:16px;padding:20px;transition:all .2s ease}@media (min-width:1024px){.library-book{gap:20px;padding:24px}}.library-book:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.library-book .book-cover{border-radius:8px;box-shadow:0 4px 8px #0000001a;flex-shrink:0;height:80px;overflow:hidden;width:60px}.library-book .book-cover img{height:100%;object-fit:cover;width:100%}.book-info{flex:1 1;min-width:0}.book-info h3{color:#1f2937;font-size:18px;font-weight:600;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-author{color:#6b7280;font-size:14px;margin:0 0 12px}.book-stats{display:flex;gap:24px;margin-bottom:8px}.book-stats .stat{display:flex;flex-direction:column;gap:2px}.stat-label{color:#6b7280;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.stat-value{color:#1f2937;font-size:14px;font-weight:600}.progress-bar{background:#e5e7eb;border-radius:3px;height:6px;overflow:hidden;width:100%}.progress-fill{border-radius:3px;height:100%;transition:width .3s ease}.book-actions{align-items:center;display:flex;flex-direction:column;gap:12px;min-width:120px}.status-indicator{align-items:center;display:flex;font-size:14px;font-weight:600;gap:6px}.status-icon{height:16px;width:16px}.status-icon.reading{color:#3b82f6}.status-icon.completed{color:#10b981}.status-icon.next{color:#f59e0b}.status-buttons{display:flex;gap:4px}.status-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.status-btn:hover{background:#f8fafc;border-color:#4f46e5}.status-btn.active{background:#4f46e5;border-color:#4f46e5;color:#fff}.empty-library{color:#6b7280;padding:60px 20px;text-align:center}.empty-icon{color:#d1d5db;height:64px;margin:0 auto 16px;width:64px}.empty-library h3{color:#374151;font-size:20px;font-weight:600;margin:0 0 8px}.empty-library p{font-size:16px;margin:0}@media (max-width:768px){.library{padding:12px}.library-header{align-items:flex-start;flex-direction:column;gap:12px}.library-header h1{font-size:24px}.library-controls{gap:12px}.search-box{max-width:100%}.filter-buttons{flex-wrap:wrap;gap:4px}.filter-btn{flex:1 1;font-size:12px;min-width:0;padding:6px 10px}.library-book{align-items:stretch;flex-direction:column;gap:12px;padding:16px}.book-cover{align-self:center;height:70px;width:50px}.book-info{text-align:center}.book-info h3{font-size:16px;margin-bottom:4px}.book-author{font-size:13px}.book-stats{flex-direction:column;gap:12px}.book-actions{flex-direction:column;gap:8px;min-width:auto;width:100%}.status-selector{margin-bottom:8px;margin-right:0}.status-buttons{gap:8px;justify-content:center}.status-btn{font-size:12px;min-width:80px;padding:6px 10px}}body.theme-dark .book-info h3,body.theme-dark .library-header h1,body.theme-dark .stat-value{color:#edf2ff}body.theme-dark .book-author,body.theme-dark .empty-library,body.theme-dark .library,body.theme-dark .stat-label{color:#b3bfd3}body.theme-dark .back-btn,body.theme-dark .filter-btn,body.theme-dark .status-btn{background:#202938;border-color:#8aa0ff1f;color:#e6eeff}body.theme-dark .back-btn:hover,body.theme-dark .filter-btn:hover,body.theme-dark .status-btn:hover{background:#273244;border-color:#8aa0ff3d}body.theme-dark .filter-btn.active,body.theme-dark .status-btn.active{background:linear-gradient(135deg,#6e84ff,#8265d4);border-color:#0000;color:#f8fbff}body.theme-dark .search-box input{background:#18202c;border-color:#8aa0ff1f;color:#edf2ff}body.theme-dark .search-box input:focus{border-color:#7f96ff}body.theme-dark .empty-icon,body.theme-dark .search-icon{color:#7f8ba3}body.theme-dark .library-book{background:linear-gradient(180deg,#18202cfa,#121923fa);border:1px solid #8aa0ff1f;box-shadow:0 18px 38px #01061042}body.theme-dark .library-book:hover{box-shadow:0 22px 48px #0106105c}body.theme-dark .progress-bar{background:#8aa0ff24}body.theme-dark .status-icon.reading{color:#8aa0ff}body.theme-dark .status-icon.completed{color:#65d3a5}body.theme-dark .status-icon.next{color:#f4b16b}.notif-settings{display:block;grid-template-columns:none;margin:0 auto;max-width:640px;padding:20px 20px 100px;position:relative}@media (min-width:1024px){.notif-settings{padding:40px 40px 100px}}.notif-header{align-items:center;display:flex;gap:16px;margin-bottom:8px}.notif-header h1{color:#1f2937;font-size:28px;font-weight:700;margin:0}@media (max-width:767px){.notif-header h1{font-size:22px}}.notif-subtitle{color:#6b7280;font-size:15px;line-height:1.5;margin:0 0 24px}.notif-cards{display:flex;flex-direction:column;gap:16px}.notif-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 4px #0000000a;overflow:hidden;transition:box-shadow .2s ease,opacity .2s ease}.notif-card:hover{box-shadow:0 4px 12px #0000000f}.notif-card-disabled{opacity:.6}.notif-card-disabled:hover{box-shadow:0 1px 4px #0000000a}.notif-card-header{align-items:flex-start;display:flex;gap:14px;padding:18px 18px 14px}.notif-card-icon{align-items:center;background:linear-gradient(135deg,#ede9fe,#ddd6fe);border-radius:12px;color:#7c3aed;display:flex;flex-shrink:0;height:42px;justify-content:center;width:42px}.notif-card-title-group{flex:1 1;min-width:0}.notif-card-title-group h3{color:#1f2937;font-size:16px;font-weight:600;line-height:1.3;margin:0 0 4px}.notif-card-desc{color:#9ca3af;font-size:13px;line-height:1.4;margin:0}.notif-switch{background:#d1d5db;border:none;border-radius:15px;cursor:pointer;flex-shrink:0;height:30px;margin-top:2px;padding:0;position:relative;transition:background .25s ease;width:52px}.notif-switch-on{background:#7c3aed}.notif-switch-thumb{background:#fff;border-radius:50%;box-shadow:0 1px 4px #0000002e;height:26px;left:2px;position:absolute;top:2px;transition:transform .25s cubic-bezier(.4,0,.2,1);width:26px}.notif-switch-on .notif-switch-thumb{transform:translateX(22px)}.notif-card-body{display:flex;flex-direction:column;gap:16px;padding:0 18px 18px}.notif-field-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.notif-field label{color:#6b7280;display:block;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.notif-time-input{background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:10px;box-sizing:border-box;color:#1f2937;font-size:15px;padding:10px 12px;transition:border-color .15s ease;width:100%}.notif-time-input:focus{background:#fff;border-color:#7c3aed;outline:none}.notif-freq-row{align-items:center;display:flex;gap:10px}.notif-freq-label{color:#6b7280;font-size:14px;white-space:nowrap}.notif-freq-input{-moz-appearance:textfield;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:10px;color:#1f2937;font-size:15px;padding:10px 8px;text-align:center;transition:border-color .15s ease;width:64px}.notif-freq-input::-webkit-inner-spin-button,.notif-freq-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.notif-freq-input:focus{background:#fff;border-color:#7c3aed;outline:none}.notif-select-wrapper{flex:1 1;position:relative}.notif-select{appearance:none;-webkit-appearance:none;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:10px;color:#1f2937;cursor:pointer;font-size:15px;padding:10px 32px 10px 12px;transition:border-color .15s ease;width:100%}.notif-select:focus{background:#fff;border-color:#7c3aed;outline:none}.notif-select-chevron{color:#9ca3af;pointer-events:none;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.notif-recurrence-tabs{background:#f3f4f6;border-radius:10px;display:flex;gap:2px;padding:3px}.notif-tab{background:#0000;border:none;border-radius:8px;color:#6b7280;cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:9px 8px;transition:all .2s ease}.notif-tab-active{background:#fff;box-shadow:0 1px 3px #00000014;color:#1f2937;font-weight:600}.notif-days-selector{display:flex;gap:6px;justify-content:center}.notif-day-btn{align-items:center;background:#fff;border:1.5px solid #e5e7eb;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;font-size:12px;font-weight:600;height:40px;justify-content:center;padding:0;transition:all .15s ease;width:40px}.notif-day-btn:hover{border-color:#c4b5fd}.notif-day-active{background:#7c3aed;border-color:#7c3aed;color:#fff}.notif-day-active:hover{background:#6d28d9;border-color:#6d28d9}.notif-trigger-hint{align-items:center;background:#fefce8;border:1px solid #fde68a;border-radius:10px;color:#92400e;display:flex;font-size:13px;gap:8px;line-height:1.4;padding:10px 14px}.notif-trigger-hint svg{color:#f59e0b;flex-shrink:0}@media (max-width:480px){.notif-settings{padding:16px}.notif-card-header{padding:14px 14px 12px}.notif-card-body{padding:0 14px 14px}.notif-card-icon{border-radius:10px;height:38px;width:38px}.notif-card-title-group h3{font-size:15px}.notif-day-btn{font-size:11px;height:36px;width:36px}.notif-freq-row{flex-wrap:wrap}}.notif-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column;font-size:15px;gap:12px;padding:60px 20px}.notif-save-bar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffeb;border-top:1px solid #0000000f;bottom:0;left:0;padding:12px 20px max(12px,env(safe-area-inset-bottom,12px));position:fixed;right:0;z-index:50}.notif-save-bar,.notif-save-btn{display:flex;justify-content:center}.notif-save-btn{align-items:center;background:#7c3aed;border:none;border-radius:12px;box-shadow:0 2px 8px #7c3aed40;color:#fff;cursor:pointer;font-size:15px;font-weight:600;gap:8px;max-width:600px;padding:14px 24px;transition:all .2s ease;width:100%}.notif-save-btn:hover{background:#6d28d9}.notif-save-btn:active{transform:scale(.98)}.notif-save-btn:disabled{cursor:not-allowed;opacity:.7}.notif-save-success{background:#10b981;box-shadow:0 2px 8px #10b98140}.notif-save-success:hover{background:#10b981}.notif-save-error{box-shadow:0 2px 8px #ef444440}.notif-save-error,.notif-save-error:hover{background:#ef4444}@keyframes notif-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.notif-spin{animation:notif-spin .8s linear infinite}body.theme-dark .notif-card-desc,body.theme-dark .notif-freq-label,body.theme-dark .notif-loading,body.theme-dark .notif-settings,body.theme-dark .notif-subtitle{color:#b3bfd3}body.theme-dark .notif-card-title-group h3,body.theme-dark .notif-field label,body.theme-dark .notif-header h1{color:#edf2ff}body.theme-dark .notif-card{background:linear-gradient(180deg,#18202cfa,#121923fa);border-color:#8aa0ff1f;box-shadow:0 18px 38px #01061042}body.theme-dark .notif-card:hover{box-shadow:0 22px 44px #01061052}body.theme-dark .notif-card-icon{background:linear-gradient(135deg,#6e84ff2e,#8265d42e);color:#cdd8ff}body.theme-dark .notif-switch{background:#334056}body.theme-dark .notif-switch-on{background:linear-gradient(135deg,#6e84ff,#8265d4)}body.theme-dark .notif-switch-thumb{background:#f5f8ff}body.theme-dark .notif-freq-input,body.theme-dark .notif-select,body.theme-dark .notif-time-input{background:#1a2230;border-color:#8aa0ff24;color:#edf2ff}body.theme-dark .notif-freq-input:focus,body.theme-dark .notif-select:focus,body.theme-dark .notif-time-input:focus{background:#202938;border-color:#7f96ff}body.theme-dark .notif-select-chevron{color:#8d9ab2}body.theme-dark .notif-recurrence-tabs{background:#202938}body.theme-dark .notif-tab{color:#aebad0}body.theme-dark .notif-tab-active{background:#2a3548;box-shadow:inset 0 0 0 1px #8aa0ff14;color:#f3f7ff}body.theme-dark .notif-day-btn{background:#18202c;border-color:#8aa0ff24;color:#b7c4dd}body.theme-dark .notif-day-btn:hover{border-color:#8aa0ff4d}body.theme-dark .notif-day-active,body.theme-dark .notif-day-active:hover{background:linear-gradient(135deg,#6e84ff,#8265d4);border-color:#0000;color:#f9fbff}body.theme-dark .notif-trigger-hint{background:#382c1db8;border-color:#e9ad7329;color:#efc793}body.theme-dark .notif-trigger-hint svg{color:#f0b066}body.theme-dark .notif-save-bar{background:#0e141ee6;border-top-color:#8aa0ff1a}body.theme-dark .notif-save-btn{background:linear-gradient(135deg,#6e84ff,#8265d4);box-shadow:0 12px 24px #485fc247}body.theme-dark .notif-save-success{background:#128568}body.theme-dark .notif-save-error{background:#c75050}
/*# sourceMappingURL=main.79104d2e.css.map*/