:root{--bg: #0f1115;--surface: #171a21;--border: #262a33;--text: #e6e6e6;--muted: #8a8f99;--accent: #4f8cff;--danger: #ff5a5a;--ok: #4ec07b}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}h1,h2,h3{margin:0 0 .5em}button{background:var(--accent);color:#fff;border:0;padding:.5em 1em;border-radius:6px;cursor:pointer;font:inherit}button.secondary{background:transparent;border:1px solid var(--border);color:var(--text)}button:disabled{opacity:.5;cursor:not-allowed}input,select{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:.5em .75em;border-radius:6px;font:inherit;width:100%}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f8cff33}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1L6 6L11 1' stroke='%238a8f99' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right .75em center;padding-right:2em}select option{background:var(--surface);color:var(--text)}label{display:block;font-size:.85em;color:var(--muted);margin-bottom:.25em}.container{max-width:980px;margin:0 auto;padding:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.row{display:flex;gap:.75rem;align-items:center}.error{color:var(--danger)}.muted{color:var(--muted);font-size:.9em}header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}.book{display:grid;grid-template-columns:60px 1fr auto;gap:1rem;padding:.75rem;border-bottom:1px solid var(--border);align-items:center}.account-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:6px;margin-bottom:.5rem;cursor:pointer;transition:border-color .15s}.account-row:hover{border-color:#3a4052}.account-row-active{border-color:var(--accent);background:#4f8cff14}.account-row-body{min-width:0}.account-row-body strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book:last-child{border-bottom:0}.book img{width:60px;height:85px;object-fit:cover;border-radius:4px;background:#222}.badge{display:inline-block;padding:.1em .5em;border-radius:4px;background:var(--border);font-size:.8em;margin-right:.5em}.badge-ok{background:#4ec07b26;color:var(--ok);border:1px solid rgba(78,192,123,.4)}.search-input{flex:1;max-width:380px;min-width:160px}.book-title{color:var(--text);text-decoration:none}.book-title:hover{color:var(--accent);text-decoration:underline}.progress{background:var(--border);height:6px;border-radius:3px;overflow:hidden}.progress-bar{background:var(--accent);height:100%;transition:width .3s}.status-pill{display:inline-block;padding:.15em .6em;border-radius:999px;font-size:.8em;font-weight:500;border:1px solid transparent}.status-queued{color:var(--muted);border-color:var(--border)}.status-running{color:var(--accent);border-color:#4f8cff66;background:#4f8cff1a}.status-completed{color:var(--ok);border-color:#4ec07b66;background:#4ec07b1a}.status-failed{color:var(--danger);border-color:#ff5a5a66;background:#ff5a5a1a}.job-row{padding:.75rem 0;border-bottom:1px solid var(--border)}.job-row:last-child{border-bottom:0;padding-bottom:0}.job-row-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem}.job-row-title{min-width:0;display:flex;flex-direction:column;gap:2px}.job-row-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-row-title .muted{font-size:.85em}.job-progress-row{display:flex;align-items:center;gap:.75rem}.job-progress-row .progress{flex:1}.job-progress-num{font-variant-numeric:tabular-nums;font-size:.85em;color:var(--muted);min-width:3em;text-align:right}.progress-done .progress-bar{background:var(--ok)}.progress-failed .progress-bar{background:var(--danger)}.job-meta{font-size:.8em;margin-top:.25rem}.job-close{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:999px;width:24px;height:24px;padding:0;line-height:1;font-size:16px;cursor:pointer}.job-close:hover{color:var(--text);border-color:var(--danger);background:#ff5a5a1a}.modal{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:1.5rem;max-width:440px;width:90%}.modal::backdrop{background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal h3{margin-top:0}.confirm-message{color:var(--muted);line-height:1.5;margin:0 0 1.25rem}button.danger{background:var(--danger)}button.danger:hover{filter:brightness(1.1)}
