@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400&family=DM+Sans:wght@300;400;500&display=swap";:root{--ink: #1c1612;--ink-soft: #4a3f35;--ink-faint: #8a7a6e;--parchment: #f5f0e8;--parchment-dark:#ede5d4;--paper: #faf7f2;--accent: #c45c26;--accent-dark: #9e4419;--accent-pale: #f5e6dc;--gold: #b8922a;--gold-pale: #f7f0e0;--border: #ddd5c4;--border-soft: #e8e0d0;--success: #4a7c59;--success-pale: #e8f2ec;--warning: #b8922a;--warning-pale: #f7f0e0;--error: #a03025;--error-pale: #f7e8e6;--radius: 4px;--radius-lg: 8px;--header-h: 56px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:DM Sans,sans-serif;background:var(--paper);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}.wordmark{font-family:Playfair Display,serif;font-weight:700;color:var(--ink);letter-spacing:-.02em;text-decoration:none;font-size:1.4rem}.wordmark em{font-style:italic;color:var(--accent)}.wordmark:hover{text-decoration:none}.app-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:#faf7f2f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;padding:0 2rem}.nav-links{display:flex;align-items:center;gap:1.5rem}.nav-links a,.nav-links button{font-size:.85rem;color:var(--ink-faint);font-weight:500;transition:color .2s;text-decoration:none;background:none;border:none;padding:0}.nav-links a:hover,.nav-links a.active,.nav-links button:hover{color:var(--accent);text-decoration:none}.logout-btn{font-size:.85rem;color:var(--ink-faint);font-weight:500;transition:color .2s;text-decoration:none;background:none;border:none;padding:0;cursor:pointer}.logout-btn:hover{color:var(--accent)}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--parchment);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.78rem;font-family:Playfair Display,serif;cursor:pointer;flex-shrink:0}.hamburger-btn{display:none;background:none;border:none;padding:.5rem;cursor:pointer;z-index:52}.hamburger-icon{display:block;width:20px;height:2px;background:var(--ink);position:relative;transition:background .2s}.hamburger-icon:before,.hamburger-icon:after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);transition:transform .25s ease}.hamburger-icon:before{top:-6px}.hamburger-icon:after{top:6px}.hamburger-icon.open{background:transparent}.hamburger-icon.open:before{top:0;transform:rotate(45deg)}.hamburger-icon.open:after{top:0;transform:rotate(-45deg)}.desktop-only{display:inline}.mobile-only{display:none}.app-layout{display:flex;min-height:calc(100vh - var(--header-h));position:relative;z-index:1}.sidebar{width:260px;flex-shrink:0;background:var(--parchment);border-right:1px solid var(--border);padding:1.5rem 0;overflow-y:auto}.sidebar-section{padding:0 1rem;margin-bottom:1.5rem}.sidebar-label{font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding:0 .5rem;margin-bottom:.5rem;display:block}.sidebar-item{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border-radius:var(--radius);color:var(--ink-soft);font-size:.875rem;cursor:pointer;text-decoration:none;border:none;background:none;width:100%;text-align:left;font-family:inherit;transition:background .15s,color .15s}.sidebar-item:hover{background:var(--parchment-dark);color:var(--ink);text-decoration:none}.sidebar-item.active{background:var(--accent-pale);color:var(--accent);font-weight:500}.sidebar-item .icon{width:18px;text-align:center;flex-shrink:0;font-size:.95rem}.sidebar-item .badge{margin-left:auto;background:var(--accent);color:#fff;font-size:.68rem;padding:.1rem .45rem;border-radius:10px;font-weight:600}.sidebar-item .word-count{margin-left:auto;font-size:.72rem;color:var(--ink-faint)}.sidebar-divider{height:1px;background:var(--border);margin:.5rem 0}.main-content{flex:1;padding:2rem;overflow-y:auto;max-width:100%;position:relative;z-index:1}.card{background:var(--parchment);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1rem;transition:transform .2s,box-shadow .2s}.card.interactive{cursor:pointer}.card.interactive:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1c161214}.card.dashed{border-style:dashed;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;cursor:pointer;color:var(--ink-faint);transition:border-color .2s,color .2s}.card.dashed:hover{border-color:var(--accent);color:var(--accent)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.card-header h2{font-family:Playfair Display,serif;font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.card-rule{width:100%;height:1px;background:var(--border);margin:1.25rem 0}.card-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.page-header{margin-bottom:2rem}.page-header h1{font-family:Playfair Display,serif;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.3rem}.page-header p{font-family:Lora,serif;font-style:italic;font-size:.9rem;color:var(--ink-faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem 1.25rem;font-size:.875rem;font-weight:500;font-family:DM Sans,sans-serif;border-radius:var(--radius);border:none;cursor:pointer;transition:all .2s;letter-spacing:.02em;text-decoration:none;white-space:nowrap}.btn:hover{transform:translateY(-1px);text-decoration:none}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);box-shadow:0 4px 16px #c45c2640}.btn-secondary{background:var(--parchment-dark);color:var(--ink-soft);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-pale)}.btn-ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--ink-soft);color:var(--ink)}.btn-danger{background:var(--error-pale);color:var(--error);border:1px solid rgba(160,48,37,.2)}.btn-danger:hover{background:var(--error);color:#fff}.btn-link{background:none;border:none;color:var(--accent);padding:0;font-size:inherit;text-decoration:underline;font-family:inherit}.btn-link:hover{color:var(--accent-dark);transform:none}.btn-text{background:none;border:none;color:var(--ink-faint);padding:.5rem .75rem}.btn-text:hover{color:var(--ink);transform:none}.btn-ink{background:var(--ink);color:var(--parchment)}.btn-ink:hover{background:var(--ink-soft);box-shadow:0 4px 16px #1c161233}.btn-sm{padding:.45rem .875rem;font-size:.8rem}.btn-lg{padding:.9rem 1.75rem;font-size:1rem}.btn-block{width:100%}.form-group{margin-bottom:1.1rem}.form-group label,label.field-label{display:block;font-size:.75rem;font-weight:500;color:var(--ink-soft);letter-spacing:.07em;text-transform:uppercase;margin-bottom:.45rem}input[type=text],input[type=email],input[type=password],input[type=url],input[type=search],textarea,select{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.925rem;font-family:DM Sans,sans-serif;background:var(--paper);color:var(--ink);transition:border-color .2s,box-shadow .2s,background .2s;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #c45c261a}input::placeholder,textarea::placeholder{color:var(--ink-faint);opacity:.6}textarea{resize:vertical;min-height:100px;line-height:1.6}input:disabled{background:var(--parchment);color:var(--ink-faint);cursor:not-allowed}.form-help{font-size:.8rem;color:var(--ink-faint);margin-top:.35rem;font-style:italic}.form-error{font-size:.8rem;color:var(--error);margin-top:.35rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-weight:500;cursor:pointer;font-size:.875rem;text-transform:none;letter-spacing:0}.checkbox-label input[type=checkbox]{width:1.1rem;height:1.1rem;cursor:pointer}.otp-input{text-align:center;font-size:1.5rem;font-weight:600;letter-spacing:.5rem;font-family:monospace}.badge{display:inline-flex;align-items:center;padding:.18rem .55rem;border-radius:2rem;font-size:.72rem;font-weight:500;letter-spacing:.03em}.badge-draft{background:var(--warning-pale);color:var(--warning)}.badge-live,.badge-active{background:var(--success-pale);color:var(--success)}.badge-pending{background:var(--warning-pale);color:var(--warning)}.badge-accepted{background:var(--success-pale);color:var(--success)}.badge-archived{background:var(--parchment-dark);color:var(--ink-faint)}.badge-ink{background:var(--ink);color:var(--parchment)}.tier-badge{display:inline-flex;align-items:center;padding:.18rem .55rem;border-radius:2rem;font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.tier-free{background:var(--parchment-dark);color:var(--ink-faint)}.tier-basic{background:var(--accent-pale);color:var(--accent)}.tier-premium{background:var(--gold-pale);color:var(--gold)}.progress-bar{width:100%;height:5px;background:var(--border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.progress-fill.success,.progress-fill.complete{background:var(--success)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:.65rem 1rem;border-bottom:2px solid var(--border);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}td{padding:.75rem 1rem;border-bottom:1px solid var(--border-soft);font-size:.875rem}tr:last-child td{border-bottom:none}tr:hover td{background:var(--parchment)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--parchment);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;text-align:center}.stat-value{font-family:Playfair Display,serif;font-size:2rem;font-weight:700;color:var(--ink);line-height:1;margin-bottom:.3rem}.stat-value.accent{color:var(--accent)}.stat-label{font-size:.78rem;color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase}.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.5rem;gap:0}.tab{padding:.7rem 1.1rem;font-size:.875rem;font-weight:500;color:var(--ink-faint);border:none;background:none;cursor:pointer;font-family:inherit;position:relative;transition:color .2s}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent)}.tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent);border-radius:2px 2px 0 0}.ornament-divider{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0;color:var(--ink-faint);font-size:.85rem}.ornament-divider:before,.ornament-divider:after{content:"";flex:1;height:1px;background:var(--border-soft)}.empty-state{text-align:center;padding:3.5rem 2rem}.empty-state .empty-icon{font-size:2.5rem;margin-bottom:1rem;opacity:.4}.empty-state h3{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.empty-state p{font-size:.875rem;color:var(--ink-faint);max-width:320px;margin:0 auto 1.5rem;line-height:1.6}.alert{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.85rem}.alert-error{background:var(--error-pale);color:var(--error);border:1px solid rgba(160,48,37,.2)}.alert-success{background:var(--success-pale);color:var(--success);border:1px solid rgba(74,124,89,.2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c161299;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #1c161233}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.modal-header h2{font-family:Playfair Display,serif;font-size:1.15rem;font-weight:700}.modal-close{background:none;border:none;color:var(--ink-faint);font-size:1.3rem;cursor:pointer;padding:.2rem;line-height:1;transition:color .2s}.modal-close:hover{color:var(--ink)}.modal-footer{margin-top:1.5rem;display:flex;justify-content:flex-end;gap:.75rem}.toast-container{position:fixed;top:1rem;right:1rem;z-index:300;display:flex;flex-direction:column;gap:.5rem}.toast{background:var(--ink);color:var(--parchment);border-radius:var(--radius);padding:.875rem 1.25rem;font-size:.875rem;display:flex;align-items:center;gap:.6rem;min-width:260px;box-shadow:0 8px 24px #1c161233;animation:slideIn .3s ease}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--error)}.toast.warning{border-left:3px solid var(--warning)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;justify-content:center;align-items:center;min-height:100vh}.loading{display:flex;justify-content:center;align-items:center;min-height:50vh;font-size:1rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic}.error-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:50vh;gap:1rem;color:var(--error)}.text-muted{color:var(--ink-faint)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-center{text-align:center}.text-right{text-align:right}.font-serif{font-family:Playfair Display,serif}.font-italic{font-family:Lora,serif;font-style:italic}.hidden{display:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.w-full{width:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;position:relative;z-index:1}.login-brand-panel{background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:3rem;position:relative;overflow:hidden}.login-brand-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 80%,rgba(196,92,38,.18) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(184,146,42,.12) 0%,transparent 50%);pointer-events:none}.login-brand-panel:after{content:"";position:absolute;left:3rem;right:3rem;top:0;bottom:0;background:repeating-linear-gradient(to bottom,transparent,transparent 31px,rgba(255,255,255,.04) 31px,rgba(255,255,255,.04) 32px);pointer-events:none}.login-brand{position:relative;z-index:2}.login-brand .wordmark{font-size:2.25rem;color:var(--parchment)}.login-brand .tagline{font-family:Lora,serif;font-style:italic;font-size:.875rem;margin-top:.5rem;color:#f5f0e873;letter-spacing:.01em}.login-quote{position:relative;z-index:2;animation:fadeUp .6s .1s ease both}.login-quote .quote-mark{font-family:Playfair Display,serif;font-size:5rem;line-height:.8;color:var(--accent);opacity:.6;margin-bottom:.5rem}.login-quote .quote-text{font-family:Lora,serif;font-style:italic;font-size:1.125rem;line-height:1.7;color:#f5f0e8bf;max-width:320px}.login-quote .quote-attribution{margin-top:1rem;font-size:.78rem;color:#f5f0e859;letter-spacing:.08em;text-transform:uppercase;font-family:DM Sans,sans-serif;font-weight:300}.login-footer{position:relative;z-index:2;display:flex;gap:1.5rem}.login-footer span{font-size:.75rem;color:#f5f0e840;letter-spacing:.04em}.login-form-panel{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;background:var(--paper)}.auth-card{width:100%;max-width:380px;animation:fadeUp .5s ease both}.auth-card-header{margin-bottom:2.5rem}.auth-card-header h2{font-family:Playfair Display,serif;font-size:1.75rem;font-weight:700;color:var(--ink);margin-bottom:.4rem;letter-spacing:-.02em}.auth-card-header p{font-size:.875rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic}.auth-divider{display:flex;align-items:center;gap:1rem;margin:1.75rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-soft)}.auth-divider span{font-size:.75rem;color:var(--ink-faint);letter-spacing:.05em;font-family:Lora,serif;font-style:italic}.auth-card-footer{text-align:center}.auth-card-footer p{font-size:.85rem;color:var(--ink-faint);margin-bottom:.75rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.signup-page{position:relative;z-index:1}.signup-nav{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 3rem;border-bottom:1px solid var(--border-soft)}.signup-nav .nav-link{font-size:.85rem;color:var(--ink-faint);text-decoration:none;transition:color .2s}.signup-nav .nav-link:hover{color:var(--accent)}.signup-hero{text-align:center;padding:4rem 2rem 3rem}.signup-hero .hero-label{display:inline-block;font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-pale);padding:.3rem .85rem;border-radius:2rem;margin-bottom:1.25rem;border:1px solid rgba(196,92,38,.2)}.signup-hero h1{font-family:Playfair Display,serif;font-size:clamp(2.25rem,5vw,3.25rem);font-weight:700;color:var(--ink);letter-spacing:-.03em;line-height:1.15;margin-bottom:1rem}.signup-hero h1 em{font-style:italic;color:var(--accent)}.signup-hero p{font-family:Lora,serif;font-style:italic;font-size:1.1rem;color:var(--ink-faint);max-width:460px;margin:0 auto;line-height:1.65}.pricing-section{max-width:1020px;margin:0 auto;padding:0 2rem 5rem}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}.pricing-card{background:var(--parchment);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;position:relative;transition:transform .2s,box-shadow .2s;animation:fadeUp .5s ease both}.pricing-card:nth-child(1){animation-delay:.05s}.pricing-card:nth-child(2){animation-delay:.15s}.pricing-card:nth-child(3){animation-delay:.25s}.pricing-card:hover{transform:translateY(-3px);box-shadow:0 12px 40px #1c161214}.pricing-card.featured{background:var(--ink);border-color:var(--ink);color:var(--parchment);transform:scale(1.02)}.pricing-card.featured:hover{transform:scale(1.02) translateY(-3px);box-shadow:0 16px 48px #1c161238}.featured-badge{position:absolute;top:-13px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .9rem;border-radius:2rem;white-space:nowrap}.plan-name{font-family:Playfair Display,serif;font-size:1.2rem;font-weight:700;margin-bottom:.25rem;letter-spacing:-.01em}.pricing-card.featured .plan-name{color:var(--parchment)}.plan-tagline{font-family:Lora,serif;font-style:italic;font-size:.82rem;color:var(--ink-faint);margin-bottom:1.5rem}.pricing-card.featured .plan-tagline{color:#f5f0e880}.price-row{display:flex;align-items:baseline;gap:.25rem;margin-bottom:.25rem}.price-amount{font-family:Playfair Display,serif;font-size:2.75rem;font-weight:700;line-height:1;color:var(--ink);letter-spacing:-.04em}.pricing-card.featured .price-amount{color:var(--parchment)}.price-period{font-size:.85rem;color:var(--ink-faint)}.pricing-card.featured .price-period{color:#f5f0e873}.pricing-card.featured .card-rule{background:#f5f0e826}.features-list{list-style:none;margin-bottom:1.75rem;padding:0}.features-list li{display:flex;align-items:flex-start;gap:.6rem;padding:.38rem 0;font-size:.875rem;color:var(--ink-soft);line-height:1.5}.pricing-card.featured .features-list li{color:#f5f0e8cc}.feature-check{flex-shrink:0;width:16px;height:16px;margin-top:2px;color:var(--accent)}.pricing-card.featured .feature-check{color:var(--gold)}.signup-footer-section{text-align:center;padding-bottom:3rem}.signup-footer-section p{font-family:Lora,serif;font-style:italic;font-size:.9rem;color:var(--ink-faint)}.footnote-line{display:flex;align-items:center;justify-content:center;gap:1rem;margin:2rem auto 1rem;max-width:300px}.footnote-line:before,.footnote-line:after{content:"";flex:1;height:1px;background:var(--border-soft)}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.book-card{text-decoration:none;color:inherit}.book-card:hover{text-decoration:none}.book-card .card{height:100%}.book-card-body{display:flex;gap:1rem;align-items:flex-start}.book-card-content{flex:1;min-width:0}.book-thumb{flex-shrink:0;width:72px}.book-thumb-aspect{position:relative;padding-top:133%;border-radius:3px;overflow:hidden;box-shadow:0 4px 12px #1c161226,0 1px 3px #1c161214}.book-thumb-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.book-thumb-fallback{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#2c2420,#1c1612);display:flex;align-items:center;justify-content:center;padding:.4rem}.book-thumb-title{font-family:Playfair Display,serif;font-style:italic;font-weight:700;color:var(--parchment);font-size:.6rem;text-align:center;line-height:1.2}.book-cover-aspect{position:relative;padding-top:133%;border-radius:3px;overflow:hidden;box-shadow:0 8px 24px #1c161233,0 2px 6px #1c16121a}.book-cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.book-cover-fallback{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#2c2420,#1c1612);display:flex;align-items:center;justify-content:center;padding:1rem}.book-cover-title{font-family:Playfair Display,serif;font-style:italic;font-weight:700;color:var(--parchment);font-size:1rem;text-align:center;line-height:1.3}.cover-upload-section{display:flex;gap:1.5rem;align-items:flex-start}.cover-preview{flex-shrink:0;width:120px}.cover-preview .book-cover-aspect{box-shadow:0 6px 20px #1c16122e}.cover-drop-zone{display:block;border:2px dashed var(--border);border-radius:var(--radius);padding:1.75rem 1rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.cover-drop-zone:hover{border-color:var(--accent);background:var(--accent-pale)}.cover-upload-zone{flex:1}.book-card-header{display:flex;align-items:flex-start;justify-content:space-between}.book-card-info h3{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;margin-bottom:.2rem}.book-card-info .book-genre{font-size:.8rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic}.book-card-stats{display:flex;gap:1.5rem;font-size:.82rem;color:var(--ink-faint);margin:1rem 0}.book-card-stats .unresolved{color:var(--warning);font-weight:500}.action-dropdown{position:relative}.action-dropdown.open{z-index:100}.book-card:has(.action-dropdown.open){z-index:10}.dropdown-btn{display:inline-flex;align-items:center;padding:.3rem .6rem;background:none;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:1rem;color:var(--ink-faint);transition:background .15s,color .15s}.dropdown-btn:hover{background:var(--parchment-dark);color:var(--ink)}.action-dropdown-menu{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #1c16121f;min-width:150px;z-index:100;padding:.3rem 0;display:none}.action-dropdown.open .action-dropdown-menu{display:block}.action-dropdown-menu a,.action-dropdown-menu button{display:block;width:100%;padding:.5rem 1rem;text-align:left;background:none;border:none;color:var(--ink);font-size:.85rem;cursor:pointer;text-decoration:none;font-family:inherit;transition:background .15s}.action-dropdown-menu a:hover,.action-dropdown-menu button:hover{background:var(--parchment);text-decoration:none}.dropdown-divider{height:1px;background:var(--border);margin:.3rem 0}.action-dropdown-menu .danger{color:var(--error)}.action-dropdown-menu .danger:hover{background:var(--error-pale)}.action-buttons{display:flex;gap:.5rem}.book-edit-layout{display:flex;min-height:calc(100vh - var(--header-h))}.chapters-sidebar{width:260px;flex-shrink:0;background:var(--parchment);border-right:1px solid var(--border);padding:1.5rem 0;overflow-y:auto}.chapter-list{list-style:none;padding:0;margin:0}.chapter-list li{display:flex;align-items:center;padding:0 1rem;margin-bottom:.15rem}.chapter-list li.active .sidebar-item{background:var(--accent-pale);color:var(--accent);font-weight:500}.chapter-list .sidebar-item{flex:1}.delete-btn{background:none;border:none;color:var(--ink-faint);padding:.3rem .5rem;cursor:pointer;font-size:1rem;opacity:0;transition:opacity .2s,color .15s}.chapter-list li:hover .delete-btn{opacity:1}.delete-btn:hover{color:var(--error)}.edit-main{flex:1;padding:2rem;overflow-y:auto;max-width:680px}.book-form{max-width:680px;margin:2rem auto;padding:0 2rem}.book-form textarea,.chapter-editor textarea{font-family:monospace;font-size:.9rem;line-height:1.6}.chapter-preview{min-height:400px;padding:1.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);overflow-y:auto;font-family:Lora,serif;font-size:1rem;line-height:1.8}.chapter-preview h1,.chapter-preview h2,.chapter-preview h3{font-family:Playfair Display,serif;margin-top:1.5rem;margin-bottom:.75rem}.chapter-preview h1:first-child,.chapter-preview h2:first-child{margin-top:0}.chapter-preview p{margin-bottom:1.25em}.chapter-preview blockquote{border-left:3px solid var(--accent);padding-left:1rem;margin:1.5em 0;color:var(--ink-faint);font-style:italic}.chapter-reader{display:flex;flex-direction:column;height:100vh;max-width:100vw;overflow:hidden}.reader-header{position:sticky;top:0;z-index:50;height:52px;background:#faf7f2f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;flex-shrink:0}.reader-header .back-link{font-size:.85rem;color:var(--ink-faint);text-decoration:none}.reader-header .back-link:hover{color:var(--accent)}.reader-header .wordmark{font-size:1.1rem}.reader-header .book-title{font-size:.82rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic;text-align:center;flex:1;padding:0 1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-header-right{display:flex;align-items:center;gap:.75rem}.reader-header-right .chapter-position{font-size:.78rem;color:var(--ink-faint)}.toc-toggle{background:transparent;border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .75rem;font-size:.8rem;color:var(--ink-faint);cursor:pointer;flex-shrink:0;font-family:inherit;transition:background .15s,color .15s}.toc-toggle:hover{background:var(--parchment);color:var(--ink)}.toc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c161266;z-index:200;display:flex;justify-content:flex-end}.toc-panel{width:300px;max-width:80vw;background:var(--paper);border-left:1px solid var(--border);padding:1.5rem;overflow-y:auto;box-shadow:-8px 0 24px #1c16121a}.toc-panel h3{font-family:Playfair Display,serif;font-size:1rem;font-weight:700;margin-bottom:1rem}.toc-panel ul{list-style:none;padding:0;margin:0}.toc-panel li{margin-bottom:.15rem}.toc-panel li a{display:block;padding:.5rem .75rem;color:var(--ink-soft);text-decoration:none;font-size:.875rem;border-radius:var(--radius);transition:background .15s,color .15s}.toc-panel li a:hover{background:var(--parchment);color:var(--ink);text-decoration:none}.toc-panel li.active a{background:var(--accent-pale);color:var(--accent);font-weight:500}.reader-body{display:flex;flex:1;overflow:hidden}.reader-content{flex:1;overflow-y:auto;padding:3rem 2rem 6rem}.chapter{max-width:680px;margin:0 auto}.chapter-title{font-family:Playfair Display,serif;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.4rem}.chapter-subtitle{font-family:Lora,serif;font-style:italic;font-size:1.1rem;color:var(--ink-faint);margin-bottom:2.5rem;font-weight:400}.chapter-body{font-family:Lora,serif;font-size:1.08rem;line-height:1.9;color:var(--ink)}.chapter-body p{margin-bottom:1.4em}.chapter-body h1,.chapter-body h2,.chapter-body h3{font-family:Playfair Display,serif;margin-top:2em;margin-bottom:.75em}.chapter-body h1:first-child,.chapter-body h2:first-child{margin-top:0}.chapter-body blockquote{background:#c45c260f;border-left:3px solid var(--accent);padding:.75rem 1rem;border-radius:0 var(--radius) var(--radius) 0;margin:1.5em 0}.chapter-body--empty{display:flex;align-items:center;justify-content:center;min-height:200px}.chapter-body--empty .empty-notice{color:var(--ink-faint);font-style:italic;font-family:Lora,serif}.chapter-nav{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border-soft)}.chapter-nav .word-count{font-size:.78rem;color:var(--ink-faint)}.comment-panel{width:300px;flex-shrink:0;border-left:1px solid var(--border-soft);background:var(--parchment);padding:1.5rem;overflow-y:auto}.comment-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.comment-panel-header h3{font-family:Playfair Display,serif;font-size:1rem;font-weight:700}.comment-panel-header span{font-size:.75rem;color:var(--ink-faint)}.comment-item{padding:.875rem;background:var(--paper);border-radius:var(--radius);border:1px solid var(--border-soft);margin-bottom:1rem}.comment-item.resolved{opacity:.5}.comment-meta{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.comment-meta .commenter{font-size:.78rem;font-weight:500}.comment-meta .date{font-size:.72rem;color:var(--ink-faint);margin-left:auto}.comment-content{font-size:.82rem;line-height:1.55;color:var(--ink-soft);margin:0}.comment-form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c161299;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.comment-form{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:480px;box-shadow:0 24px 64px #1c161233}.comment-form h4{font-family:Playfair Display,serif;margin-bottom:1rem;font-weight:700}.comment-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.reader-footer{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-top:1px solid var(--border-soft);background:#faf7f2f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0}.center-controls{display:flex;align-items:center;gap:.5rem}.completed-badge{font-size:.8rem;color:var(--success);font-weight:600}.book-overview{max-width:600px;margin:0 auto;text-align:center}.book-overview-cover{width:180px;height:auto;border-radius:var(--radius-lg);box-shadow:0 4px 16px #1c161226;margin-bottom:1.5rem}.book-overview-title{font-family:Playfair Display,serif;font-size:1.75rem;font-weight:700;margin-bottom:.25rem;letter-spacing:-.02em}.book-overview-author{font-size:1rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic;margin-bottom:1rem}.book-overview-description{font-size:.95rem;color:var(--ink-faint);line-height:1.6;margin-bottom:2rem;white-space:pre-line}.book-overview-chapters{text-align:left;margin-bottom:2rem}.book-overview-chapters h2{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;margin-bottom:.75rem}.chapter-listing{list-style:none;padding:0;margin:0}.chapter-listing li a{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border-soft);text-decoration:none;color:var(--ink);transition:background .15s}.chapter-listing li:first-child a{border-top:1px solid var(--border-soft)}.chapter-listing li a:hover{background:var(--parchment);text-decoration:none}.chapter-listing .chapter-number{width:2rem;flex-shrink:0;font-size:.85rem;color:var(--ink-faint);font-weight:600}.chapter-listing .chapter-name{flex:1;font-size:.95rem}.chapter-listing .chapter-check{color:var(--success);font-size:1rem;margin-left:.5rem}.chapter-listing li.completed .chapter-name{color:var(--ink-faint)}.begin-reading-btn{display:inline-block;margin-top:.5rem}.settings-content{max-width:680px;margin:0 auto;padding:2rem}.settings-section{margin-bottom:1.5rem}.settings-section .card{margin-bottom:0}.settings-section .card-header h2{font-family:Playfair Display,serif;font-size:1.15rem;font-weight:700}.current-plan{margin-bottom:1rem;font-size:.9rem}.upgrade-options{display:flex;gap:1rem;flex-wrap:wrap}.api-key-form{display:flex;gap:.75rem;margin:1rem 0}.api-key-form input{flex:1}.api-key{display:block;background:var(--parchment);padding:.75rem;border-radius:var(--radius);font-family:monospace;font-size:.875rem;word-break:break-all;margin:.5rem 0;border:1px solid var(--border)}.danger-zone .card{border-color:#a030254d}.danger-zone .card-header h2{color:var(--error)}.invite-form{display:flex;gap:.75rem;margin-bottom:1.5rem}.invite-form input{flex:1}.known-readers{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.known-readers-title{font-size:.82rem;color:var(--ink-faint);margin-bottom:.5rem;font-family:Lora,serif;font-style:italic}.known-readers-list{display:flex;flex-wrap:wrap;gap:.5rem}.known-reader-btn{padding:.35rem .75rem;background:var(--paper);border:1px solid var(--border);border-radius:2rem;font-size:.82rem;cursor:pointer;font-family:inherit;transition:background .2s,border-color .2s,color .2s}.known-reader-btn:hover{background:var(--accent-pale);border-color:var(--accent);color:var(--accent)}.reader-email{font-weight:500}.reader-status{font-size:.75rem;font-weight:500}.reader-status.pending{color:var(--warning)}.reader-status.accepted{color:var(--success)}.reader-actions{display:flex;gap:.5rem}.share-link{display:flex;gap:.5rem;margin-top:.5rem}.share-link input{flex:1;font-family:monospace;font-size:.85rem}.import-options{display:flex;gap:1rem;margin-bottom:1rem}.import-option{flex:1;padding:1.25rem;background:var(--paper);border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:center;transition:border-color .2s,background .2s}.import-option:hover{border-color:var(--accent)}.import-option.selected{border-color:var(--accent);background:var(--accent-pale)}.import-option h4{font-family:Playfair Display,serif;margin-bottom:.25rem;font-weight:700}.import-option p{font-size:.82rem;color:var(--ink-faint);margin:0}.file-input{display:block;width:100%;padding:.75rem;border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--paper);cursor:pointer;font-family:inherit;color:var(--ink-soft)}.file-input:hover{border-color:var(--accent)}.docx-preview{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.chapter-preview-list{list-style:none;padding:0;margin:0}.chapter-preview-list li{padding:.5rem 0;border-bottom:1px solid var(--border-soft);font-size:.9rem}.chapter-preview-list li:last-child{border-bottom:none}.blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2rem}.blog-featured .card{padding:2rem;margin-bottom:2rem}.blog-featured .featured-label{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:500}.blog-featured h2{font-family:Playfair Display,serif;font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin:.5rem 0}.blog-featured .excerpt{font-family:Lora,serif;font-style:italic;color:var(--ink-faint);font-size:.95rem;margin-bottom:1rem}.essay-card .card h3{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;margin-bottom:.4rem}.essay-card .excerpt{font-size:.82rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic;margin-bottom:.75rem;line-height:1.6}.essay-meta{display:flex;align-items:center;gap:1rem;font-size:.78rem;color:var(--ink-faint)}.blog-post-page{max-width:680px;margin:0 auto;padding:2rem}.blog-post-page h1{font-family:Playfair Display,serif;font-size:2rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem}.blog-post-page .subtitle{font-family:Lora,serif;font-style:italic;font-size:1.1rem;color:var(--ink-faint);margin-bottom:1.5rem}.post-meta{display:flex;gap:1rem;font-size:.82rem;color:var(--ink-faint);margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-soft)}.post-content{font-family:Lora,serif;font-size:1.08rem;line-height:1.9}.post-content p{margin-bottom:1.4em}.post-content h1,.post-content h2,.post-content h3{font-family:Playfair Display,serif;margin-top:2em;margin-bottom:.75em}.post-content blockquote{border-left:3px solid var(--accent);padding-left:1rem;margin:1.5em 0;color:var(--ink-faint);font-style:italic}.post-footer{display:flex;justify-content:space-between;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border-soft)}.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;padding-bottom:3rem}.pagination .page-num{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);font-size:.85rem;font-weight:500}.pagination .page-num.active{background:var(--accent);color:#fff}.reader-book-card .card{height:100%}.reader-book-card .book-status{margin-bottom:.75rem}.reader-book-card h3{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:700;margin-bottom:.2rem}.reader-book-card .book-author{font-size:.8rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic;margin-bottom:1rem}.reader-book-card .progress-info{display:flex;justify-content:space-between;font-size:.78rem;color:var(--ink-faint);margin-top:.4rem}.resume-hint{font-size:.82rem;color:var(--ink-faint);font-family:Lora,serif;font-style:italic;margin-top:.5rem}@media (max-width: 768px){.login-page{grid-template-columns:1fr}.login-brand-panel{padding:2rem;min-height:220px}.login-quote,.login-footer{display:none}.login-form-panel{padding:2.5rem 1.25rem 2rem;align-items:flex-start}.sidebar,.chapters-sidebar{display:none}.main-content{padding:1.25rem}.app-header{padding:0 1.25rem}.hamburger-btn{display:block;order:10}.desktop-only{display:none}.nav-links{display:none;position:absolute;top:var(--header-h);left:0;right:0;flex-direction:column;background:#faf7f2fa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:.75rem 1.25rem;gap:0;box-shadow:0 8px 24px #1c161214;z-index:51}.nav-links.nav-open{display:flex}.nav-links a,.nav-links button{padding:.75rem 0;font-size:.95rem;border-bottom:1px solid var(--border-soft);width:100%;text-align:left}.nav-links a:last-of-type{border-bottom:none}.nav-links .mobile-only{display:block;border-bottom:none;color:var(--error);padding-top:.75rem;margin-top:.25rem;border-top:1px solid var(--border)}.user-avatar{order:5}.book-grid,.blog-grid{grid-template-columns:1fr}.pricing-grid{grid-template-columns:1fr;max-width:400px;margin:0 auto}.pricing-card.featured{transform:none}.pricing-card.featured:hover{transform:translateY(-3px)}.invite-form,.api-key-form,.import-options,.action-buttons{flex-direction:column}.settings-content{padding:1.25rem}.signup-nav{padding:1.25rem 1.5rem}.signup-hero{padding:2.5rem 1.5rem 2rem}.pricing-section{padding:0 1.25rem 3rem}.reader-content{padding:1.5rem 1.25rem}.chapter-body{font-size:1rem;line-height:1.8}.comment-panel{display:none}.reader-footer .btn{font-size:.8rem;padding:.45rem .75rem}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}}
