:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f1f5f9;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}input,select,textarea,button{font-family:inherit;font-size:1rem}input,select,textarea{background:#fff;border:1px solid #cbd5f5;border-radius:10px;padding:.6rem .75rem}textarea{resize:vertical;width:100%}a{color:#1d4ed8}button{color:#fff;cursor:pointer;background:#1d4ed8;border:none;border-radius:10px;padding:.65rem 1.2rem;font-weight:600;transition:background .2s}button:disabled{cursor:not-allowed;background:#94a3b8}button:not(:disabled):hover{background:#1e40af}.app{flex-direction:column;gap:2rem;max-width:960px;margin:0 auto;padding:2.5rem 1.5rem 3rem;display:flex}.app__header{flex-direction:column;gap:1rem;display:flex}.app__header h1{margin:0 0 .5rem}.app__session{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.app__session-label{color:#475569;font-size:.95rem}.app__main{gap:1.5rem;display:grid}.tabs{background:#dbeafe;border-radius:12px;flex-wrap:wrap;gap:.5rem;padding:.35rem;display:flex}.tabs__button{color:#1e3a8a;background:0 0;flex:1;min-width:8rem}.tabs__button:not(:disabled):hover{background:#bfdbfe}.tabs__button--active,.tabs__button--active:not(:disabled):hover{color:#fff;background:#1d4ed8}.tab-panel{gap:1.5rem;display:grid}.card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 10px 24px #0f172a14}.form{gap:1rem;display:grid}.form--inline{grid-template-columns:1fr auto;align-items:end}.form__field{gap:.4rem;font-size:.95rem;display:grid}.form__error{color:#b91c1c;margin-top:.75rem}.form__notice{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;margin:0 0 1rem;padding:.6rem .75rem}.form__success{color:#15803d;margin-top:.75rem}.scanner{gap:1rem;display:grid}.scanner__video{background:#0f172a;border-radius:12px;width:100%;max-height:320px}.scanner__controls{flex-wrap:wrap;gap:.75rem;display:flex}.upload-panel{gap:1rem;display:grid}.upload-panel__field select{width:100%}.book-preview{background:#f8fafc;border:1px solid #dbeafe;border-radius:12px;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.book-preview p{margin:.35rem 0 0}.book-preview__cover{object-fit:cover;border-radius:6px;width:72px;max-height:108px}.kindle-import{gap:1.25rem;display:grid}.kindle-import h2,.kindle-import h3,.kindle-import p{margin-top:0}.kindle-import__steps{gap:.5rem;margin:0;padding-left:1.4rem;display:grid}.kindle-import__script{gap:.75rem;display:grid}.kindle-import__script details{border:1px solid #cbd5e1;border-radius:10px;padding:.75rem}.kindle-import__script summary{cursor:pointer;font-weight:600}.kindle-import__script textarea{width:100%;min-height:220px;margin-top:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem}.kindle-import__summary{background:#eff6ff;border-radius:12px;padding:1rem}.kindle-import__summary p:last-child{margin-bottom:0}.kindle-import__groups{gap:1.25rem;display:grid}.kindle-group{gap:.75rem;display:grid}.kindle-group h3{margin-bottom:0}.kindle-group__items{gap:.65rem;display:grid}.kindle-book-row{border:1px solid #cbd5e1;border-radius:10px;gap:.6rem;padding:.9rem;display:grid}.kindle-book-row>label{align-items:flex-start;gap:.7rem;display:flex}.kindle-book-row input[type=checkbox]{width:1.1rem;height:1.1rem;margin-top:.2rem}.kindle-book-row small{color:#475569;margin-top:.2rem;display:block}.kindle-book-row__links{flex-wrap:wrap;gap:.9rem;padding-left:1.8rem;font-size:.9rem;display:flex}.import-status{margin:0;padding-left:1.8rem;font-size:.9rem;font-weight:600}.import-status--processing{color:#1d4ed8}.import-status--success{color:#15803d}.import-status--partial,.import-status--failed{color:#b91c1c}@media (width<=600px){.app{padding:1.25rem .75rem 2rem}.card{padding:1rem}.tabs{flex-direction:column}.form--inline{grid-template-columns:1fr}}
