/* items */
/* ================= section header (NavigationTitle.kt) ================= */
section.shelf{padding:0}
.shelf-head{display:flex;align-items:center;gap:12px;padding:12px}
.shelf-head h2{font-size:22px;line-height:28px;font-weight:700;letter-spacing:0;margin:0;flex:1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--md-on-surface)}
.shelf-head .more{width:24px;height:24px;color:var(--md-on-surface-variant);flex:0 0 auto;display:grid;place-items:center}
.shelf-head .more svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* ================= horizontal rails + GridItem cards ================= */
.rowscroll{display:flex;overflow-x:auto;padding:0 0 4px;scroll-snap-type:x proximity;scrollbar-width:none}
.rowscroll.chips{gap:8px;padding:0 12px 8px}
.rowscroll.stories{padding:0 8px 4px}
.rowscroll::-webkit-scrollbar{display:none}
.card{width:calc(var(--grid-thumb) + 24px);flex:0 0 auto;scroll-snap-align:start;cursor:pointer;padding:12px;border-radius:12px}
.card.wide{width:calc(var(--grid-thumb) * 16 / 9 + 24px)}
.card .art{width:var(--grid-thumb);height:var(--grid-thumb);border-radius:var(--thumb-r);
  background:var(--md-surface-container-high);object-fit:cover;margin-bottom:6px}
.card.wide .art{width:calc(var(--grid-thumb) * 16 / 9)}
.card.round .art{border-radius:50%}
.card .t{font-size:14px;line-height:20px;font-weight:700;letter-spacing:.25px;color:var(--md-on-surface);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .s{font-size:14px;line-height:20px;letter-spacing:.25px;color:var(--md-secondary);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card:hover{background:color-mix(in srgb,var(--md-on-surface) 5%,transparent)}
/* status ring (HomeStatusesRow) */
/* paged column lists (Quick picks) */
.pager{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.pager::-webkit-scrollbar{display:none}
/* ================= list rows (Items.kt ListItem) ================= */
ul.list{list-style:none;margin:0;padding:0}
li.row{
  display:flex;align-items:center;height:var(--row-h);margin:0 var(--row-pad);
  border-radius:8px;cursor:pointer;border:1.5px solid transparent;
  transition:background-color var(--dur-sheet) var(--ease-standard),border-color var(--dur-sheet) var(--ease-standard),color var(--dur-sheet) var(--ease-standard);
}
li.row:hover{background:color-mix(in srgb,var(--md-on-surface) 6%,transparent)}
li.row.playing{background:var(--md-secondary-container);border-color:var(--md-primary);color:var(--md-on-secondary-container)}

/* Items.kt ListItem slots. The leading slot holds the chart rank cell AND the artwork side by side —
   without this it stacks them, which puts the rank above the row and the movement marker over the
   thumbnail. The trailing slot holds the duration column and the overflow button. */
li.row .lead { display: flex; align-items: center; flex: 0 0 auto; }
li.row .trail { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; }
li.row .thumbbox{padding:var(--thumb-pad);flex:0 0 auto;display:grid;place-items:center}
li.row .thumb{position:relative;display:block;width:var(--thumb);height:var(--thumb);border-radius:var(--thumb-r);overflow:hidden}
li.row .thumb.round{border-radius:50%}
li.row img{width:var(--thumb);height:var(--thumb);border-radius:var(--thumb-r);object-fit:cover;background:var(--md-surface-container-high);display:block}
li.row .thumb img{border-radius:0}
li.row .meta{flex:1;min-width:0;padding:0 6px}
li.row .meta .t{font-size:14px;line-height:20px;font-weight:700;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
li.row .meta .s{font-size:12px;line-height:16px;letter-spacing:.4px;color:var(--md-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
li.row.playing .meta .s{color:var(--md-on-secondary-container)}
li.row .dur{display:none;font-size:12px;line-height:16px;letter-spacing:.4px;color:var(--md-secondary);padding:0 12px;flex:0 0 auto}
li.row.playing .dur{color:var(--md-on-secondary-container)}
li.row .kebab{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:currentColor;flex:0 0 auto;opacity:.8}
li.row .kebab:hover{background:color-mix(in srgb,var(--md-on-surface) 9%,transparent);opacity:1}
li.row .kebab svg{width:24px;height:24px}
/* chart rank cell (ChartRankCell.kt): fixed rank slot + fixed marker slot, so art aligns down the column */
li.row .rank{display:flex;align-items:center;flex:0 0 auto}
li.row .rank .no{width:24px;text-align:right;font-size:16px;line-height:24px;font-weight:500;letter-spacing:.15px}
li.row .rank .mk{width:44px;padding-left:14px;text-align:center;font-size:12px;line-height:16px;font-weight:500;letter-spacing:.5px}
li.row .rank .up{color:var(--climb)}
li.row .rank .down{color:var(--fall)}
li.row .rank .new{color:var(--md-primary)}
li.row .rank .re{color:var(--md-on-surface-variant)}
.capped .showall{
  display:inline-flex;align-items:center;margin:6px 12px 4px;padding:10px 20px;border-radius:20px;
  background:var(--md-surface-container-high);color:var(--md-on-surface);
  font-size:14px;line-height:20px;font-weight:500;letter-spacing:.1px;
}
.capped .showall:hover{background:var(--md-surface-container-highest)}
/* ================= detail screens ================= */
.grid{display:grid;gap:0;padding:0 4px;grid-template-columns:repeat(auto-fill,minmax(calc(var(--grid-thumb) + 24px),1fr));justify-items:start}
.grid .card{width:100%}
.grid .card .art{width:100%;height:auto;aspect-ratio:1}
