:root{--color-text:#343a35;--color-heading:#202820;--color-background:#faf9f6;--color-border:#e5e3dc;--color-primary:#285943;--color-primary-hover:#1e4532;--color-accent:#c49a46;--color-surface:#fff;--shadow-card:0 8px 24px #20282014;--font-body:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:Georgia, "Times New Roman", serif;font:16px/1.6 var(--font-body);color:var(--color-text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{background:var(--color-background);color:var(--color-text);min-height:100vh;margin:0}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-heading);font-weight:600;line-height:1.2}h1{margin-top:0;margin-bottom:1.25rem;font-size:clamp(2.25rem,5vw,3.75rem)}h2{margin-top:0;margin-bottom:.75rem;font-size:clamp(1.5rem,3vw,2rem)}p{margin:0 0 1rem}a{color:inherit;text-underline-offset:.2rem;text-decoration-thickness:1px}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}img{vertical-align:middle;max-width:100%}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{flex-direction:column;min-height:100vh;display:flex}.site-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem max(1.5rem,50% - 600px);display:flex}.brand{letter-spacing:.06rem;color:var(--color-primary);font-size:1.15rem;font-weight:800;text-decoration:none}.site-header nav{flex-wrap:wrap;gap:1.5rem;display:flex}.site-header nav a{font-weight:600;text-decoration:none;transition:color .15s}.site-header nav a:hover{color:var(--color-primary)}.site-header nav a:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}#main-content{flex:1;width:min(100% - 3rem,1200px);min-width:0;margin-inline:auto;padding-block:4rem}.home-page{text-align:center;max-width:850px;margin-inline:auto;padding-block:3rem}.eyebrow{color:var(--color-primary);letter-spacing:.12em;margin-bottom:1.5rem;font-size:.8rem;font-weight:800}.home-description{max-width:650px;margin:0 auto 2rem;font-size:1.1rem}.primary-button{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;border-radius:.5rem;justify-content:center;align-items:center;padding:.85rem 1.4rem;font-weight:700;text-decoration:none;transition:background-color .15s;display:inline-flex}.primary-button:hover{background:var(--color-primary-hover)}.books-page>p{max-width:650px;margin-bottom:2rem}.books-toolbar{border:1px solid var(--color-border);background:var(--bg);border-radius:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem;margin-top:2rem;padding:1.25rem;display:grid}.books-toolbar__field{flex-direction:column;gap:.5rem;display:flex}.books-toolbar__field label{color:var(--color-heading);font-size:.9rem;font-weight:600}.books-toolbar__field input,.books-toolbar__field select{border:1px solid var(--color-border);background:var(--color-background);width:100%;min-height:44px;color:var(--color-heading);border-radius:.5rem;padding:.7rem .8rem}.books-toolbar__field input:focus-visible,books-toolbar__field select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.books-results-count{color:var(--color-text);margin:1.5rem 0 0;font-size:.95rem}.books-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1.5rem;margin-top:2rem;display:grid}.book-card{border:1px solid var(--color-border);background:var(--color-background);border-radius:.75rem;overflow:hidden}.book-card__link{height:100%;color:inherit;text-decoration:none;display:block}.book-card__link:focus-visible{outline:3px solid var(--color-accent);outline-offset:-3px;border-radius:.75rem}.book-card__link:hover .book-card__title{color:var(--color-accent)}.book-card__cover{aspect-ratio:3/4;object-fit:cover;background:var(--color-background);width:100%;display:block}.book-card__content{padding:1rem}.book-card__category{color:var(--color-text);margin:0 0 .5rem;font-size:.8rem}.book-card__title{color:var(--color-heading);margin:0 0 .5rem;font-size:1.15rem}.book-card__author,.book-card__rating{color:var(--color-text);margin:0 0 .75rem;font-size:.9rem}.book-card__rating span{color:var(--color-accent)}.book-card__price{color:var(--color-heading);margin:0;font-size:1.1rem;font-weight:700}.empty-state{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:.75rem;margin-top:2rem;padding:2rem}.empty-state h2{color:var(--color-primary)}.empty-state .button{border:1px solid var(--color-border);background:var(--color-accent);color:#fff;cursor:pointer;border-radius:.5rem;margin-top:.75rem;padding:.75rem 1rem;font-weight:600}.empty-state .button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.books-page__back-link{margin-top:2rem}.book-details{padding-block:1rem 3rem}.book-details__back-link{margin-bottom:2rem;display:inline-block}.book-details__layout{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:start;gap:2.5rem;display:grid}.book-details__cover{aspect-ratio:3/4;object-fit:cover;border:1px solid var(--color-border);background:var(--color-background);border-radius:.75rem;width:100%;max-width:420px;display:block}.book-details__content h1{margin-top:0}.book-details__author{color:var(--color-text);font-size:1.05rem}.book-details__description{margin-block:1.5rem;line-height:1.8}.book-details__price{color:var(--color-heading);margin-block:1.5rem;font-size:1.6rem;font-weight:700}.book-details__content .button{border:1px solid var(--color-border);background:var(--color-accent);color:#fff;border-radius:.5rem;padding:.8rem 1.25rem;font-weight:600;display:inline-block}.book-details__content .button:disabled{cursor:not-allowed;opacity:.6}.book-details__notice{color:var(--color-text);font-size:.875rem}.cart-link{align-items:center;gap:.45rem;display:inline-flex}.cart-count{background-color:var(--color-accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;min-width:1.4rem;height:1.4rem;padding:0 .3rem;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.cart-page{width:min(100% - 2rem,1000px);margin:0 auto;padding:3rem 0}.cart-page>h1{margin-bottom:.75rem}.cart-page>p{color:var(--color-text);margin-bottom:2rem}.cart-item{border:1px solid var(--color-border);background:var(--color-background);border-radius:12px;align-items:center;gap:1.25rem;padding:1.25rem;display:flex}.cart-item-cover{object-fit:cover;border-radius:6px;flex-shrink:0;width:90px;height:125px}.cart-item-details{flex:1;min-width:0}.cart-item-details h2{color:var(--color-heading);margin:0 0 .5rem;font-size:1.1rem}.cart-item-details p{color:var(--color-text);margin:.35rem 0}.remove-item-button{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:none;margin-top:.75rem;padding:0;text-decoration:underline;display:block}.cart-item-total{color:var(--color-heading);white-space:nowrap;align-self:flex-start;margin:0;font-weight:700}.cart-summary{border:1px solid var(--color-border);background:var(--color-background);border-radius:12px;width:min(100%,420px);margin-left:auto;padding:1.5rem}.cart-summary h2{color:var(--color-heading);margin-top:0;font-size:1.25rem}.cart-subtotal{border-top:1px solid var(--color-border);color:var(--color-heading);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.checkout-note{color:var(--color-text);font-size:.9rem}.cart-summary>.button{width:100%;margin-top:.5rem}.cart-summary>.button:disabled{opacity:.55;cursor:not-allowed}.continue-shopping-link{color:var(--color-accent);text-align:center;margin-top:1rem;text-decoration:none;display:block}.continue-shopping-link:hover{text-decoration:underline}@media (width<=600px){.cart-page{padding:2rem 0}.cart-item{align-items:flex-start;gap:.75rem;padding:.85rem}.cart-item-cover{width:68px;height:100px}.cart-item-total{font-size:.9rem}.cart-summary{padding:1rem}}@media (width<=640px){.book-details__layout{grid-template-columns:minmax((0, 1fr));gap:1.5rem}.book-details__cover{width:100%;max-width:300px}}.site-footer{border-top:1px solid var(--color-border);text-align:center;color:var(--color-text);padding:1.5rem}@media (width<=640px){.site-header{padding:1rem}.site-header nav{gap:1rem}#main-content{width:calc(100% - 2rem);padding-block:2.5rem}.home-page{padding-block:1.5rem}.empty-state{padding:1.25rem}}@media (prefers-reduced-motion:reduce){.site-header nav a,.primary-button{transition:none}}.auth-page{width:min(100%,480px);margin-inline:auto}.auth-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:.75rem;padding:2rem}.auth-card h1{color:var(--color-heading);margin-top:0}.auth-description{color:var(--color-text);margin-bottom:1.75rem}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.auth-form__field{flex-direction:column;gap:.5rem;display:flex}.auth-form__field label{color:var(--color-heading);font-weight:600}.auth-form__field input{border:1px solid var(--color-border);background:var(--color-background);width:100%;min-height:44px;color:var(--color-heading);font:inherit;border-radius:.5rem;padding:.7rem .8rem}.auth-form__field input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.auth-form__field small{color:var(--color-text);font-size:.85rem}.auth-submit{width:100%;font:inherit;cursor:pointer}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#b42318;margin:0;font-weight:600}.auth-footer{text-align:center;margin:1.5rem 0 0}.auth-footer a{color:var(--color-primary);font-weight:600}@media (width<=420px){.auth-card{padding:1.25rem}}.user-greeting{color:var(--color-heading);font-weight:600}.nav-button{border:1px solid var(--color-background);color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border-radius:.5rem;padding:.4rem .75rem}.nav-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.nav-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.profile-page{width:min(100%,560px);margin-inline:auto}.profile-avatar{border:1px solid var(--color-border);background:var(--color-background);width:112px;height:112px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.75rem;font-size:2.5rem;font-weight:700;display:flex;overflow:hidden}.profile-avatar img{object-fit:cover;width:100%;height:100%}.profile-avatar span{line-height:1}.profile-account-info{border:1px solid var(--color-border);background:var(--color-background);border-radius:.5rem;padding:.85rem 1rem}.profile-account-info p{color:var(--color-text);margin:0}.profile-success{color:#067647;margin:0;font-weight:600}.library-page{width:min(100%,1200px);margin-inline:auto;padding-block:1rem 3rem}.library-header{border:1px solid var(--color-border);background:var(--color-background);border-radius:1rem;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:2.5rem;padding:2rem;display:flex}.library-eyebrow{color:var(--color-primary);letter-spacing:.12em;margin:0 0 .5rem;font-size:.75rem;font-weight:700}.library-header h1{color:var(--color-heading);margin:0;font-size:clamp(2rem,4vw,2.75rem)}.library-description{color:var(--color-text);margin:.75rem 0 0}.library-count{background:var(--color-primary);color:#fff;border-radius:1rem;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:100px;height:100px;display:flex}.library-count span:first-child{font-size:2rem;font-weight:700}.library-count span:last-child{font-size:.875rem}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.library-card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:1rem;grid-template-columns:145px minmax(0,1fr);gap:1.25rem;padding:1.25rem;transition:transform .2s,box-shadow .2s;display:grid;overflow:hidden}.library-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000012}.library-card-cover{background:var(--color-background);border-radius:.65rem;min-height:210px;overflow:hidden}.library-card-cover img{object-fit:cover;width:100%;height:100%}.library-cover-placeholder{height:100%;min-height:210px;color:var(--color-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1rem;display:flex}.library-cover-placeholder span:first-child{font-size:2.5rem}.library-cover-placeholder span:last-child{font-size:.875rem;font-weight:600}.library-card-content{flex-direction:column;min-width:0;display:flex}.library-card-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.library-owned-badge{color:#067647;background:#ecfdf3;border-radius:999px;padding:.3rem .65rem;font-size:.7rem;font-weight:700}.library-purchased-date{color:var(--color-text);font-size:.75rem}.library-card-content h2{color:var(--color-heading);margin:0;font-size:1.15rem;line-height:1.4}.library-authors{color:var(--color-text);margin:.4rem 0 0;font-size:.875rem}.library-categories{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.library-categories span{border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:.25rem .55rem;font-size:.7rem}.library-progress{margin-top:auto;padding-top:1.25rem}.library-progress-heading{color:var(--color-text);justify-content:space-between;gap:.5rem;margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:flex}.library-progress-track{background:var(--color-border);border-radius:999px;height:8px;overflow:hidden}.library-progress-fill{border-radius:inherit;background:var(--color-primary);height:100%;transition:width .3s}.library-last-read{color:var(--color-text);margin:.5rem 0 0;font-size:.75rem}.library-reading-action{align-items:center;margin-top:1rem;display:flex}.library-read-button{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;width:100%;font:inherit;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;display:inline-flex}.library-read-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001f}.library-read-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.library-content-unavailable{border:1px dashed var(--color-border);width:100%;color:var(--color-text);text-align:center;border-radius:.5rem;padding:.75rem 1rem;font-size:.8rem;display:block}.library-card-footer{border-top:1px solid var(--color-border);color:var(--color-text);justify-content:space-between;gap:.75rem;margin-top:1rem;padding-top:.75rem;font-size:.75rem;display:flex}.library-empty,.library-loading,.library-error{border:1px solid var(--color-border);background:var(--color-surface);text-align:center;border-radius:1rem;padding:4rem 2rem}.library-empty-icon{margin-bottom:1rem;font-size:3rem}.library-empty h2,.library-error h2{color:var(--color-heading);margin:0}.library-empty p,.library-error p,.library-loading p{max-width:480px;color:var(--color-text);margin:.75rem auto 1.5rem;line-height:1.7}.library-browse-button,.library-error button{background:var(--color-primary);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:.5rem;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:inline-block}.library-browse-button:hover,.library-error button:hover{opacity:.85}.library-error button:focus-visible,.library-browse-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}@media (width<=900px){.library-grid{grid-template-columns:1fr}}@media (width<=600px){.library-header{align-items:flex-start;padding:1.25rem}.library-count{width:75px;height:75px}.library-count span:first-child{font-size:1.5rem}.library-count span:last-child{font-size:.75rem}.library-card{grid-template-columns:105px minmax(0,1fr);gap:.85rem;padding:.85rem}.library-card-cover,.library-cover-placeholder{min-height:165px}.library-card-content h2{font-size:1rem}.library-card-top{flex-direction:column;align-items:flex-start}}@media (width<=380px){.library-header{flex-direction:column}.library-card{grid-template-columns:1fr}.library-card-cover,.library-cover-placeholder{min-height:220px}}.reader-page{width:min(100%,1200px);min-height:75vh;margin-inline:auto;padding:1.5rem 1rem 3rem}.reader-header{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.85rem;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.5rem;padding:1.25rem 1.5rem;display:flex}.reader-header h1{color:var(--color-heading);margin:.5rem 0 0;font-size:1.5rem}.reader-back-link{color:var(--color-primary);font-size:.875rem;font-weight:600;text-decoration:none}.reader-back-link:hover{text-decoration:underline}.reader-controls{color:var(--color-heading);align-items:center;gap:.85rem;font-size:.875rem;font-weight:600;display:flex}.reader-controls button{border:1px solid var(--color-border);background:var(--color-background);width:36px;height:36px;color:var(--color-heading);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;font-size:1.25rem;transition:background .2s;display:flex}.reader-controls button:hover:not(:disabled){background:var(--color-border)}.reader-controls button:disabled{opacity:.4;cursor:not-allowed}.reader-controls button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.reader-document{border:1px solid var(--color-border);background:var(--color-background);border-radius:.85rem;justify-content:center;min-height:500px;padding:2rem 1rem;display:flex;overflow:auto}.reader-document .react-pdf__Document{max-width:100%}.reader-document .react-pdf__Page{background:#fff;max-width:100%;overflow:hidden;box-shadow:0 4px 20px #0000001a}.reader-document .react-pdf__Page canvas{max-width:100%;display:block;height:auto!important}.reader-document .react-pdf__Page__textContent{-webkit-user-select:text;user-select:text}.reader-pagination{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.75rem;justify-content:center;align-items:center;gap:1.5rem;margin-top:1.5rem;padding:1rem;display:flex}.reader-pagination span{color:var(--color-heading);font-size:.875rem;font-weight:600}.reader-pagination button{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font:inherit;cursor:pointer;border-radius:.5rem;padding:.65rem 1.25rem;font-size:.875rem;font-weight:600;transition:opacity .2s}.reader-pagination button:hover:not(:disabled){opacity:.85}.reader-pagination button:disabled{opacity:.4;cursor:not-allowed}.reader-pagination button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.reader-loading,.reader-error{border:1px solid var(--color-border);background:var(--color-surface);text-align:center;border-radius:.85rem;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:2rem;display:flex}.reader-loading p,.reader-error p{color:var(--color-text);line-height:1.7}.reader-error h2{color:var(--color-heading);margin:0}.reader-error a{color:var(--color-primary);margin-top:.75rem;font-weight:600;text-decoration:none}.reader-error a:hover{text-decoration:underline}@media (width<=600px){.reader-page{padding-inline:.5rem}.reader-header{flex-direction:column;align-items:flex-start;padding:1rem}.reader-header h1{font-size:1.25rem}.reader-document{min-height:350px;padding:1rem .5rem}.reader-pagination{gap:.75rem;padding:.85rem .5rem}.reader-pagination button{padding:.6rem .85rem}.reader-pagination span{font-size:.75rem}}
