:root{color-scheme:dark;--bg:#17241f;--panel:#1d3026;--ink:#f1efdf;--muted:#b8c6ad;--green:#c7df99;--line:#435640}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}a{color:var(--green);text-decoration:none}header{padding:25px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.back{font-size:13px}.version,.eyebrow{font-size:9px;letter-spacing:1.8px;color:var(--muted)}main{max-width:1160px;margin:auto;padding:55px 30px}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.2}h1{font-size:52px;letter-spacing:-1.5px;margin:16px 0}h1 em{color:var(--green);font-style:normal}.lead{color:var(--muted);margin-bottom:35px}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:30px;align-items:start}.reader,.queue{border:1px solid var(--line);border-radius:20px;padding:28px;background:var(--panel)}h2{font-size:27px;margin:0 0 20px}.camera{aspect-ratio:1.5;background:#0a1710;border:1px solid #344c35;border-radius:14px;position:relative;overflow:hidden;display:grid;place-items:center}video{position:absolute;width:100%;height:100%;object-fit:cover}.placeholder{position:relative;text-align:center;color:#a6bf8a;font-size:13px}.placeholder p{margin-bottom:0}.scan-frame{position:absolute;left:10%;right:10%;top:25%;bottom:25%;border:2px solid #d3e6b1;border-radius:8px;box-shadow:0 0 0 90px #0003;pointer-events:none}.status{font-size:13px;min-height:42px;color:#d7e4c2}.actions{display:flex;gap:10px;flex-wrap:wrap}button{border-radius:25px;padding:12px 18px;border:1px solid var(--line);font-size:12px}button.primary{background:var(--green);color:#16271c;border-color:var(--green)}button.secondary{background:transparent;color:var(--ink)}button:hover:not(:disabled){filter:brightness(1.15)}.hint{font-size:11px;color:var(--muted);line-height:1.7}.separator{border-top:1px solid var(--line);margin:30px 0 24px;text-align:center;height:1px}.separator span{position:relative;top:-12px;padding:0 14px;background:var(--panel);color:var(--muted);font-size:9px;letter-spacing:1.5px}label{display:block;font-size:13px;margin-bottom:10px}label span{font-size:11px;color:var(--muted)}input[type=text]{min-width:0;width:100%;padding:13px 15px;border-radius:10px;border:1px solid #718462;background:#132219;color:var(--ink);font-size:16px}input::placeholder{color:#899c7e}.isbn-entry{display:flex;gap:10px}.isbn-entry input{flex:1}.isbn-entry button{white-space:nowrap}.error{color:#ffc7ab;font-size:12px;min-height:18px}.result{margin-top:25px;border-top:1px solid var(--line);padding-top:25px}.result-isbn{font:24px monospace;letter-spacing:2px;color:var(--green)}#book-note{margin-bottom:12px}.queue>p{font-size:13px;color:var(--muted)}.local-note{background:#13251b;padding:14px;border-radius:9px}.queue h2 span{font:13px Arial,sans-serif;color:var(--green);margin-left:10px}.queue-row{padding:18px 0;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;justify-content:space-between}.queue-row strong{font:14px monospace;color:var(--green);display:block}.queue-row p{margin:6px 0 0;font-size:12px;overflow-wrap:anywhere}.queue-row small{font-size:10px;color:var(--muted)}.queue-row button{padding:7px 10px;font-size:11px;background:none;color:#e7d4b9}.queue #export{margin-top:20px}.privacy{margin-top:40px;padding:28px 0;border-top:1px solid var(--line);max-width:720px}.privacy h2{font-size:23px}.privacy p{font-size:12px;color:var(--muted)}footer{padding:30px 5%;border-top:1px solid var(--line);font-size:9px;letter-spacing:1.4px;display:flex;justify-content:space-between;gap:20px;color:var(--muted)}:focus-visible{outline:2px solid #d6e6b6;outline-offset:4px}@media(max-width:760px){.workspace{grid-template-columns:1fr}main{padding:30px 18px}h1{font-size:39px}.reader,.queue{padding:22px 18px;border-radius:16px}header{padding:20px 18px}.version{display:none}.camera{aspect-ratio:1.25}.actions button{flex:1}.isbn-entry{gap:7px}.isbn-entry button{padding:10px 13px}footer{flex-direction:column;gap:10px}.result-isbn{font-size:23px}h2{font-size:25px}}
