:root{--ink:#1f2328;--muted:#6b7280;--line:#e5e7eb;--bg:#ffffff;--soft:#f6f7f9;--club:#9d174d;--bestseller:#1d4ed8;--chart:#047857;--picks:#b45309;--scout:#6d28d9;--manual:#475569}*{box-sizing:border-box}html{scroll-behavior:smooth}h2,h3{scroll-margin-top:14px}body{margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}main.report{max-width:1100px;margin:0 auto;padding:28px 20px 60px}nav.sidenav{display:none}@media (min-width:1280px){nav.sidenav{display:block;position:fixed;top:0;left:0;bottom:0;width:210px;overflow-y:auto;padding:26px 14px 26px 18px;background:var(--soft);border-right:1px solid var(--line)}main.report{margin-left:210px}nav.sidenav .brand{font-weight:700;font-size:14px;margin-bottom:14px}nav.sidenav .brand,nav.sidenav a{display:block;color:var(--ink);text-decoration:none}nav.sidenav a{padding:5px 8px;border-radius:6px;font-size:13px}nav.sidenav a:hover{background:#ececf0}nav.sidenav a.sub{padding-left:22px;color:var(--muted);font-size:12.5px}nav.sidenav .count{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}}h1{font-size:26px;margin:0 0 4px}h1 .h1-date{font-weight:400}h2{font-size:19px;margin:36px 0 10px;border-bottom:2px solid var(--line);padding-bottom:6px}h3{font-size:13px;margin:22px 0 8px;text-transform:uppercase;letter-spacing:.04em}.sub,h3{color:var(--muted)}.sub{margin-bottom:18px}.topbar{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.topbar form{margin:0}.topbar button{background:none;border:1px solid var(--line);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--muted);cursor:pointer}.topbar button:hover{color:var(--ink)}.kpis{display:flex;gap:14px;flex-wrap:wrap;margin:14px 0 6px}.kpi{background:var(--soft);border-radius:8px;padding:10px 14px;min-width:130px}.kpi b{display:block;font-size:22px}.kpi span{color:var(--muted);font-size:13px}.searchbox{margin:18px 0 4px}.searchbox input{width:100%;max-width:480px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px}.searchbox input:focus{outline:2px solid #c7d2fe;border-color:#a5b4fc}.searchbox .scroll{margin-top:10px}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}tr:nth-child(2n) td{background:#fafafa}td.num{text-align:right;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.title{font-weight:600}.author,.isbn{color:var(--muted)}.isbn{font-size:12px;font-family:ui-monospace,Menlo,monospace}.badge{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;color:#fff;margin:1px 3px 1px 0;white-space:nowrap}.badge.club{background:var(--club)}.badge.bestseller{background:var(--bestseller)}.badge.chart{background:var(--chart)}.badge.picks{background:var(--picks)}.badge.scout{background:var(--scout)}.badge.manual{background:var(--manual)}.status{display:inline-block;font-size:12px;padding:1px 8px;border-radius:4px;font-weight:600}.status.ok{background:#dcfce7;color:#166534}.status.stale{background:#fef3c7;color:#92400e}.status.error,.status.suspect{background:#fee2e2;color:#991b1b}.status.needs-key,.status.never{background:#e5e7eb;color:#374151}details{margin:10px 0}summary{cursor:pointer;font-weight:600}.note{color:var(--muted);font-size:13px}.note.up{color:#047857}.delta{font-size:11px;font-weight:700;white-space:nowrap}.delta.up{color:#047857}.delta.down{color:#b91c1c}.delta.new{color:#6d28d9;letter-spacing:.03em}footer{margin-top:40px;font-size:12px}.empty,footer{color:var(--muted)}.empty{font-style:italic;padding:8px 0}main.report a{color:inherit}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--soft);padding:20px}.login-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:32px 28px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}.login-card h1{font-size:20px;margin:0}.login-card .note{margin:0}.login-card input{padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px}.login-card button{padding:9px 12px;border:none;border-radius:8px;background:var(--ink);color:#fff;font-size:15px;cursor:pointer}.login-card button:hover{background:#343a42}.login-card .error{color:#b91c1c;font-size:13px;margin:0}.empty-state{max-width:560px;margin:80px auto;padding:0 20px;color:var(--muted)}.empty-state h1{color:var(--ink)}.empty-state code{background:var(--soft);padding:1px 5px;border-radius:4px}