:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1280px;margin:0 auto;padding:1rem;text-align:center;width:100%;box-sizing:border-box}@media (min-width: 768px){#root{padding:2rem}}.logo{height:4em;padding:1em;will-change:filter;transition:filter .3s}.two-columns{display:flex;flex-direction:row;align-items:center;gap:.2rem;border:1px solid #ccc}.column{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.menubar{padding:1em;border-bottom:1px solid #ccc}.small{font-size:.6em;margin-top:-30px;padding:.5em}@media (min-width: 768px){.logo{height:6em;padding:1.5em}}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:1.5em}@media (min-width: 768px){.card{padding:2em}}.read-the-docs{color:#888}@keyframes blindOpen{0%{max-height:0;opacity:0;transform:scaleY(0);transform-origin:top}to{max-height:1000px;opacity:1;transform:scaleY(1);transform-origin:top}}@keyframes blindClose{0%{max-height:1000px;opacity:1;transform:scaleY(1);transform-origin:top}to{max-height:0;opacity:0;transform:scaleY(0);transform-origin:top}}.component-enter{animation:blindOpen .4s ease-out forwards;overflow:hidden}.component-exit{animation:blindClose .3s ease-in forwards;overflow:hidden}.animated-component{transition:all .3s ease-in-out;overflow:hidden}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.fade-enter{animation:fadeInUp .3s ease-out forwards}.fade-exit{animation:fadeOutDown .3s ease-in forwards}.scanner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;min-height:80vh;width:100%;max-width:500px;margin:0 auto;box-sizing:border-box;transform-origin:top}.scanner-container video,.scanner-container canvas{width:100%;max-width:400px;height:auto;border-radius:12px;border:2px solid #e0e0e0;box-shadow:0 4px 12px #0000001a;background-color:#f5f5f5}@media (max-width: 480px){.scanner-container{padding:.5rem;min-height:70vh}.scanner-container video,.scanner-container canvas{max-width:100%;border-radius:8px;border-width:1px}}.scanner-container .small{margin-top:1rem;padding:.75rem 1rem;font-size:.9rem;font-family:Courier New,monospace;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#495057;word-break:break-all;max-width:100%;text-align:center;box-sizing:border-box}.scanner-container .small:not(:contains("Not Found")){background-color:#d4edda;border-color:#c3e6cb;color:#155724}.scanner-container:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:100px;background:linear-gradient(transparent,#ff0000,transparent);animation:scan-line 2s linear infinite;pointer-events:none;z-index:10}@keyframes scan-line{0%{transform:translate(-50%,-50%) translateY(-50px);opacity:0}50%{opacity:1}to{transform:translate(-50%,-50%) translateY(50px);opacity:0}}@media (min-width: 481px) and (max-width: 768px){.scanner-container{padding:1.5rem}.scanner-container video,.scanner-container canvas{max-width:350px;border-radius:10px}}@media (min-width: 769px){.scanner-container{padding:2rem;min-height:70vh}.scanner-container video,.scanner-container canvas{max-width:400px;border-radius:12px}.scanner-container .small{font-size:1rem;padding:1rem 1.25rem}}.scanner-container video:focus,.scanner-container canvas:focus{outline:2px solid #646cff;outline-offset:2px}.scanner-error{background-color:#f8d7da;border-color:#f5c6cb;color:#721c24;padding:1rem;border-radius:6px;text-align:center;margin:1rem 0}.scanner-info{width:100%;max-width:400px;margin-top:0}.scanner-instructions{font-size:.8rem;color:#6c757d;text-align:center;margin:.5rem 0;padding:.5rem;background-color:#f8f9fa;border-radius:4px}.video-container{position:relative;width:100%;max-width:400px;margin:0 auto}.scanning-overlay{position:absolute;inset:0;pointer-events:none;border-radius:12px;overflow:hidden}.scan-line{position:absolute;width:100%;height:2px;background:linear-gradient(90deg,transparent,#ff0000,transparent);animation:scan-line-move 2s linear infinite}@keyframes scan-line-move{0%{top:0;opacity:0}50%{opacity:1}to{top:100%;opacity:0}}.scanner-controls{display:flex;gap:1rem;margin:1rem 0;justify-content:center;flex-wrap:wrap}.control-button{padding:.5rem 1rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.control-button:hover:not(:disabled){background-color:#0056b3}.control-button:disabled{background-color:#6c757d;cursor:not-allowed}.retry-button{margin-left:1rem;padding:.25rem .5rem;background-color:#28a745;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:.8rem}.retry-button:hover{background-color:#1e7e34}@media (max-width: 480px){.scanner-controls{flex-direction:column;align-items:center}.control-button{width:200px;margin:.25rem 0}.scanning-overlay{border-radius:8px}}.manual-input{background-color:#1a1a1a;color:#fff;padding:2rem;border-radius:8px;max-width:400px;margin:0 auto;box-shadow:0 4px 20px #0000004d;min-height:200px;display:flex;flex-direction:column;justify-content:center;transform-origin:top}.manual-input h2{font-size:1.5rem;font-weight:300;margin:0 0 2rem;text-align:center;color:#f0f0f0;letter-spacing:.5px}.manual-input form{display:flex;flex-direction:column;gap:2rem}.manual-input input[type=text]{background-color:transparent;border:none;border-bottom:1px solid #ccc;padding:.75rem 0;font-size:1.1rem;color:#fff;outline:none;transition:border-bottom-color .3s ease;font-family:inherit}.manual-input input[type=text]::placeholder{color:#888;font-style:italic}.manual-input input[type=text]:focus{border-bottom-color:#fff}.manual-input input[type=text]:not(:placeholder-shown){border-bottom-color:#ccc}.manual-input button[type=submit]{background-color:transparent;border:1px solid #ccc;color:#fff;padding:.75rem 2rem;font-size:1rem;cursor:pointer;border-radius:2px;transition:all .3s ease;font-weight:300;letter-spacing:.5px;margin-top:1rem;align-self:center;min-width:120px}.manual-input button[type=submit]:hover{background-color:#333;border-color:#fff}.manual-input button[type=submit]:active{background-color:#555;transform:translateY(1px)}.manual-input button[type=submit]:disabled{opacity:.5;cursor:not-allowed;background-color:transparent;border-color:#666}@media (max-width: 480px){.manual-input{padding:1.5rem;margin:1rem;max-width:none;border-radius:6px}.manual-input h2{font-size:1.3rem;margin-bottom:1.5rem}.manual-input input[type=text]{font-size:1rem;padding:.6rem 0}.manual-input button[type=submit]{padding:.6rem 1.5rem;font-size:.9rem;width:100%;align-self:stretch}}@media (min-width: 481px) and (max-width: 768px){.manual-input{padding:1.75rem;max-width:350px}}.manual-input input[type=text]:focus,.manual-input button[type=submit]:focus{outline:2px solid #666;outline-offset:2px}.manual-input{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.book-display{background-color:#1a1a1a;color:#fff;border-radius:8px;padding:2rem;margin:2rem auto;max-width:600px;box-shadow:0 4px 20px #0000004d;transform-origin:top}.book-display.error{background-color:#2d1b1b;border:1px solid #8b4545}.error-content{text-align:center;padding:1rem}.error-content h3{color:#ff6b6b;margin-bottom:1rem}.error-message{color:#fcc;margin:1rem 0;font-style:italic}.book-header{display:flex;gap:2rem;margin-bottom:2rem;align-items:flex-start}.book-cover{flex-shrink:0;width:120px;height:180px;position:relative}.book-cover img{width:100%;height:100%;object-fit:cover;border-radius:4px;box-shadow:0 4px 8px #0000004d}.no-cover{width:100%;height:100%;background-color:#333;border:2px dashed #666;border-radius:4px;display:flex;align-items:center;justify-content:center;text-align:center;color:#999;font-size:.8rem;font-style:italic}.book-info{flex:1;min-width:0}.book-title{font-size:1.8rem;font-weight:600;margin:0 0 .5rem;color:#fff;line-height:1.2}.book-subtitle{font-size:1.2rem;font-weight:300;margin:0 0 1rem;color:#ccc;font-style:italic}.book-author{font-size:1.1rem;color:#acf;margin:0 0 .5rem;font-weight:500}.book-publisher,.book-date{color:#999;margin:0 0 .25rem;font-size:.9rem}.book-details{border-top:1px solid #333;padding-top:1.5rem}.detail-section{margin-bottom:1.5rem}.detail-section h4{color:#fff;font-size:1.1rem;margin:0 0 1rem;font-weight:500;border-bottom:1px solid #333;padding-bottom:.5rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:.2rem 0;border:1px solid #333;font-size:smaller}.detail-label{color:#999;font-weight:500;min-width:80px;text-align:left}.detail-value{color:#fff;text-align:right;word-break:break-word}.subjects{display:flex;flex-wrap:wrap;gap:.5rem}.subject-tag{background-color:#333;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;border:1px solid #555}.identifiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem}.identifier-item{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.9rem}.identifier-label{color:#999;font-weight:500}.identifier-value{color:#ccc;font-family:monospace}.book-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #333;flex-wrap:wrap}.action-button{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block;text-align:center;min-width:140px}.action-button.primary{background-color:#06c;color:#fff}.action-button.primary:hover{background-color:#0052a3}.action-button.secondary,.clear-button{background-color:transparent;color:#fff;border:1px solid #666}.action-button.secondary:hover,.clear-button:hover{background-color:#333;border-color:#888}@media (max-width: 768px){.book-display{margin:1rem;padding:1.5rem}.book-header{flex-direction:column;align-items:center;text-align:center;gap:1rem}.book-cover{width:100px;height:150px}.book-title{font-size:1.4rem}.detail-grid{grid-template-columns:1fr}.detail-item{flex-direction:column;align-items:flex-start;gap:.25rem}.detail-value{text-align:left}.book-actions{flex-direction:column;align-items:center}.action-button{width:100%;max-width:200px}}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;box-sizing:border-box}.modal-content{background-color:#fff;border-radius:12px;padding:2rem;position:relative;max-width:400px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 30px #0000004d;animation:modalSlideIn .3s ease-out}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;color:#666;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;line-height:1}.modal-close:hover{background-color:#f0f0f0;color:#333}.modal-close:focus{outline:2px solid #007bff;outline-offset:2px}.modal-body{text-align:center;color:#333;padding-top:1rem}.modal-logo{width:120px;height:120px;margin:0 auto 1.5rem;display:block;border-radius:8px;box-shadow:0 4px 12px #0000001a}.modal-title{font-size:2rem;font-weight:600;margin:0 0 .5rem;color:#1a1a1a;letter-spacing:-.5px}.modal-subtitle{font-size:1.2rem;font-weight:400;margin:0 0 .25rem;color:#555}.modal-year{font-size:1rem;font-weight:300;margin:0 0 1.5rem;color:#777}.modal-email{margin:0;font-size:1rem}.modal-email a{color:#007bff;text-decoration:none;font-weight:500;transition:color .2s ease}.modal-email a:hover{color:#0056b3;text-decoration:underline}.modal-email a:focus{outline:2px solid #007bff;outline-offset:2px;border-radius:2px}@media (max-width: 480px){.modal-overlay{padding:.5rem}.modal-content{padding:1.5rem;border-radius:8px}.modal-close{top:.75rem;right:.75rem;font-size:1.75rem;width:35px;height:35px}.modal-logo{width:100px;height:100px;margin-bottom:1rem}.modal-title{font-size:1.6rem}.modal-subtitle{font-size:1.1rem}.modal-email{font-size:.9rem}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}body.modal-open{overflow:hidden}
