/* Lumen — your custom overrides. Loaded after lumen.min.css and never overwritten by theme updates. */

/* Code blocks inside .lm-window on the landing page */
.lm-code {
  margin: 0;
  font-family: var(--font-mono);
  font-size: .8125rem;
  line-height: 1.75;
  white-space: pre;
}
.lm-code code { font-family: inherit; }

/* ---------------------------------------------------------------------------
   Mock terminal windows: traffic-light buttons
   --------------------------------------------------------------------------- */
.lm-window__dot:nth-of-type(1) { background: #ff5f57; }
.lm-window__dot:nth-of-type(2) { background: #febc2e; }
.lm-window__dot:nth-of-type(3) { background: #28c840; }

/* ---------------------------------------------------------------------------
   Prism (public/css/prism.css, Okaidia) inside windows and cards:
   keep Lumen's surface instead of Prism's own background, and hide the plugin toolbar.
   --------------------------------------------------------------------------- */
.lm-window pre[class*="language-"],
.lm-window code[class*="language-"] {
  background: transparent;
  text-shadow: none;
  margin: 0;
}
.lm-window pre[class*="language-"] { padding: 1.25rem; font-size: .8125rem; line-height: 1.75; }
.lm-window div.code-toolbar > .toolbar,
.lm-card div.code-toolbar > .toolbar { display: none; }

.lm-card pre[class*="language-"] {
  background: rgba(var(--lm-bg-dark-rgb), .55);
  text-shadow: none;
  margin: 0 0 1rem;
  padding: .75rem 1rem;
  border-radius: .5rem;
  font-size: .8125rem;
}
.lm-card code[class*="language-"] { background: transparent; text-shadow: none; }

/* ---------------------------------------------------------------------------
   Scrolling feature marquee
   --------------------------------------------------------------------------- */
.lm-ticker {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.lm-ticker__track {
  display: flex;
  gap: .75rem;
  width: max-content;
  animation: lm-ticker 70s linear infinite;
}
.lm-ticker:hover .lm-ticker__track { animation-play-state: paused; }
.lm-ticker .lm-beam-badge { flex: none; }
@keyframes lm-ticker {
  to { transform: translateX(calc(-50% - .375rem)); }
}
@media (prefers-reduced-motion: reduce) {
  .lm-ticker { -webkit-mask-image: none; mask-image: none; }
  .lm-ticker__track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; }
  .lm-ticker__track [aria-hidden="true"] { display: none; }
}

/* ---------------------------------------------------------------------------
   Comparison table
   --------------------------------------------------------------------------- */
.lm-compare-wrap {
  overflow-x: auto;
  border: 1px solid rgba(var(--lm-surface-2-rgb), .6);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(var(--lm-surface-rgb), .55), rgba(var(--lm-bg-dark-rgb), .6));
  box-shadow: 0 10px 40px -12px rgba(var(--lm-bg-dark-rgb), .8);
}
.lm-compare { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; font-size: .9rem; text-align: left; }
.lm-compare thead th {
  padding: 1rem 1.25rem;
  font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--lm-muted);
  background: rgba(var(--lm-bg-dark-rgb), .55);
  border-bottom: 1px solid rgba(var(--lm-surface-2-rgb), .7);
}
.lm-compare tbody th,
.lm-compare tbody td {
  padding: 1rem 1.25rem;
  vertical-align: top;
  line-height: 1.5;
  border-bottom: 1px solid rgba(var(--lm-surface-2-rgb), .35);
}
.lm-compare tbody tr:last-child th,
.lm-compare tbody tr:last-child td { border-bottom: 0; }
.lm-compare tbody th { width: 17%; font-weight: 600; color: var(--lm-muted); }
.lm-compare tbody tr:hover td,
.lm-compare tbody tr:hover th { background: rgba(var(--lm-surface-2-rgb), .18); }
/* Rhapsody column */
.lm-compare thead th:nth-child(2) { color: var(--lm-primary-light); background: rgba(var(--lm-primary-rgb), .14); box-shadow: inset 0 2px 0 var(--lm-primary); }
.lm-compare tbody td:nth-child(2) { color: var(--lm-title); background: rgba(var(--lm-primary-rgb), .07); }

/* ---------------------------------------------------------------------------
   Navbar: logo image and search
   --------------------------------------------------------------------------- */
.lm-logo__img { display: block; height: 2.5rem; width: auto; }

.lm-search { position: relative; width: 100%; }
.lm-search__icon { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--lm-muted); pointer-events: none; width: 1rem; height: 1rem; }
.lm-search .lm-input { text-overflow: ellipsis; padding-left: 2.25rem; padding-top: .5rem; padding-bottom: .5rem; font-size: .875rem; }
@media (min-width: 1200px) { .lm-search { width: 11rem; flex: none; } }
.lm-search__results {
  position: absolute; z-index: 60; top: calc(100% + .5rem); right: 0; left: 0; min-width: 20rem;
  margin: 0; padding: .375rem; list-style: none; max-height: 24rem; overflow-y: auto;
  background: var(--lm-bg-dark); border: 1px solid rgba(var(--lm-surface-2-rgb), .8); border-radius: .75rem;
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, .7);
}
@media (min-width: 1200px) { .lm-search__results { left: auto; } }
.lm-search__results[hidden] { display: none; }
.lm-search__item a { display: block; padding: .5rem .75rem; border-radius: .5rem; color: var(--lm-content); text-decoration: none; }
.lm-search__item a:hover, .lm-search__item.is-active a { background: rgba(var(--lm-primary-rgb), .14); color: var(--lm-title); }
.lm-search__name { display: block; font-weight: 600; color: var(--lm-title); font-size: .875rem; }
.lm-search__meta { display: block; font-size: .75rem; color: var(--lm-muted); }
.lm-search__empty { padding: .75rem; font-size: .875rem; color: var(--lm-muted); }

/* Narrow desktops (1200-1399px): keep the navbar on one line */
@media (min-width: 1200px) and (max-width: 1399px) {
  .lm-logo > span { display: none; }
  .lm-search { width: 9rem; }
}

/* Navbar tools: never let the buttons stretch on desktop */
@media (min-width: 1200px) {
  .lm-menu__tools { flex: none; flex-wrap: nowrap; }
  .lm-menu__tools .lm-btn { width: auto; flex: none; white-space: nowrap; }
}

/* Primary buttons: a touch darker so white text has better contrast (about 4.2:1, was 2.5:1) */
.lm-btn--primary {
  --btn-bg: #0e8a7e;
  background-color: #0e8a7e;
  color: #fff;
}
.lm-btn--primary:hover { background-color: #0b6f66; }

/* ===========================================================================
   Marketplace (categories, category listing, item pages, checkout, submit)
   Self-contained .mk-* classes built on Lumen tokens, so no Tailwind rebuild is needed.
   =========================================================================== */
.mk-page { padding-top: calc(var(--lm-menubar-height) + 3rem); padding-bottom: 4.5rem; }
.mk-section { padding-top: 1rem; padding-bottom: 4.5rem; }

.mk-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.25rem; font-size: .8125rem; color: var(--lm-muted); }
.mk-crumbs a { color: var(--lm-content); transition: color .2s; }
.mk-crumbs a:hover { color: var(--lm-title); }
.mk-crumbs [aria-hidden="true"] { opacity: .5; }

/* Card grid */
.mk-grid { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px)  { .mk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px)  { .mk-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.mk-tile {
  display: flex; flex-direction: column; gap: .5rem; height: 100%; padding: 1.5rem;
  border-radius: 1rem; text-decoration: none; color: inherit;
  background: linear-gradient(180deg, rgba(var(--lm-surface-rgb), .45), rgba(var(--lm-bg-rgb), .4));
  border: 1px solid rgba(var(--lm-surface-2-rgb), .5);
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.mk-tile:hover { border-color: rgba(var(--lm-primary-rgb), .55); transform: translateY(-3px); box-shadow: 0 14px 40px -16px rgba(var(--lm-primary-rgb), .35); }
.mk-tile__top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .5rem; }
.mk-tile__title { margin: 0; font-size: 1.125rem; font-weight: 600; color: var(--lm-title); }
.mk-tile__text { flex: 1; margin: 0; font-size: .875rem; line-height: 1.55; color: var(--lm-content); }
.mk-tile__foot { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .75rem; padding-top: .875rem; border-top: 1px solid rgba(var(--lm-surface-2-rgb), .35); font-size: .8125rem; color: var(--lm-muted); }
.mk-tile__foot strong { font-weight: 600; color: var(--lm-title); }
.mk-count { padding: .125rem .625rem; font-size: .75rem; font-weight: 600; color: var(--lm-primary-light); background: rgba(var(--lm-primary-rgb), .12); border: 1px solid rgba(var(--lm-primary-rgb), .3); border-radius: 99rem; }
.mk-empty { padding: 2rem; text-align: center; color: var(--lm-content); border: 1px dashed rgba(var(--lm-surface-2-rgb), .7); border-radius: 1rem; }

/* Trust tiers */
.mk-tier { display: inline-flex; align-items: center; padding: .25rem .625rem; font-size: .6875rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; border: 1px solid; border-radius: 99rem; }
.mk-tier--official  { color: var(--lm-primary-light); background: rgba(var(--lm-primary-rgb), .14); border-color: rgba(var(--lm-primary-rgb), .45); }
.mk-tier--verified  { color: #c4b5fd; background: rgba(139, 92, 246, .14); border-color: rgba(139, 92, 246, .4); }
.mk-tier--community { color: #a7f3d0; background: rgba(32, 201, 151, .1); border-color: rgba(32, 201, 151, .35); }

/* Listing toolbar: filter chips + sort */
.mk-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(var(--lm-surface-2-rgb), .5); }
.mk-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.mk-chip { padding: .4375rem 1rem; font-size: .875rem; font-weight: 500; color: var(--lm-content); border: 1px solid rgba(var(--lm-surface-2-rgb), .7); border-radius: 99rem; transition: all .2s; }
.mk-chip:hover { color: var(--lm-title); border-color: rgba(var(--lm-primary-rgb), .6); }
.mk-chip.is-active { color: var(--lm-primary-light); background: rgba(var(--lm-primary-rgb), .14); border-color: rgba(var(--lm-primary-rgb), .6); }
.mk-sort { display: flex; align-items: center; gap: .625rem; margin: 0; }
.mk-sort .lm-label { margin: 0; color: var(--lm-muted); }
.mk-sort .lm-select { width: auto; padding-top: .5rem; padding-bottom: .5rem; }

/* Item header */
.mk-item-head { max-width: 46rem; }
.mk-item-head h1 { font-size: clamp(2rem, 4.5vw, 3rem); letter-spacing: -.02em; margin: 1rem 0; }
.mk-tagrow { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.mk-tagrow__cat { font-size: .8125rem; color: var(--lm-muted); }
.mk-lead { margin: 0 0 1.25rem; font-size: 1.0625rem; line-height: 1.65; color: var(--lm-content); }
.mk-byline { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; margin-bottom: 1.75rem; font-size: .875rem; color: var(--lm-muted); }
.mk-byline strong { font-weight: 600; color: var(--lm-title); }
.mk-byline > * + *::before { content: ""; display: inline-block; width: 4px; height: 4px; margin-right: 1.25rem; vertical-align: middle; border-radius: 50%; background: var(--lm-surface-2); }
.mk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 3rem; }
.mk-actions .lm-btn { gap: .5rem; }
.mk-actions__note { font-size: .875rem; color: var(--lm-muted); }
.mk-install { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8125rem; }
.mk-heart--on { color: var(--lm-danger); }

/* Item body */
.mk-split { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) { .mk-split { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 3rem; } }
.mk-stack > * + * { margin-top: 2.5rem; }
.mk-h2 { margin: 0 0 1rem; font-size: 1.25rem; letter-spacing: -.01em; }
.mk-copy > * + * { margin-top: 1rem; }
.mk-copy p { margin: 0; font-size: .9375rem; line-height: 1.75; color: var(--lm-content); }

.mk-shots { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .mk-shots { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.mk-shot { position: relative; display: block; aspect-ratio: 16 / 9; padding: 0; overflow: hidden; cursor: zoom-in; background: rgba(var(--lm-bg-dark-rgb), .6); border: 1px solid rgba(var(--lm-surface-2-rgb), .6); border-radius: .75rem; transition: border-color .2s, transform .2s; }
.mk-shot:hover { border-color: rgba(var(--lm-primary-rgb), .6); transform: translateY(-2px); }
.mk-shot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mk-shots-inline { display: flex; flex-wrap: wrap; gap: 1rem; }
.mk-shots-inline img { height: 10rem; width: auto; object-fit: cover; border: 1px solid rgba(var(--lm-surface-2-rgb), .6); border-radius: .75rem; }

/* Meta sidebar */
.mk-meta { padding: 1.5rem; background: linear-gradient(180deg, rgba(var(--lm-surface-rgb), .45), rgba(var(--lm-bg-rgb), .4)); border: 1px solid rgba(var(--lm-surface-2-rgb), .5); border-radius: 1rem; }
.mk-meta > * + * { margin-top: 1.25rem; }
.mk-meta dt { margin: 0 0 .25rem; font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--lm-muted); }
.mk-meta dd { margin: 0; font-size: .9375rem; color: var(--lm-title); word-break: break-word; }
.mk-meta__tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.mk-meta__tag { padding: .1875rem .625rem; font-size: .75rem; color: var(--lm-content); border: 1px solid rgba(var(--lm-surface-2-rgb), .7); border-radius: 99rem; }

/* Lightbox */
.mk-lightbox { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(var(--lm-bg-dark-rgb), .94); backdrop-filter: blur(6px); }
.mk-lightbox__inner { width: 100%; max-width: 56rem; }
.mk-lightbox img { display: block; width: 100%; border: 1px solid rgba(var(--lm-surface-2-rgb), .7); border-radius: 1rem; }
.mk-lightbox__caption { margin: 1rem 0 0; text-align: center; font-size: .875rem; color: var(--lm-content); }
.mk-lightbox__btn { position: absolute; display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0; color: var(--lm-title); background: rgba(var(--lm-surface-rgb), .8); border: 1px solid rgba(var(--lm-surface-2-rgb), .8); border-radius: 50%; transition: border-color .2s; }
.mk-lightbox__btn:hover { border-color: rgba(var(--lm-primary-rgb), .7); }
.mk-lightbox__btn--close { top: 1.5rem; right: 1.5rem; }
.mk-lightbox__btn--prev { left: 1.5rem; top: 50%; transform: translateY(-50%); }
.mk-lightbox__btn--next { right: 1.5rem; top: 50%; transform: translateY(-50%); }

/* Checkout */
.mk-checkout { max-width: 28rem; margin-inline: auto; }
.mk-checkout__head { margin-bottom: 2rem; text-align: center; }
.mk-checkout__head h1 { margin: .75rem 0 .25rem; font-size: 1.75rem; }
.mk-checkout__price { margin: 0; font-size: 2.5rem; font-weight: 600; letter-spacing: -.02em; color: var(--lm-title); }
.mk-card-element { padding: .75rem .875rem; background: rgba(var(--lm-bg-dark-rgb), .6); border: 1px solid rgba(var(--lm-surface-2-rgb), .7); border-radius: .625rem; transition: border-color .2s, box-shadow .2s; }
.mk-card-element.StripeElement--focus { border-color: rgba(var(--lm-primary-rgb), .8); box-shadow: 0 0 0 3px rgba(var(--lm-primary-rgb), .2); }
.mk-card-element.StripeElement--invalid { border-color: rgba(240, 97, 109, .7); }
.mk-secure { display: flex; flex-direction: column; align-items: center; gap: .75rem; margin-top: 1.5rem; text-align: center; font-size: .8125rem; color: var(--lm-muted); }
.mk-secure img { max-width: 12rem; height: auto; }
.mk-back { display: block; margin-top: 1.5rem; text-align: center; font-size: .875rem; }
.mk-code-inline { padding: .125rem .375rem; font-size: .8125rem; color: var(--lm-primary-light); background: rgba(var(--lm-bg-dark-rgb), .7); border-radius: .375rem; }

/* Submit form */
.mk-form { display: grid; gap: 1.5rem; max-width: 42rem; }
.mk-form-row { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .mk-form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mk-choice-row { display: flex; gap: .75rem; }
.mk-choice { flex: 1; padding: .75rem 1rem; text-align: center; font-size: .9375rem; font-weight: 500; color: var(--lm-content); cursor: pointer; background: rgba(var(--lm-bg-dark-rgb), .5); border: 1px solid rgba(var(--lm-surface-2-rgb), .7); border-radius: .75rem; transition: all .2s; }
.mk-choice:hover { color: var(--lm-title); }
.mk-choice:has(input:checked) { color: var(--lm-primary-light); background: rgba(var(--lm-primary-rgb), .14); border-color: rgba(var(--lm-primary-rgb), .65); }
.mk-choice:has(input:focus-visible) { outline: 2px solid var(--lm-primary-light); outline-offset: 2px; }
.mk-choice input { position: absolute; opacity: 0; pointer-events: none; }
.mk-panel { display: grid; gap: 1.25rem; padding: 1.25rem; background: rgba(var(--lm-surface-rgb), .35); border: 1px solid rgba(var(--lm-surface-2-rgb), .5); border-radius: 1rem; }
.mk-checkline { display: flex; align-items: center; gap: .625rem; font-size: .9375rem; font-weight: 500; color: var(--lm-title); cursor: pointer; }
.mk-opt { font-weight: 400; color: var(--lm-muted); }
.mk-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.mk-file { width: 100%; font-size: .875rem; color: var(--lm-content); }
.mk-file::file-selector-button { margin-right: 1rem; padding: .5rem 1rem; font: inherit; font-weight: 600; color: #fff; cursor: pointer; background: #0e8a7e; border: 0; border-radius: 99rem; transition: background-color .2s; }
.mk-file::file-selector-button:hover { background: #0b6f66; }
.mk-lead-text { max-width: 42rem; }
.lm-pagination-wrap { display: flex; justify-content: center; margin-top: 3rem; }
