: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;place-items:center;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}}.install-prompt{position:sticky;top:0;z-index:10;padding:.75rem 1rem;background:var(--accent, #646cff);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-radius:0 0 8px 8px;margin:-1rem -1rem 1rem}.install-prompt p{margin:0;font-size:.9rem}.install-prompt-actions{display:flex;gap:.5rem}.install-prompt .primary{background:#fff!important;color:var(--accent, #646cff)!important;border-color:#fff!important}.app{max-width:640px;margin:0 auto;padding:1rem;min-height:100vh}.app header{text-align:center;margin-bottom:1.5rem}.app header h1{font-size:1.75rem;margin:0 0 .25rem}.app header p{color:var(--muted, #888);margin:0;font-size:.95rem}.app header{position:relative}.sign-out-btn{position:absolute;top:0;right:0;font-size:.85rem;padding:.4rem .75rem}.sign-in{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.sign-in-card{max-width:360px;width:100%;padding:2rem;text-align:center;background:var(--bg-secondary, #1e1e1e);border-radius:16px;border:1px solid var(--border, #444);box-shadow:0 4px 24px #0003}.sign-in-card h1{margin:0 0 .5rem;font-size:1.75rem}.sign-in-subtitle{color:var(--muted, #888);margin:0 0 2rem;font-size:.95rem}.sign-in-google{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem 1.25rem;font-size:1rem;background:#fff!important;color:#333!important;border:1px solid #dadce0!important;border-radius:8px;cursor:pointer;transition:background .2s,box-shadow .2s}.sign-in-google:hover{background:#f8f9fa!important;box-shadow:0 2px 8px #0000001a}.sign-in-google svg{flex-shrink:0}.sign-in-error{margin:1rem 0 0;padding:.75rem;background:#f8717126;border-radius:8px;color:#f87171;font-size:.9rem}.image-capture .tabs{display:flex;gap:.25rem;margin-bottom:1rem}.image-capture .tabs button{flex:1;padding:.6rem 1rem;background:var(--bg-secondary, #2a2a2a);border-radius:8px;border:1px solid transparent;cursor:pointer;font-size:.95rem}.image-capture .tabs button.active{background:var(--accent, #646cff);color:#fff;border-color:var(--accent, #646cff)}.image-capture .tabs button:hover:not(.active){border-color:var(--accent, #646cff)}.upload-zone{display:flex;justify-content:center;padding:1.5rem;border:2px dashed var(--border, #444);border-radius:12px;background:var(--bg-secondary, #1e1e1e)}.file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.camera-zone{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;border-radius:12px;background:var(--bg-secondary, #1e1e1e)}.camera-preview{width:100%;max-width:100%;border-radius:8px;background:#000;aspect-ratio:4/3;object-fit:contain}.captured-pages{width:100%}.captured-pages-label{font-size:.9rem;color:var(--muted, #888);margin:0 0 .5rem}.captured-thumbnails{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem}.captured-thumb{flex-shrink:0;width:72px;height:96px;object-fit:cover;border-radius:6px;border:2px solid var(--border, #444)}.camera-actions{display:flex;flex-wrap:wrap;gap:.75rem}.hidden{position:absolute;width:0;height:0;overflow:hidden}.primary{background:var(--accent, #646cff)!important;color:#fff!important;border-color:var(--accent, #646cff)!important}.primary:hover:not(:disabled){filter:brightness(1.1)}.secondary{background:var(--bg-secondary, #2a2a2a)!important;border-color:var(--border, #444)!important}button:disabled{opacity:.6;cursor:not-allowed}.reset-btn{width:100%;margin-top:1rem}.preview-section{position:relative;margin-bottom:1.5rem;border-radius:12px;overflow:hidden;background:var(--bg-secondary, #1e1e1e)}.preview-image{width:100%;display:block;max-height:40vh;object-fit:contain}.ocr-progress{position:absolute;bottom:0;left:0;right:0;padding:1rem;background:#000000bf;color:#fff}.ocr-progress progress{width:100%;height:6px;margin-top:.5rem;border-radius:3px}.form-section{margin-bottom:1.5rem}.form-section h2{font-size:1.1rem;margin:0 0 .25rem}.form-section .hint{font-size:.85rem;color:var(--muted, #888);margin:0 0 .5rem}.extraction-form{display:flex;flex-direction:column;gap:1rem}.extraction-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.extraction-form input{padding:.6rem .75rem;border-radius:8px;border:1px solid var(--border, #444);background:var(--bg-secondary, #2a2a2a);color:inherit;font-size:1rem}.extraction-form input:focus{outline:2px solid var(--accent, #646cff);outline-offset:2px}.filename-preview{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;font-size:.85rem;color:var(--muted, #888);margin-top:.5rem}.filename-preview .filename-label{margin-right:.15rem}.filename-preview .filename-value{color:var(--text, inherit);font-family:monospace;font-size:.8rem}.save-actions{margin-bottom:.5rem}.drive-upload-section{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.drive-upload-section label{font-weight:500}.drive-upload-section select{padding:.4rem .6rem;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:inherit;min-width:8rem}.save-actions .hint{font-size:.85rem;color:#fff9;margin:0 0 .5rem}.save-buttons{display:flex;gap:.75rem}.save-buttons button{flex:1}.error{color:#f87171}.error-retry{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem;background:#f871711a;border-radius:8px;margin-top:.5rem}.error-retry .error{flex:1;margin:0}.retry-btn{flex-shrink:0;padding:.5rem 1rem;font-size:.95rem}.success{color:#4ade80;font-size:.9rem;margin:.5rem 0 0}@media(prefers-color-scheme:light){.sign-in-card{background:#f0f0f0;border-color:#ccc}.sign-in-google{background:#fff!important;color:#333!important;border-color:#dadce0!important}.sign-in-google:hover{background:#f8f9fa!important}.image-capture .tabs button{background:#e5e5e5}.image-capture .tabs button.active{background:#535bf2;color:#fff}.upload-zone,.camera-zone,.preview-section{background:#f0f0f0}.extraction-form input{background:#fff;border-color:#ccc}.secondary{background:#e5e5e5!important;border-color:#ccc!important}}
