:root{--midnight:#1a0a2e;--deep-navy:#240d3d;--navy:#2d1050;--navy-light:#3d1a6e;--amber:#f5a623;--amber-warm:#e8624a;--cream:#fdf0e0;--cream-dim:#d4b896;--rose:#e8624a;--sage:#2dbfad;--text:#fdf0e0;--text-dim:#9b8aaa;--border:#f5a62333;--card:#2d1050cc;--card-hover:#3d1a6ee6}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--midnight);color:var(--text);min-height:100vh;font-family:Georgia,serif}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 20% 0,#f0a50012 0%,#0000 60%),radial-gradient(60% 80% at 80% 100%,#c0617a0d 0%,#0000 60%);position:fixed;inset:0}.sans{font-family:Helvetica,Arial,sans-serif}.mono{font-family:Courier New,monospace}.app{z-index:1;position:relative}.screen{min-height:100vh;padding:78px 18px 86px;display:none}.screen.active{animation:.3s slideUp;display:block}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.topnav{border-bottom:1px solid var(--border);z-index:100;background:#0d1117f2;justify-content:space-between;align-items:center;height:62px;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0}.nav-brand{align-items:center;gap:10px;display:flex}.nav-brand-text{color:var(--cream);font-family:Georgia,serif;font-size:18px;font-weight:700}.nav-brand-text span{color:var(--amber)}.nav-avatar{width:36px;height:36px;color:var(--midnight);cursor:pointer;border:2px solid #f0a5004d;border-radius:50%;justify-content:center;align-items:center;font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:700;display:flex}.bottomnav{border-top:1px solid var(--border);z-index:100;background:#0d1117f7;align-items:center;height:70px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{cursor:pointer;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 0;transition:all .2s;display:flex;position:relative}.nav-item:before{content:"";background:var(--amber);width:0;height:2px;transition:width .2s;position:absolute;top:0;left:50%;transform:translate(-50%)}.nav-item.active:before{width:28px}.nav-icon{font-size:20px}.nav-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;transition:color .2s}.nav-item.active .nav-label{color:var(--amber)}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:4px;font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700}.section-title{color:var(--cream);margin-bottom:22px;font-family:Georgia,serif;font-size:28px;font-weight:700;line-height:1.2}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;transition:background .2s,transform .2s,box-shadow .2s}.card:hover{background:var(--card-hover);transform:translateY(-2px);box-shadow:0 10px 28px #0000004d}.login-screen{background:var(--midnight);z-index:1;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.login-box{background:var(--navy);border:1px solid var(--border);text-align:center;border-radius:20px;width:340px;padding:44px 36px;position:relative;overflow:hidden;box-shadow:0 40px 80px #0009}.login-box:before{content:"";background:linear-gradient(90deg, transparent, var(--amber), transparent);height:2px;position:absolute;top:0;left:0;right:0}.login-moon{margin-bottom:14px;font-size:44px;display:block}.login-title{color:var(--cream);margin-bottom:2px;font-family:Georgia,serif;font-size:26px;font-weight:700}.login-sub{color:var(--text-dim);letter-spacing:.15em;text-transform:uppercase;margin-bottom:32px;font-family:Helvetica,Arial,sans-serif;font-size:11px}.login-label{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin-bottom:8px;font-family:Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;display:block}.login-input{border:1px solid var(--border);width:100%;color:var(--text);background:#0d1117b3;border-radius:10px;outline:none;margin-bottom:16px;padding:13px 15px;font-family:Helvetica,Arial,sans-serif;font-size:15px;transition:border-color .2s}.login-input:focus{border-color:#f0a50080}.login-input::placeholder{color:var(--text-dim)}.login-btn{background:linear-gradient(135deg, var(--amber), var(--amber-warm));width:100%;color:var(--midnight);cursor:pointer;border:none;border-radius:10px;margin-bottom:10px;padding:14px;font-family:Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;transition:opacity .2s,transform .15s}.login-btn:hover{opacity:.9;transform:translateY(-1px)}.login-btn.secondary{border:1px solid var(--border);color:var(--text-dim);background:0 0}.login-error{color:var(--rose);min-height:18px;margin-top:8px;font-family:Helvetica,Arial,sans-serif;font-size:13px}.login-switch{color:var(--text-dim);cursor:pointer;margin-top:16px;font-family:Helvetica,Arial,sans-serif;font-size:13px}.login-switch span{color:var(--amber);text-decoration:underline}.home-greeting{margin-bottom:26px}.time-label{color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-family:Helvetica,Arial,sans-serif;font-size:12px}.home-greeting h1{color:var(--cream);font-family:Georgia,serif;font-size:30px;font-weight:700;line-height:1.2}.home-greeting h1 em{color:var(--amber);font-style:italic}.current-book-card{cursor:pointer;background:linear-gradient(135deg,#1a2440f2,#131929fa);border:1px solid #f0a50038;border-radius:18px;gap:18px;margin-bottom:22px;padding:22px;transition:transform .2s,box-shadow .2s;display:flex}.current-book-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #00000059}.book-cover-block{background:linear-gradient(135deg,#1a2440,#0d1117);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:78px;height:110px;font-size:36px;display:flex;box-shadow:4px 4px 16px #0006}.book-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--amber);background:#f0a5001f;border:1px solid #f0a50040;border-radius:20px;margin-bottom:9px;padding:3px 10px;font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;display:inline-block}.book-title-lg{color:var(--cream);margin-bottom:3px;font-family:Georgia,serif;font-size:19px;font-weight:700;line-height:1.3}.book-author-sm{color:var(--text-dim);margin-bottom:12px;font-family:Helvetica,Arial,sans-serif;font-size:12px}.progress-label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-family:Helvetica,Arial,sans-serif;font-size:11px}.progress-bar{background:#ffffff14;border-radius:4px;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--amber), var(--amber-warm));border-radius:4px;height:100%;transition:width .5s}.progress-pct{color:var(--amber);margin-top:4px;font-family:Courier New,monospace;font-size:12px}.mini-event{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:13px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 18px;transition:all .2s;display:flex}.mini-event:hover{background:var(--card-hover);border-color:#f0a5004d}.date-block{text-align:center;background:#f0a5001a;border:1px solid #f0a50033;border-radius:9px;min-width:50px;padding:7px 11px}.date-month{letter-spacing:.1em;text-transform:uppercase;color:var(--amber);font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700}.date-day{color:var(--cream);font-family:Georgia,serif;font-size:22px;font-weight:700;line-height:1}.mini-event-name{color:var(--cream);margin-bottom:2px;font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:700}.mini-event-meta{color:var(--text-dim);font-family:Helvetica,Arial,sans-serif;font-size:12px}.search-wrap{margin-bottom:18px;position:relative}.search-wrap input{background:var(--card);border:1px solid var(--border);width:100%;color:var(--text);border-radius:11px;outline:none;padding:12px 15px 12px 42px;font-family:Helvetica,Arial,sans-serif;font-size:14px;transition:border-color .2s}.search-wrap input:focus{border-color:#f0a50066}.search-wrap input::placeholder{color:var(--text-dim)}.search-ico{color:var(--text-dim);font-size:16px;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.book-row{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:13px;align-items:center;gap:14px;margin-bottom:9px;padding:14px;transition:all .2s;display:flex}.book-row:hover{background:var(--card-hover);border-color:#f0a50040;transform:translate(3px)}.book-row-cover{background:linear-gradient(135deg,#1a2440,#0d1117);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:68px;font-size:26px;display:flex}.book-row-title{color:var(--cream);margin-bottom:2px;font-family:Georgia,serif;font-size:16px;font-weight:700}.book-row-author{color:var(--text-dim);margin-bottom:7px;font-family:Helvetica,Arial,sans-serif;font-size:12px}.status-pill{letter-spacing:.07em;text-transform:uppercase;border-radius:20px;padding:2px 8px;font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;display:inline-block}.s-current{color:var(--amber);background:#f0a5001f;border:1px solid #f0a50040}.s-upcoming{color:var(--sage);background:#6b9e7a1f;border:1px solid #6b9e7a40}.s-completed{color:var(--text-dim);background:#8a7d6a1a;border:1px solid #8a7d6a33}.overlay{z-index:200;background:#000000b8;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--deep-navy);border:1px solid var(--border);border-radius:22px 22px 0 0;width:100%;max-width:480px;max-height:92vh;padding-bottom:40px;animation:.3s sheetUp;overflow-y:auto}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{background:#ffffff24;border-radius:4px;width:34px;height:4px;margin:11px auto 0}.sheet-close{cursor:pointer;width:30px;height:30px;color:var(--text-dim);background:#ffffff12;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;top:14px;right:18px}.sheet-head{gap:18px;padding:18px 22px 0;display:flex;position:relative}.sheet-cover{background:linear-gradient(135deg,#1a2440,#0d1117);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:88px;height:122px;font-size:42px;display:flex;box-shadow:6px 6px 20px #0006}.sheet-book-title{color:var(--cream);margin-top:8px;margin-bottom:4px;font-family:Georgia,serif;font-size:21px;font-weight:700;line-height:1.3}.sheet-book-author{color:var(--text-dim);margin-bottom:10px;font-family:Helvetica,Arial,sans-serif;font-size:13px}.sheet-body{padding:18px 22px 0}.modal-sec{letter-spacing:.15em;text-transform:uppercase;color:var(--amber);margin:22px 0 11px;font-family:Helvetica,Arial,sans-serif;font-size:11px;font-weight:700}.progress-box{border:1px solid var(--border);background:#0d111780;border-radius:11px;padding:15px}.range-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.range-row input[type=range]{accent-color:var(--amber);cursor:pointer;flex:1}.range-pct{color:var(--amber);text-align:right;min-width:38px;font-family:Courier New,monospace;font-size:14px}.save-btn{width:100%;color:var(--amber);cursor:pointer;background:#f0a5001f;border:1px solid #f0a50040;border-radius:9px;padding:11px;font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:700;transition:all .2s}.save-btn:hover{background:#f0a50033}.review-card{background:#0d111766;border:1px solid #ffffff0d;border-radius:11px;margin-bottom:9px;padding:13px}.review-top{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.reviewer-name{color:var(--cream);font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:700}.review-stars-display{color:var(--amber);font-size:13px}.review-text-body{color:var(--text-dim);font-size:13px;font-style:italic;line-height:1.6}.stars-row{gap:4px;display:flex}.star{cursor:pointer;color:#f0a50038;font-size:22px;transition:transform .1s}.star.lit{color:var(--amber)}.star:hover{transform:scale(1.2)}.my-stars-row{align-items:center;gap:8px;margin-bottom:11px;display:flex}.my-stars-row span{color:var(--text-dim);font-family:Helvetica,Arial,sans-serif;font-size:13px}.review-textarea{border:1px solid var(--border);width:100%;color:var(--text);resize:none;background:#0d111780;border-radius:9px;outline:none;min-height:78px;margin-bottom:9px;padding:12px 13px;font-family:Georgia,serif;font-size:14px;line-height:1.6;transition:border-color .2s}.review-textarea:focus{border-color:#f0a50066}.review-textarea::placeholder{color:var(--text-dim);font-style:italic}.post-btn{background:linear-gradient(135deg, var(--amber), var(--amber-warm));width:100%;color:var(--midnight);cursor:pointer;border:none;border-radius:9px;padding:13px;font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:700;transition:all .2s}.post-btn:hover{opacity:.9;transform:translateY(-1px)}.tab-row{border:1px solid var(--border);background:#0d111780;border-radius:11px;margin-bottom:18px;padding:3px;display:flex}.tab-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:10px;font-family:Helvetica,Arial,sans-serif;font-size:13px;font-weight:700;transition:all .2s}.tab-btn.active{background:var(--navy-light);color:var(--amber)}.event-card{background:var(--card);border:1px solid var(--border);border-radius:15px;margin-bottom:11px;padding:18px;transition:all .2s}.event-card:hover{background:var(--card-hover);border-color:#f0a50040;transform:translateY(-2px)}.event-top{align-items:flex-start;gap:14px;margin-bottom:13px;display:flex}.event-date-block{text-align:center;background:#f0a5001a;border:1px solid #f0a50033;border-radius:9px;flex-shrink:0;min-width:54px;padding:7px 11px}.event-name{color:var(--cream);margin-bottom:3px;font-family:Georgia,serif;font-size:17px;font-weight:700}.event-type-label{letter-spacing:.09em;text-transform:uppercase;color:var(--text-dim);font-family:Helvetica,Arial,sans-serif;font-size:11px}.event-meta-list{border-top:1px solid #ffffff0d;flex-direction:column;gap:4px;padding-top:11px;display:flex}.meta-row{color:var(--text-dim);align-items:center;gap:8px;font-family:Helvetica,Arial,sans-serif;font-size:13px;display:flex}.rsvp-row{gap:8px;margin-top:13px;display:flex}.rsvp-btn{cursor:pointer;text-align:center;background:0 0;border:1px solid;border-radius:8px;flex:1;padding:9px 4px;font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:700;transition:all .2s}.rsvp-yes{color:var(--sage);border-color:#6b9e7a66}.rsvp-yes.sel{border-color:var(--sage);color:var(--sage);box-shadow:0 0 0 1px var(--sage);background:#6b9e7a40}.rsvp-no{color:var(--rose);border-color:#c0617a66}.rsvp-no.sel{border-color:var(--rose);color:var(--rose);box-shadow:0 0 0 1px var(--rose);background:#c0617a40}.rsvp-maybe{color:var(--amber);border-color:#f5a62366}.rsvp-maybe.sel{border-color:var(--amber);color:var(--amber);box-shadow:0 0 0 1px var(--amber);background:#f5a62333}.chips{flex-wrap:wrap;align-items:center;gap:5px;margin-top:10px;display:flex}.chip{color:var(--text-dim);background:#ffffff0d;border:1px solid #ffffff14;border-radius:20px;padding:3px 9px;font-family:Helvetica,Arial,sans-serif;font-size:12px}.member-row{background:var(--card);border:1px solid var(--border);border-radius:13px;align-items:center;gap:14px;margin-bottom:9px;padding:14px;transition:all .2s;display:flex}.member-row:hover{background:var(--card-hover);border-color:#f0a50040;transform:translate(3px)}.m-avatar{width:50px;height:50px;color:var(--midnight);border:2px solid #f0a50033;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Helvetica,Arial,sans-serif;font-size:19px;font-weight:700;display:flex}.m-name{color:var(--cream);margin-bottom:2px;font-family:Helvetica,Arial,sans-serif;font-size:15px;font-weight:700}.m-email{color:var(--amber);margin-bottom:3px;font-family:Courier New,monospace;font-size:12px}.m-genres{color:var(--text-dim);font-family:Helvetica,Arial,sans-serif;font-size:12px}.m-badges{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.m-badge{letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:20px;padding:2px 7px;font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:700}.b-admin{color:var(--amber);background:#f0a50014;border-color:#f0a5004d}.b-member{color:var(--sage);background:#6b9e7a14;border-color:#6b9e7a4d}.admin-form{background:var(--card);border:1px solid var(--border);border-radius:16px;margin-bottom:18px;padding:22px}.admin-form h3{color:var(--cream);margin-bottom:16px;font-family:Georgia,serif;font-size:18px}.form-group{margin-bottom:14px}.form-label{letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin-bottom:6px;font-family:Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;display:block}.form-input,.form-select,.form-textarea{width:100%;padding:11px 13p}
