:root{color-scheme:dark;--page:#15202b;--card:#192734;--item:#223447;--text:#f4f7fa;--muted:#aebdca;--action:#294154;--action-text:#f4f7fa;--primary:#f5f8fa;--primary-text:#15202b;--link:#1d9bf0;--border:#344b5f}
:root[data-theme="light"]{color-scheme:light;--page:#f4f7fb;--card:#ffffff;--item:#eef3f8;--text:#182b3c;--muted:#52697d;--action:#e2ebf3;--action-text:#182b3c;--primary:#1d9bf0;--primary-text:#ffffff;--link:#0969ad;--border:#d5e0ea}
:root[data-theme="dark"]{color-scheme:dark}
.theme-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 6px}
/* Compact, accessible theme toggle */
.theme-switch{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:4px;cursor:pointer;color:var(--muted);font:inherit}
.theme-switch .theme-icon{font-size:19px;line-height:1}
.theme-switch .toggle-track{display:flex;align-items:center;width:48px;height:28px;border-radius:99px;padding:3px;background:var(--link);transition:background .18s}
.theme-switch .toggle-knob{width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0004;transform:translateX(20px);transition:transform .18s}
:root[data-theme="light"] .theme-switch .toggle-track{background:#a4b5c4}
:root[data-theme="light"] .theme-switch .toggle-knob{transform:translateX(0)}
.theme-switch:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:8px}
.app-title{font-size:23px;line-height:1.25;letter-spacing:-.02em;margin:0;font-weight:800}


*{box-sizing:border-box}
body{margin:0;background:var(--page);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
main{max-width:760px;margin:auto;padding:22px 16px 80px}
h1{font-size:23px;margin:0} .sub{font-size:13px;opacity:.72;margin-bottom:16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:16px;margin:14px 0}
#video{width:100%;height:100%;object-fit:cover;background:#000;border-radius:18px}
.scan-frame{position:relative;width:100%;aspect-ratio:16/7;overflow:hidden;border-radius:18px;background:#000}
.scan-guide{position:absolute;left:9%;right:9%;top:27%;bottom:27%;border:1px solid rgba(255,255,255,.48);border-radius:9px;pointer-events:none}
.scan-laser{position:absolute;left:12%;right:12%;top:32%;height:36%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.95) 0 2px,transparent 2px 5px,rgba(255,255,255,.95) 5px 6px,transparent 6px 9px,rgba(255,255,255,.95) 9px 13px,transparent 13px 17px);filter:drop-shadow(0 0 3px rgba(255,255,255,.6));opacity:.9;pointer-events:none;animation:laser 1.7s ease-in-out infinite alternate;display:none}
.scan-frame.scan-success .scan-guide{border-color:#72f6a2;box-shadow:0 0 12px rgba(114,246,162,.5)}
.scan-frame.scan-success .scan-laser{filter:drop-shadow(0 0 5px rgba(114,246,162,.8));background:repeating-linear-gradient(90deg,#72f6a2 0 2px,transparent 2px 5px,#72f6a2 5px 6px,transparent 6px 9px,#72f6a2 9px 13px,transparent 13px 17px)}
.scan-frame.active .scan-laser{display:block}
@keyframes laser{from{top:31%}to{top:33%}}
@media(prefers-reduced-motion:reduce){.scan-laser{animation:none;top:32%}}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
button,.btn{border:0;border-radius:16px;padding:14px 16px;font-size:17px;font-weight:800}
.primary{background:var(--primary);color:var(--primary-text);flex:1}
.danger{background:var(--action);color:var(--action-text)}
#status{font-weight:800;line-height:1.55;margin-top:12px}
.badge{display:inline-block;background:var(--action);border-radius:999px;padding:7px 11px;font-size:13px;opacity:.9}
#history{display:grid;gap:10px;margin-top:12px}
.item{background:var(--item);border-radius:18px;padding:14px}
.item-title{font-size:17px;font-weight:850;line-height:1.4;margin-bottom:5px}
.item-isbn{font-size:12px;opacity:.55;margin-bottom:11px}
.market{display:block;width:100%;text-align:center;text-decoration:none;background:var(--primary);color:var(--primary-text);border-radius:14px;padding:13px 12px;font-weight:900}
.market.opened{background:var(--action);color:var(--muted)}
.set-search{display:block;width:max-content;margin:9px auto 0;text-align:center;text-decoration:none;color:var(--muted);font-size:13px;font-weight:750;padding:5px 8px}
.empty{opacity:.55;text-align:center;padding:24px 8px}
.remote-status{font-size:13px;opacity:.75;line-height:1.5;margin-top:10px}
.remote-actions{display:flex;align-items:center;gap:10px;justify-content:space-between}
.remote-actions button{background:var(--action);color:var(--action-text);font-size:14px;padding:10px 13px}
.remote-actions button:disabled{opacity:.5}
.remote-book{background:var(--item);border-radius:16px;padding:13px;margin-top:10px}
.remote-book .market{margin-top:10px}

.small{font-size:12px;opacity:.6;line-height:1.5;margin-top:10px}

.page-link{display:block;text-align:center;text-decoration:none;background:var(--action);color:var(--action-text);border-radius:16px;padding:14px 16px;font-weight:800;margin-top:14px}
.back-link{display:inline-block;color:var(--link);text-decoration:none;font-weight:750;padding:8px 0}
.total-count{font-size:40px;font-weight:850;margin:6px 0}
