/* rv_items.css -- THE ITEMS TABLE and THE TOTALS of the re-themed cart (checkout/cart_ajax_next.tpl) and Step 6 Confirm Order (checkout/confirm_next.tpl): one look for the
   same thing (checkout/rv_items.tpl; Russell 2026-10-02: "shouldn't the cart items table be exactly the same as the table in step 6?"). Moved here from rv_cart.css, where it was
   scoped to .rv-cart (now .rvtheme, so Step 6 gets it too); Step 6 had its own table CSS (~60 lines, deleted). RV Theme tokens only (rv_theme.css). Load it next to the page's own stylesheet. */

/* the item list: ONE layout, a grid row per line that stacks on a phone (rule 2: numeric columns as wide as their widest value, the name takes the rest) */
.rvtheme .rv-list { display:grid; gap:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.rvtheme .rv-row { display:grid; grid-template-columns:72px minmax(0,1fr) 110px 98px 118px 118px 40px; grid-template-areas:"img name model qty price total rm"; align-items:center; gap:0 10px; padding:10px 12px; border-top:1px solid var(--line); }
.rvtheme .rv-row:first-child { border-top:0; }
.rvtheme .rv-row.is-head { background:rgba(2,6,18,.35); color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; padding:9px 12px; }
.rvtheme .rv-row > * { min-width:0; }
.rvtheme .rv-c-img { grid-area:img; } .rvtheme .rv-c-name { grid-area:name; } .rvtheme .rv-c-model { grid-area:model; } .rvtheme .rv-c-qty { grid-area:qty; }
.rvtheme .rv-c-price { grid-area:price; } .rvtheme .rv-c-total { grid-area:total; } .rvtheme .rv-c-rm { grid-area:rm; text-align:right; }
.rvtheme .rv-c-price, .rvtheme .rv-c-total { text-align:right; font-variant-numeric:tabular-nums; }
.rvtheme .rv-c-total { font-weight:700; }
.rvtheme .rv-c-img img { display:block; width:60px; height:60px; object-fit:contain; border:1px solid var(--line2); border-radius:8px; background:var(--panel); }
.rvtheme .rv-c-name a { color:var(--txt); font-weight:700; text-decoration:none; }
.rvtheme .rv-c-name a:hover { text-decoration:underline; }
.rvtheme .rv-c-name small { display:block; color:var(--muted); font-size:12px; line-height:1.4; }
.rvtheme .rv-c-name small.is-good { color:var(--good); font-weight:700; }
.rvtheme .rv-c-name small.is-bad { color:var(--bad); font-weight:700; }
.rvtheme .rv-c-name .rv-stock { color:var(--bad); font-weight:700; }
.rvtheme .rv-row:not(.is-head) .rv-c-model { color:var(--muted); font-size:13px; }   /* not the header cell: "ITEM NUMBER" came out 13px beside 11px headings (Russell 10/2) */
.rvtheme .rv-c-model small { display:block; }
.rvtheme .rv-row input.rv-qty { margin:0; }
.rvtheme .rv-remove { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; color:var(--muted); text-decoration:none; font-size:18px; line-height:1; }
.rvtheme .rv-remove:hover { background:rgba(248,113,113,.12); color:var(--bad); }
.rvtheme .rv-used { display:flex; align-items:center; gap:6px; margin-top:6px; color:var(--muted); font-size:12px; }
.rvtheme .rv-used input { width:auto; margin:0; }
.rvtheme .rv-empty { padding:28px 16px; text-align:center; color:var(--muted); line-height:1.6; }
.rvtheme .rv-empty b { display:block; color:var(--txt); font-size:16px; margin-bottom:6px; }
.rvtheme .rv-empty a { color:var(--accent2); font-weight:700; }
@media (max-width:700px) {
  .rvtheme .rv-row.is-head { display:none; }
  .rvtheme .rv-row { grid-template-columns:64px minmax(0,1fr) 40px; grid-template-areas:"img name rm" "img model rm" "img qty rm" "img price rm" "img total rm"; gap:4px 10px; align-items:start; }
  .rvtheme .rv-c-price, .rvtheme .rv-c-total { text-align:left; }
  .rvtheme .rv-c-price::before { content:"Price: "; color:var(--muted); font-weight:400; }
  .rvtheme .rv-c-total::before { content:"Total: "; color:var(--muted); font-weight:400; }
  .rvtheme .rv-c-model::before { content:"Item #: "; }
  .rvtheme .rv-c-rm { align-self:start; }
}
/* staff: the price column is an input with the R / O / C / L / V / G price links under it (rv_theme.css .rv-prow / .rv-pbadge) */
.rvtheme .rv-row.is-staff { grid-template-columns:72px minmax(0,1fr) 110px 98px 170px 118px 40px; }
/* staff price box: the same height and type size as the quantity box. The theme's generic field rule (.rvtheme input:not(...) x5, specificity 0,6,1) beat the plain selector that
   was here, so the box drew 170 x 42 at 15px beside a 78 x 29 quantity box (Russell 10/2 screenshot); the repeated classes below out-rank it. */
.rvtheme .rv-list.rv-list .rv-row.rv-row .rv-c-price.rv-c-price input.priceinput { width:110px; max-width:100%; height:29px; box-sizing:border-box; margin:0 0 6px auto; padding:0 10px; font-size:13px; line-height:1.2; text-align:right; display:block; }
.rvtheme .rv-c-price .rv-prow { justify-content:flex-end; }
.rvtheme .rv-c-price a.rv-debug { display:inline-block; margin-top:4px; font-size:12px; color:var(--accent2); }
@media (max-width:700px) { .rvtheme .rv-row.is-staff { grid-template-columns:64px minmax(0,1fr) 40px; } .rvtheme .rv-list.rv-list .rv-row.rv-row .rv-c-price.rv-c-price input.priceinput { width:130px; margin-left:0; text-align:left; } .rvtheme .rv-c-price .rv-prow { justify-content:flex-start; } }

/* totals card */
.rvtheme .rv-totals { display:grid; gap:6px; }
.rvtheme .rv-totals .rv-trow { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.rvtheme .rv-totals .rv-trow:last-child { border-bottom:0; }
.rvtheme .rv-totals .rv-trow b { color:var(--muted); font-weight:600; }
.rvtheme .rv-totals .rv-trow.is-grand { font-size:17px; } .rvtheme .rv-totals .rv-trow.is-grand b, .rvtheme .rv-totals .rv-trow.is-grand span { color:var(--txt); font-weight:800; }
.rvtheme .rv-totals .rv-star { color:var(--warn); }
.rvtheme .rv-ship-note { margin:10px 0 0; color:var(--muted); font-size:12.5px; line-height:1.5; }

/* the red / green words in a line ("Requires 110-120 V", "processed in USD") */
.rvtheme .rv-flag.good { color:var(--good); } .rvtheme .rv-flag.bad { color:var(--bad); }
