/* =========================================================
   MARKETPLACE — one feed, every item, and what it's worth.

   Reuses .lc / .lc-photo / .lc-body / .lc-meta / .lc-foot /
   .chip / .clock / .tagpill / .memory / .claimed from
   styles.css, and .twonum / .num from verdict.css, on purpose.
   Nothing here declares a new colour.
   ========================================================= */

/* ---- layout ---- */
.mk-layout{display:grid;grid-template-columns:264px 1fr;gap:34px;align-items:start}
.mk-rail{
  position:sticky;top:96px;max-height:calc(100vh - 120px);overflow-y:auto;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:20px;box-shadow:var(--sh-2);
}
.mk-main{min-width:0}

.mk-demo{
  display:flex;gap:14px;align-items:center;flex-wrap:wrap;
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);
  padding:14px 18px;margin-bottom:26px;font-size:.88rem;color:var(--ink-2);line-height:1.5;
}
.mk-demo span:not(.badge-demo){flex:1;min-width:220px}
.mk-demo.stress{background:var(--amber-soft);border-color:var(--amber-line);color:#734D08}

.mk-skip{position:absolute;left:-9999px}
.mk-skip:focus{
  position:static;display:inline-block;margin-bottom:14px;
  font-size:.86rem;font-weight:600;color:var(--urgent);
}

/* ---- bar ---- */
.mk-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.mk-search{flex:1;min-width:220px}
.mk-search .input{width:100%}
.mk-sortwrap{display:inline-flex;align-items:center;gap:9px;font-size:.84rem;color:var(--clay)}
.mk-sortwrap .input{padding:9px 12px;font-size:.87rem}
.mk-dense{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;overflow:hidden}
.mk-dbtn{
  padding:8px 15px;font-size:.83rem;font-weight:600;background:var(--card);
  color:var(--ink-2);border:0;transition:background .2s var(--ease),color .2s var(--ease);
}
.mk-dbtn.on{background:var(--ink);color:#fff}
.mk-sheet-open{display:none}

/* ---- rail chips ---- */
.mk-group{margin-bottom:22px}
.mk-group h5{
  font-family:var(--sans);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:800;color:var(--clay);margin:0 0 11px;
}
.mk-chips{display:flex;flex-wrap:wrap;gap:7px}
.mk-chip{
  display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;
  border:1px solid var(--line-2);background:var(--paper);font-size:.83rem;font-weight:500;
  color:var(--ink-2);transition:all .18s var(--ease);cursor:pointer;
}
.mk-chip:hover{border-color:var(--clay)}
.mk-chip.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
.mk-chip .n{font-variant-numeric:tabular-nums;font-size:.75rem;opacity:.62}
.mk-chip.zero{opacity:.38;cursor:default}
.mk-chip.zero:hover{border-color:var(--line-2)}

/* ---- pills / count ---- */
.mk-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.mk-pills:empty{display:none}
.mk-pill{
  display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;
  background:var(--paper-3);border:1px solid var(--line-2);font-size:.81rem;font-weight:600;
}
.mk-pill button{background:none;border:0;font-size:1rem;line-height:1;color:var(--clay);cursor:pointer}
.mk-pill button:hover{color:var(--urgent)}
.mk-count{font-size:.88rem;color:var(--clay);margin-bottom:20px;line-height:1.5}
.mk-count b{color:var(--ink);font-weight:700}
.mk-live{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---- grid ---- */
.mk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(282px,1fr));gap:22px}

/* One rule, unconditional. Skips layout and paint for off-screen cards,
   and it also silences the infinite .lc-photo::after shimmer on every
   off-screen card that lazy-loading means will never load. Browsers
   without support simply full-render — slower, never broken. */
.mk-card{content-visibility:auto;contain-intrinsic-size:auto 430px;position:relative}
@media print{.mk-card{content-visibility:visible}}

/* stretched link: one tab stop per card, a real href, real new-tab */
.mk-card .mk-t{color:inherit;text-decoration:none}
.mk-card .mk-t::after{content:"";position:absolute;inset:0;z-index:0}
.mk-card .lc-foot,.mk-card .lc-foot *{position:relative;z-index:1}
.mk-card .mk-t:focus-visible{outline:2px solid var(--urgent);outline-offset:3px}

.tagpill.gen{background:var(--amber)}

/* ---- price block: side by side always, even on a phone ---- */
.twonum.mk-num{grid-template-columns:1fr 1fr;gap:9px;margin:2px 0 0}
.twonum.mk-num .num{padding:11px 12px;border-radius:13px}
.twonum.mk-num .num .k{font-size:.575rem;letter-spacing:.1em;margin-bottom:6px}
.twonum.mk-num .num .v{font-size:1.02rem;margin-bottom:0;letter-spacing:-.025em}
/* verdict.css collapses .twonum to one column at 640px. Re-assert two
   here inside the SAME breakpoint — two money cells side by side is the
   whole point of the card and it fits at 282px. */
@media(max-width:640px){.twonum.mk-num{grid-template-columns:1fr 1fr}}

/* ---- compact density: ~7 items a screen instead of ~3 ---- */
.mk-grid.compact{grid-template-columns:1fr;gap:10px}
.mk-grid.compact .mk-card{flex-direction:row;contain-intrinsic-size:auto 128px}
.mk-grid.compact .lc-photo{
  width:132px;height:auto;min-height:104px;flex:none;border-bottom:0;
  border-right:1px solid var(--line);
}
.mk-grid.compact .lc-body{padding:12px 16px;gap:6px}
.mk-grid.compact .lc-body h4{font-size:1rem}
.mk-grid.compact .memory{display:none}
.mk-grid.compact .lc-foot .btn{font-size:.8rem}
.mk-grid.compact .twonum.mk-num .num{padding:7px 10px}
.mk-grid.compact .twonum.mk-num .num .v{font-size:.92rem}
.mk-grid.compact .clock{font-size:.68rem;padding:4px 9px;left:8px;top:8px}
.mk-grid.compact .tagpill{display:none}

/* ---- end / empty ---- */
.mk-sentinel{height:1px}
.mk-end{margin-top:32px;text-align:center}
.mk-end:empty{display:none}
.mk-endline{font-size:.9rem;color:var(--clay);max-width:520px;margin:0 auto;line-height:1.6}
.mk-none{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:34px;text-align:center;grid-column:1/-1;
}
.mk-none h3{margin-bottom:10px}
.mk-none p{color:var(--ink-2);max-width:460px;margin:0 auto 20px;line-height:1.6}
.mk-none .btn{margin:0 5px 6px}

/* ---- mobile: the rail becomes a sheet at the modal tier ---- */
.mk-sheet-bg{display:none}
@media(max-width:980px){
  .mk-layout{grid-template-columns:1fr;gap:0}
  .mk-sheet-open{display:inline-flex;margin-bottom:14px}
  .mk-rail{
    position:fixed;inset:auto 0 0 0;max-height:78vh;z-index:200;
    border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--sh-4);
    transform:translateY(101%);transition:transform .32s var(--ease);padding:22px 22px 92px;
  }
  .mk-rail.open{transform:none}
  .mk-sheet-bg{
    display:block;position:fixed;inset:0;z-index:199;background:rgba(23,19,16,.42);
    opacity:0;pointer-events:none;transition:opacity .3s var(--ease);
  }
  .mk-sheet-bg.on{opacity:1;pointer-events:auto}
  .mk-sheet-done{position:absolute;left:22px;right:22px;bottom:22px;width:auto}
}
@media(prefers-reduced-motion:reduce){
  .mk-rail{transition:none}
}
