:root{color-scheme:light;--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f0f1f4;--border: #e3e5ea;--fg: #161823;--muted: #6b7280;--faint: #9aa1ad;--accent: #5b5bd6;--up: #119c5b;--up-bg: #119c5b1a;--down: #d83a52;--down-bg: #d83a521a;--new: #4f46e5;--new-bg: #4f46e51a;--shadow: 0 1px 2px rgba(20, 20, 40, .06), 0 8px 24px rgba(20, 20, 40, .06)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--fg);background:var(--bg);font-size:14px;-webkit-font-smoothing:antialiased}.app{width:100%;margin:0;padding:24px 32px 80px}.header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.brand h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em}.brand h1 .accent{color:var(--accent)}.tagline{margin:2px 0 0;color:var(--muted);font-size:13px}.status{display:flex;align-items:center;gap:18px}.stat{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.stat-value{font-weight:650;font-variant-numeric:tabular-nums}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.spacer{flex:1}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.seg{border:none;background:transparent;color:var(--muted);padding:6px 12px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer}.seg:hover{color:var(--fg)}.seg.active{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}.select{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--fg);border-radius:10px;padding:8px 30px 8px 12px;font-size:13px;font-weight:600;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%239aa1ad' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.window-note{color:var(--muted);font-size:12px;margin:0 4px 8px}.table{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.row{display:grid;grid-template-columns:44px 70px 1fr 170px 70px;align-items:center;gap:10px;width:100%;text-align:left;border:none;border-bottom:1px solid var(--border);background:transparent;color:inherit;font:inherit;padding:10px 16px;cursor:pointer}.row:last-child{border-bottom:none}.row.head{cursor:default;background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:700;padding-top:9px;padding-bottom:9px}.row:not(.head):hover{background:var(--surface-2)}.col-rank{font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted);text-align:center}.col-app{display:flex;align-items:center;gap:11px;min-width:0}.icon{width:38px;height:38px;border-radius:9px;flex-shrink:0;background:var(--surface-2);object-fit:cover}.icon.ph{display:inline-block}.icon.lg{width:64px;height:64px;border-radius:14px}.appmeta{display:flex;flex-direction:column;min-width:0}.appname{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artist{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{display:inline-block;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600;white-space:nowrap}.col-price{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:7px;padding:3px 7px}.badge.up{color:var(--up);background:var(--up-bg)}.badge.down{color:var(--down);background:var(--down-bg)}.badge.new{color:var(--new);background:var(--new-bg)}.badge.flat{color:var(--faint)}.notice{display:flex;align-items:center;gap:10px;padding:16px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:12px}.notice.subtle{background:transparent;border-style:dashed;margin-bottom:12px}.notice.error{color:var(--down);border-color:var(--down);background:var(--down-bg)}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scrim{position:fixed;inset:0;background:#08090e73;backdrop-filter:blur(1px);z-index:10}.drawer{position:fixed;top:0;right:0;height:100dvh;width:min(420px,92vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:-12px 0 40px #0000002e;z-index:11;padding:22px;overflow-y:auto;animation:slide .18s ease-out}@keyframes slide{0%{transform:translate(20px);opacity:.6}}.close{position:absolute;top:14px;right:16px;border:none;background:transparent;color:var(--muted);font-size:26px;line-height:1;cursor:pointer}.detail-head{display:flex;gap:14px;align-items:center;margin-top:6px}.detail-head h2{margin:0;font-size:19px;letter-spacing:-.01em}.detail-head .meta{display:flex;align-items:center;gap:8px;margin:6px 0 0}.detail .price{color:var(--fg);font-weight:600}.seen{color:var(--muted);font-size:12px;margin:16px 0 12px}.store-link{display:inline-block;color:var(--accent);font-weight:600;text-decoration:none}.store-link:hover{text-decoration:underline}.detail h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);margin:24px 0 10px}.series{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--surface-2)}.series-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.series-name{font-weight:600;font-size:13px}.series-rank{font-variant-numeric:tabular-nums;font-weight:700;font-size:13px}.muted{color:var(--muted);font-weight:400}.spark{display:block;width:100%;height:44px}.spark-line{stroke:var(--accent);stroke-width:1.6;vector-effect:non-scaling-stroke}.spark-dot{fill:var(--accent)}@media(max-width:720px){.app{padding:20px 16px 64px}.col-cat{display:none}.row{grid-template-columns:36px 60px 1fr 64px}.status{gap:12px}}
