:root{--bg:#111;--panel:#1d1d1d;--line:#333;--txt:#eee;--sub:#aaa;--accent:#ffd166;--link:#7cc7ff;--warn:#ff8fa3;--badge:#e5484d}
*{box-sizing:border-box}
body{font-family:-apple-system,"Hiragino Sans",sans-serif;background:var(--bg);color:var(--txt);margin:0;line-height:1.7}
.wrap{max-width:860px;margin:0 auto;padding:16px}
a{color:var(--link)}
.warn{background:#2a1218;color:var(--warn);text-align:center;padding:6px;font-size:.9em;margin:0}
header.site{border-bottom:1px solid var(--line);padding:12px 0}
header.site .logo{font-size:1.35em;font-weight:700;color:var(--txt);text-decoration:none}
nav.main{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:.95em}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:12px 0}
.card h3{margin:0 0 6px;font-size:1.02em;line-height:1.5}
.price{font-size:1.25em}
.old{text-decoration:line-through;color:var(--sub)}
strong,.accent{color:var(--accent)}
.badge{display:inline-block;background:var(--badge);color:#fff;border-radius:6px;padding:0 8px;font-size:.78em;font-weight:700;vertical-align:middle;margin-right:6px}
.badge.sub{background:#444;color:#ddd}
.meta{color:var(--sub);font-size:.88em}
table{border-collapse:collapse;width:100%;margin:10px 0;font-size:.95em}
th,td{border:1px solid var(--line);padding:6px 10px;text-align:right}
th:first-child,td:first-child{text-align:left}
input[type=search],select{background:#222;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:1em;width:100%}
.filters{display:grid;gap:10px;margin:12px 0}
@media(min-width:640px){.filters{grid-template-columns:2fr 1fr 1fr 1fr}}
footer{border-top:1px solid var(--line);margin-top:32px;padding:16px 0;color:var(--sub);font-size:.88em}
svg.chart{width:100%;height:auto;background:#181818;border:1px solid var(--line);border-radius:8px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);border-radius:999px;padding:4px 14px;text-decoration:none;background:var(--panel)}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.tag{border:1px solid var(--line);border-radius:999px;padding:1px 10px;font-size:.82em;text-decoration:none;color:var(--sub);background:#181818}
a.tag:hover{color:var(--txt);border-color:var(--sub)}
ol.rank{list-style:none;margin:12px 0;padding:0;background:var(--panel);border:1px solid var(--line);border-radius:12px}
ol.rank li{display:flex;gap:12px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line)}
ol.rank li:last-child{border-bottom:none}
.rank-num{font-weight:700;color:var(--accent);min-width:1.6em;text-align:right;font-size:1.05em}
.rank-main{flex:1;min-width:0}
.rank-title{font-size:.98em;line-height:1.45}
.rank-meta{color:var(--sub);font-size:.85em;white-space:nowrap}
.card-flex{display:flex;gap:12px;align-items:flex-start}
.card-main{flex:1;min-width:0}
.card-main h3{margin-top:0}
.thumb{display:block;width:120px;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#262626;flex:none}
a.thumb-link{flex:none;line-height:0}
.thumb-none{display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);color:var(--sub);text-align:center;padding:6px}
.thumb-none span{font-size:.8em;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
.thumb-sm{width:64px}
.thumb-sm.thumb-none span{font-size:1.1em;-webkit-line-clamp:2}
.thumb-lg{width:100%;max-width:480px;margin:10px 0}
.thumb-lg.thumb-none{min-height:180px}
@media(max-width:480px){.thumb{width:88px}.thumb-sm{width:56px}}
