@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap";:root{--color-deep-walnut:#3b2a1f;--color-aged-oak:#6a4a2f;--color-muted-chestnut:#8a5e3c;--color-dusty-leather:#a1744f;--color-warm-beige:#d6c2a8;--color-soft-parchment:#e8dcc7;--color-antique-gold:#c9a46a;--color-antique-hover:#f7c982;--color-burnished-brass:#b38740;--color-charcoal-brown:#1f1a17;--bg-primary:var(--color-soft-parchment);--bg-secondary:var(--color-warm-beige);--surface-primary:var(--color-aged-oak);--surface-secondary:var(--color-muted-chestnut);--surface-deep:var(--color-deep-walnut);--text-primary:var(--color-charcoal-brown);--text-secondary:var(--color-aged-oak);--text-on-dark:var(--color-soft-parchment);--action-primary:var(--color-antique-gold);--action-hover:var(--color-burnished-brass);--action-secondary-border:var(--color-aged-oak);--border-subtle:#3b2a1f33;--border-strong:var(--color-deep-walnut);--focus-ring:var(--color-antique-gold);--font-heading:"Lora", serif;--font-body:"Inter", system-ui, sans-serif;--space-0:0;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-8:64px;--space-negative-11:-88px;--layout-max-width:1200px;--layout-sidebar-width:280px;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--shadow-sm:0 1px 2px #3b2a1f1a;--shadow-sm-collection:0 1px 2px #3b2a1f1a, 0 2px 4px #3b2a1f;--shadow-md:0 4px 12px #3b2a1f14, 0 2px 4px #3b2a1f0a;--shadow-lg:0 5px 4px #3b2a1f;--transition-subtle:.2s ease-in-out}*{box-sizing:border-box}html,body{background-color:var(--bg-primary);min-height:100vh;color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;line-height:1.6}@media (width>=769px){html,body{background-image:url(/man-with-hat.png);background-position:top;background-repeat:no-repeat;background-size:cover;background-attachment:fixed}}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);margin-top:0;margin-bottom:var(--space-3);font-weight:500;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}p,ul,ol{margin-top:0;margin-bottom:var(--space-4)}a{color:var(--text-secondary);transition:color var(--transition-subtle);text-decoration:none}a:hover{color:var(--action-hover)}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-header{background-color:var(--surface-deep);color:var(--text-on-dark);padding:var(--space-3) var(--space-5);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;display:flex}.app-header__brand{font-family:var(--font-heading);color:var(--text-on-dark);letter-spacing:.02em;font-size:1.5rem;font-weight:600}.app-nav{gap:var(--space-4);display:flex}.app-nav .nav-link{color:var(--color-warm-beige);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background-color var(--transition-subtle), color var(--transition-subtle);font-weight:500}.app-nav .nav-link:hover{color:var(--text-on-dark);background-color:#ffffff0d}.app-nav .nav-link.active{color:var(--action-primary)}.app-content{width:100%;max-width:var(--layout-max-width);padding:var(--space-6) var(--space-5);flex:1;margin:0 auto}:focus{outline:none}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}button,input,select,textarea{font-family:inherit;font-size:100%}::placeholder{color:var(--color-warm-beige);opacity:.6;font-family:var(--font-body)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-muted-chestnut);border-radius:var(--radius-sm);border:2px solid var(--bg-primary)}::-webkit-scrollbar-thumb:hover{background:var(--color-dusty-leather)}img{max-width:100%;height:auto}@media (width<=768px){.app-header{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-direction:column}.app-content{padding:var(--space-4) var(--space-4)}h1{font-size:2rem}h2{font-size:1.5rem}}.input-base{background-color:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-family:var(--font-body);color:var(--text-primary);transition:border-color var(--transition-subtle), box-shadow var(--transition-subtle);width:100%;font-size:1rem}.input-base::placeholder{color:var(--color-muted-chestnut);opacity:.8}.input-base:focus{border-color:var(--focus-ring);outline:none;box-shadow:0 0 0 2px #c9a46a33}select.input-base{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B2A1F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--space-2) center;padding-right:var(--space-5);cursor:pointer;background-size:1em}.btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;transition:background-color var(--transition-subtle), color var(--transition-subtle), border-color var(--transition-subtle), transform .1s ease;border:none;justify-content:center;align-items:center;font-size:.95rem;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--action-primary);color:var(--color-deep-walnut);box-shadow:var(--shadow-sm);border:1px solid var(--color-burnished-brass)}.btn-primary:not(:disabled):hover{background-color:var(--action-hover);border-color:var(--color-deep-walnut);color:var(--color-deep-walnut)}.btn-secondary{color:var(--text-secondary);border:1px solid var(--action-secondary-border);background-color:#0000}.btn-light{color:var(--color-warm-beige);border:1px solid var(--color-warm-beige)}.btn-secondary:not(:disabled):hover{color:var(--text-primary);background-color:#6a4a2f1a}.btn-light:not(:disabled):hover{color:var(--color-soft-parchment);border-color:var(--color-soft-parchment)}.btn-delete{color:#ffb4b4;background:#d32f2f1c;border:1px solid #af4d4d}.btn-delete:hover{background:#d32f2f38;border-color:#d32f2fb3}.btn-delete:active{transform:translateY(1px)}.filter-bar{gap:var(--space-4);background:var(--bg-secondary);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);margin-bottom:var(--space-5);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.filter-bar__search{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.filter-bar__search .input-base{flex:1;min-width:260px}.filter-bar__options{gap:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.filter-group{gap:var(--space-1);flex-direction:column;display:flex}.filter-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:500}.filter-group__range{align-items:center;gap:var(--space-2);display:flex}.filter-group__range .input-base{width:100px}.filter-group__range span{color:var(--text-secondary);font-size:.875rem}.results-meta{color:var(--text-secondary);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:2px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;font-size:.9rem;display:flex}.results-meta__info{gap:var(--space-1);flex-direction:column;display:flex}.results-meta--bottom{border-bottom:none;border-top:2px solid var(--border-subtle);margin-bottom:0;margin-top:var(--space-6);padding-top:var(--space-4);padding-bottom:0}.results-meta strong{color:var(--text-primary);font-weight:500}.results-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:0;padding:0;list-style:none;display:grid}.book-card{background-color:var(--surface-primary);color:var(--text-on-dark);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);height:100%;transition:transform var(--transition-subtle), box-shadow var(--transition-subtle);border:1px solid #0000;flex-direction:column;display:flex}.book-card:hover{box-shadow:var(--shadow-md);background-color:var(--surface-secondary);border-color:#ffffff1a;transform:translateY(-2px)}.book-card__main{gap:var(--space-4);margin-bottom:var(--space-3);flex:1;display:flex}.book-card__thumbnail{background-color:var(--surface-secondary);border-radius:var(--radius-sm);width:80px;height:120px;box-shadow:var(--shadow-sm);border:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.book-card__thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-subtle)}.book-card:hover .book-card__thumbnail img{transform:scale(1.05)}.book-card__thumbnail-placeholder{opacity:.3;font-size:2rem}.book-card__info{flex-direction:column;flex:1;display:flex}.book-card__title{font-family:var(--font-heading);color:var(--color-warm-beige);margin-bottom:var(--space-1);font-size:1.25rem;font-weight:600;line-height:1.3}.book-card__author{color:var(--color-soft-parchment);opacity:.9;margin-bottom:var(--space-1);font-size:.95rem}.book-card:hover .book-card__title,.book-card:hover .book-card__author{color:var(--color-soft-parchment);opacity:1}.book-card__meta{padding-top:var(--space-3);color:var(--color-antique-gold);border-top:1px solid #ffffff1a;margin-top:auto;font-size:.85rem}.book-card:hover .book-card__meta{color:var(--color-antique-hover)}.pagination-controls{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);display:flex}.pagination-controls--top{margin-top:0;margin-bottom:var(--space-6);padding-top:0;padding-bottom:var(--space-4);border-top:none;border-bottom:1px solid var(--border-subtle)}.results-meta .pagination-controls{border:none;margin:0;padding:0}.pagination-controls span{color:var(--text-secondary);font-weight:500}.scroll-to-top{bottom:var(--space-6);margin-left:auto;margin-right:var(--space-negative-11);background-color:var(--action-primary);color:var(--color-deep-walnut);border:1px solid var(--color-burnished-brass);cursor:pointer;width:48px;height:48px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .3s ease, transform .3s ease, visibility .3s ease, background-color var(--transition-subtle);z-index:999;border-radius:50%;justify-content:center;align-items:center;display:flex;position:sticky;transform:translateY(10px)}@media (width<=1366px){.scroll-to-top{margin-right:var(--space-6)}}.scroll-to-top:hover{background-color:var(--action-hover);color:var(--color-deep-walnut);transform:translateY(-2px)}.scroll-to-top:active{transform:translateY(0)}.scroll-to-top--visible{opacity:1;visibility:visible;transform:translateY(0)}.state-message{padding:var(--space-6) var(--space-5);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);text-align:center;color:var(--text-secondary);font-family:var(--font-heading);margin-bottom:var(--space-4);justify-content:center;align-items:center;gap:var(--space-3);background:#3b2a1f08;flex-direction:column;font-size:1.1rem;font-style:italic;display:flex}.state-message--error{color:#d32f2f;background:#d32f2f0d;border-color:#d32f2f4d;font-style:normal}.state-message--loading:before{content:"";border:2px solid #3b2a1f33;border-top-color:var(--color-antique-gold);border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.book-details{background:var(--surface-primary);color:var(--text-on-dark);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);margin-top:var(--space-4)}.book-details__body{gap:var(--space-8);margin-top:var(--space-6);display:flex}.book-details__cover{background-color:var(--surface-secondary);border-radius:var(--radius-md);width:240px;box-shadow:var(--shadow-lg);border:1px solid #ffffff1a;flex-shrink:0;height:fit-content;overflow:hidden}.book-details__cover img{width:100%;height:auto;display:block}.book-details__main{flex:1}.book-details__header{padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid #ffffff1a}.book-details__title{color:var(--color-warm-beige);margin-bottom:var(--space-2)}.book-details__author{color:var(--color-soft-parchment);opacity:.9;margin-bottom:var(--space-2);font-size:1.25rem;font-style:italic}.book-details__meta{color:var(--color-antique-gold);font-size:.95rem}.book-details__section-title{color:var(--color-warm-beige);font-family:var(--font-heading);margin-top:var(--space-5);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid #ffffff1a;font-size:1.5rem}.book-details__description{white-space:pre-wrap;color:var(--text-on-dark);font-size:1.05rem;line-height:1.7}.subject-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.subject-tag{color:var(--text-on-dark);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);transition:background-color var(--transition-subtle);background-color:#ffffff1a;border:1px solid #ffffff0d;font-size:.85rem}.subject-tag:hover{background-color:#ffffff26}.subject-tag--more{color:var(--color-antique-gold);background-color:#0000;border-color:#0000}.collections-header{margin-bottom:var(--space-5);border-bottom:2px solid var(--border-subtle);padding-bottom:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.collections-header h1{margin:0}.collections-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin:0;padding:0;list-style:none;display:grid}.collection-card-shell{--depth:10px;--radius:6px;z-index:1;transition:transform var(--transition-subtle);position:relative}.collection-card{background:var(--surface-primary);border-radius:var(--radius);padding:var(--space-5);box-shadow:var(--shadow-sm);height:100%;transition:box-shadow var(--transition-subtle);flex-direction:column;display:flex}.collection-card-shell:before{content:"";top:calc(1px - var(--depth));left:calc(1px - var(--depth));height:calc(1.4 * var(--depth));clip-path:polygon(calc(1.4 * var(--depth)) 100%, 100% var(--depth), calc(100% - var(--depth)) 0, 0 0);z-index:-1;background:#b89b84;border-radius:10px 25px 0 0;position:absolute;right:2px}.collection-card-shell:after{content:"";top:calc(1px - var(--depth));left:calc(1px - var(--depth));width:calc(1.4 * var(--depth));clip-path:polygon(0 0, 100% calc(1.4 * var(--depth)), var(--depth) 100%, 0 calc(100% - var(--depth)));z-index:-2;background:#7a5a45;border-radius:10px 0 0 25px;position:absolute;bottom:3px}.collection-card__title{color:var(--color-warm-beige);font-family:var(--font-heading);margin-bottom:var(--space-2);font-size:1.35rem;font-weight:600;line-height:1.2}.collection-card__meta{color:var(--color-soft-parchment);opacity:.8;margin-bottom:var(--space-4);font-size:.9rem}.collection-card__actions{padding-top:var(--space-3);justify-content:flex-end;gap:var(--space-2);border-top:1px solid #ffffff1a;margin-top:auto;display:flex}.modal-overlay{z-index:1000;width:100vw;height:100vh;padding:var(--space-4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#1f1a17b3;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.modal-dialog{background-color:var(--surface-primary);color:var(--text-on-dark);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:480px;box-shadow:var(--shadow-lg);border:1px solid #ffffff1a}.modal-dialog h2{color:var(--color-warm-beige);margin-top:0;margin-bottom:var(--space-4);font-family:var(--font-heading)}.modal-dialog p{color:var(--color-soft-parchment);opacity:.9;margin-bottom:var(--space-4)}.modal-form-group{gap:var(--space-2);margin-bottom:var(--space-5);flex-direction:column;display:flex}.modal-form-group label{color:var(--color-warm-beige);font-size:.9rem;font-weight:500}.modal-dialog .input-base{background-color:var(--surface-secondary);color:var(--text-on-dark);border-color:#ffffff1a}.modal-dialog .input-base:focus{border-color:var(--focus-ring);box-shadow:0 0 0 2px #c9a46a33}.modal-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid #ffffff1a;display:flex}.assignment-panel{background-color:var(--surface-deep);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);border:1px solid #ffffff0d;box-shadow:inset 0 2px 4px #0003}.assignment-panel h3{color:var(--color-warm-beige);font-family:var(--font-body);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.05em;font-size:1rem}.collection-toggles{gap:var(--space-3);flex-wrap:wrap;display:flex}.toggle-btn{background-color:var(--surface-secondary);color:var(--text-on-dark);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-subtle);align-items:center;gap:var(--space-2);border:1px solid #ffffff1a;font-size:.9rem;display:flex}.toggle-btn:hover{background-color:#ffffff1a}.toggle-btn--active{background-color:var(--color-antique-gold);color:var(--color-deep-walnut);border-color:var(--color-burnished-brass);font-weight:500}.toggle-btn--active:hover{background-color:var(--color-burnished-brass)}@media (width<=768px){.app-content{padding:var(--space-4) var(--space-3)}.app-header{gap:var(--space-3);padding:var(--space-4) var(--space-3);text-align:center;flex-direction:column}.filter-bar{padding:var(--space-3);flex-direction:column;align-items:stretch}.search-group,.search-input{width:100%;min-width:unset}.results-grid,.collections-grid{gap:var(--space-4);grid-template-columns:1fr}.book-card,.collection-card,.book-details{padding:var(--space-4)}h1{font-size:2rem}h2{font-size:1.5rem}.book-details__body{flex-direction:column}.book-details__cover{width:100%;max-width:680px}.modal-overlay{padding:var(--space-2)}.modal-dialog{padding:var(--space-4)}}.app-header{z-index:20;background:#241c16f5;border-bottom:1px solid #a3855745;flex-flow:row;align-items:center;gap:24px;padding:14px 32px;position:relative}.app-header__brand{color:#e8dcc7;white-space:nowrap;font-size:25px}.header-search{flex:1;align-items:center;gap:9px;max-width:620px;margin-left:auto;display:flex}.header-search__primary{flex:1;min-width:0;display:flex}.header-search__primary .input-base{color:#e8dcc7;background:#15120f;border-color:#a3855755;border-radius:4px 0 0 4px;min-width:0;font-size:13px}.header-search__primary .input-base::placeholder{color:#bca98b}.header-search__primary .btn{border-radius:0 4px 4px 0;padding:8px 12px}.header-overflow{position:relative}.header-overflow summary{color:#dfc99f;letter-spacing:2px;cursor:pointer;padding:8px;list-style:none}.header-overflow summary::-webkit-details-marker{display:none}.header-overflow__panel{color:#302419;background:#e8dcc7;border:1px solid #a38557;border-radius:5px;width:min(480px,100vw - 24px);padding:20px;position:absolute;top:calc(100% + 15px);right:0;box-shadow:0 12px 35px #0005}.header-overflow__panel>.btn{margin:0 8px 16px 0;font-size:12px}.header-overflow__panel .filter-bar__options{gap:14px}.header-overflow__panel .filter-group{flex:1}.header-overflow__panel .filter-group label{font-size:10px}.overflow-nav{display:none}.app-header .app-nav{flex-shrink:0;gap:24px;margin:0}.app-header .nav-link{color:#dac9ad;font-size:13px}@media (width<=700px){.app-header{text-align:left;gap:12px;padding:10px 12px}.app-header__brand{font-size:18px}.header-search{gap:2px}.header-search__primary .input-base{padding:9px;font-size:12px}.header-search__primary .btn{padding:8px}.app-header .app-nav{display:none}.overflow-nav{border-bottom:1px solid #a3855755;gap:24px;margin-bottom:18px;padding-bottom:15px;display:flex}.header-overflow__panel{right:-2px}}
