/* Styly stránky košíku — extrahováno z inline <style> v cart.php (F3).
   Tokeny --cx-* jsou globální v app.css :root (incl. dark mode).
   --cx-display je systémový font stack — bez externí závislosti na Google Fonts. */
.cartx {
    font-variant-numeric: tabular-nums;
}
.cartx h2, .cartx h3 { font-family: var(--cx-display); letter-spacing:-.01em; }

/* ---- Souhrn (nejlevnější) ---- */
.cx-sum {
    display:flex; align-items:center; gap:1rem;
    background:var(--cx-surface); border:1px solid var(--cx-line);
    border-radius:var(--cx-radius); box-shadow:var(--cx-shadow);
    padding:.9rem 1rem; margin:0 0 1.1rem; position:relative; overflow:hidden;
}
.cx-sum::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--cx-accent,#999); }
.cx-sum-l { flex:1; min-width:0; }
.cx-sum-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--cx-muted); font-weight:600; }
.cx-sum-store { display:inline-block; margin-top:.25rem; padding:.2rem .65rem; border-radius:999px; color:#fff; font-weight:700; font-size:.95rem; }
/* A1: zlatý Albert-SM badge — tmavý text řeší globální .on-light (View::onLight). */
.cx-sum-r { text-align:right; }
.cx-sum-total { font-family:var(--cx-display); font-weight:800; font-size:1.6rem; line-height:1; color:var(--cx-ink); }
.cx-sum-miss { font-size:.72rem; color:var(--cx-muted); margin-top:.2rem; }

/* ---- Mobilní karty srovnání ---- */
.cx-cards { display:none; }
.cx-card {
    display:flex; gap:.8rem; background:var(--cx-surface); border:1px solid var(--cx-line);
    border-radius:var(--cx-radius); box-shadow:var(--cx-shadow); padding:.7rem .8rem; margin-bottom:.6rem;
}
.cx-thumb { width:56px; height:56px; flex:0 0 auto; border-radius:10px; background:#fff;
    display:flex; align-items:center; justify-content:center; overflow:hidden; padding:3px; }
.cx-thumb img { width:100%; height:100%; object-fit:contain; }
.cx-thumb.empty { color:var(--cx-line); }
.cx-card-body { flex:1; min-width:0; }
.cx-card-top { display:flex; justify-content:space-between; gap:.5rem; align-items:flex-start; }
.cx-card-name { font-weight:700; color:var(--cx-ink); line-height:1.25; }
.cx-card-sub { font-size:.74rem; color:var(--cx-muted); margin-top:.1rem; }
.cx-rm { border:none; background:none; color:var(--cx-muted); font-size:1.05rem; line-height:1; padding:.1rem .25rem; margin:0; cursor:pointer; flex:0 0 auto; }
.cx-rm:hover { color:#dc2626; }
.cx-chips { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.55rem; }
.cx-chip { display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--cx-line);
    border-radius:999px; padding:.22rem .55rem .22rem .45rem; font-size:.8rem; color:var(--cx-ink); background:var(--cx-surface); }
.cx-chip .dot { width:.55rem; height:.55rem; border-radius:50%; flex:0 0 auto; }
.cx-chip b { font-weight:700; }
.cx-chip.best { border-color:var(--cx-save); background:var(--cx-save-bg); color:var(--cx-save); font-weight:700; }
.cx-chip .loy { color:var(--cx-save); }
.cx-only { display:inline-block; margin-top:.5rem; font-size:.75rem; font-weight:700; color:#b45309; }
.cx-expired { display:inline-block; margin-top:.4rem; }

/* ---- Akce ---- */
.cx-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.1rem 0; }
.cx-actions button, .cx-actions a[role=button] { margin:0; }
.cx-actions .cx-share { flex:1 1 auto; }

/* ---- Zvýraznění nejlevnějšího sloupce v tabulce (U3) ---- */
/* Tělo: znatelnější tón (≥0.13); tfoot ještě výraznější (≥0.18). */
.price-table th.cx-col--best { border-top:2px solid var(--cx-save); }
.price-table td.cx-col--best { background:rgba(21,128,61,0.13); }
.price-table tfoot td.cx-col--best { background:rgba(21,128,61,0.18); }
@media (prefers-color-scheme: dark) {
    .price-table td.cx-col--best { background:rgba(74,222,128,0.16); }
    .price-table tfoot td.cx-col--best { background:rgba(74,222,128,0.22); }
}

/* ---- Nákupní režim ---- */
.cx-shop { margin-top:1.5rem; }
.cx-shop-head { font-family:var(--cx-display); font-weight:800; font-size:1.3rem; display:flex; align-items:center; gap:.5rem; margin:0 0 .6rem; }
.cx-shop-head .pin { font-size:1.1rem; }
.cx-prog { margin:0 0 .25rem; }
.cx-prog-track { height:8px; border-radius:999px; background:var(--cx-line); overflow:hidden; }
.cx-prog-fill { height:100%; width:0; border-radius:999px; background:var(--cx-save); transition:width .35s cubic-bezier(.4,0,.2,1); }
.cx-prog-text { display:flex; justify-content:space-between; align-items:center; font-size:.78rem; color:var(--cx-muted); margin-top:.35rem; }
.cx-prog-text b { color:var(--cx-ink); font-weight:700; }
.cx-prog-text a { color:var(--cx-muted); text-decoration:underline; }

.shop-tabs { position:sticky; top:0; z-index:6; display:flex; gap:.4rem; overflow-x:auto;
    padding:.7rem 0; margin:.4rem 0 .2rem; background:var(--pico-background-color,#fff);
    scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.shop-tabs::-webkit-scrollbar { display:none; }
.shop-tab { flex:0 0 auto; border:2px solid transparent; color:#fff; padding:.45rem .9rem; border-radius:999px;
    font-size:.85rem; font-weight:700; cursor:pointer; margin:0; opacity:.5; transition:opacity .15s, transform .1s;
    font-family:var(--cx-display); }
.shop-tab .n { opacity:.8; font-weight:600; margin-left:.15rem; }
.shop-tab.active { opacity:1; box-shadow:0 2px 8px rgba(16,24,40,.18); }
.shop-tab:active { transform:scale(.96); }
.shop-tab:focus-visible { outline:2px solid var(--cx-ink); outline-offset:2px; }

.shop-list { list-style:none; padding:0; margin:.4rem 0 0; }
.shop-cat { display:flex; align-items:center; gap:.6rem; margin:1.1rem 0 .35rem; color:var(--cx-muted);
    text-transform:uppercase; font-size:.72rem; letter-spacing:.07em; font-weight:700; }
.shop-cat::after { content:""; flex:1; height:1px; background:var(--cx-line); }
/* #10: skupinové hlavičky srovnávací sekce (mobilní karty + desktop tabulka), styl dle .shop-cat */
.cx-cat-head { display:flex; align-items:center; gap:.6rem; margin:1.1rem 0 .4rem; color:var(--cx-muted);
    text-transform:uppercase; font-size:.72rem; letter-spacing:.07em; font-weight:700; }
.cx-cat-head::after { content:""; flex:1; height:1px; background:var(--cx-line); }
.cx-cat-head .cx-cat-n { color:var(--cx-muted); font-weight:600; }
/* Desktop hlavička má výplň (band pro vizuální členění husté tabulky) → text --cx-ink,
   NE --cx-muted: muted na --cx-line je jen ~3.9:1 (< WCAG AA 4.5:1 pro drobný bold). */
.cx-cat-row td { background:var(--cx-line); color:var(--cx-ink); text-transform:uppercase;
    font-size:.72rem; letter-spacing:.07em; font-weight:700; padding:.35rem .5rem; }
.cx-cat-row .cx-cat-n { font-weight:600; opacity:.75; }
.shop-item { display:flex; align-items:center; gap:.75rem; padding:.6rem .25rem; min-height:56px;
    border-bottom:1px solid var(--cx-line); transition:opacity .2s; }
.shop-item input[type=checkbox] { width:1.55rem; height:1.55rem; margin:0; flex:0 0 auto;
    accent-color:var(--cx-save); cursor:pointer; }
.shop-item .shop-thumb { width:40px; height:40px; flex:0 0 auto; border-radius:8px; background:#fff;
    object-fit:contain; padding:2px; border:1px solid var(--cx-line); }
.shop-item .shop-name { flex:1; min-width:0; font-weight:600; color:var(--cx-ink); line-height:1.25; }
.shop-item .shop-price { text-align:right; white-space:nowrap; font-weight:700; font-family:var(--cx-display); color:var(--cx-ink); }
.shop-item .shop-price .loy { display:block; font-size:.74rem; font-weight:700; color:var(--cx-save); }
.shop-item.bought { opacity:.5; }
.shop-item.bought .shop-name { text-decoration:line-through; color:var(--cx-muted); }

/* ---- Responsivita: tabulka jen desktop, karty jen mobil ---- */
@media (max-width:760px) {
    .cx-table-wrap { display:none; }
    .cx-cards { display:block; }
}

/* ---- Dark mode (Pixel apod. – tokeny --cx-* jsou globální v app.css) ---- */
@media (prefers-color-scheme: dark) {
    .cartx .expired-badge { filter:brightness(1.15); }
}
