/* Foundation UI layer: canonical shared surfaces that extend tokens/theme/core.
   This file intentionally avoids redefining base button/input/modal/dropdown/alert
   primitives that already live in core.css + specialized modules. */

.kp-card--elevated {
  box-shadow: var(--k-shadow-lg);
}

.kp-card--accent {
  border-color: var(--k-border-accent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--k-primary) 18%, transparent), var(--k-shadow-md);
}

.kp-page-section {
  display: grid;
  gap: clamp(16px, 2vw, 22px);
}

.kp-page-stack {
  display: grid;
  gap: clamp(14px, 1.8vw, 20px);
}

.kp-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(14px, 2vw, 22px);
}

.kp-page-layout__header,
.kp-page-layout__main,
.kp-page-layout__sidebar {
  min-width: 0;
}

.kp-nav-link,
.kp-sidebar-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: var(--k-radius-xl);
  color: var(--k-text-secondary);
  transition: background var(--k-duration-fast), color var(--k-duration-fast), border-color var(--k-duration-fast);
}

.kp-nav-link:hover,
.kp-sidebar-link:hover,
.kp-nav-link[aria-current="page"],
.kp-sidebar-link[aria-current="page"],
.kp-sidebar-link.is-active,
.kp-nav-link.is-active {
  color: var(--k-text-primary);
  background: color-mix(in srgb, var(--k-primary-soft) 70%, transparent);
}

.kp-nav-link__badge,
.kp-sidebar-link__badge {
  margin-left: auto;
}

.kp-file-zone {
  display: grid;
  justify-items: center;
  gap: 10px;
  width: 100%;
  padding: 22px;
  border: 1px dashed var(--k-border-default);
  border-radius: var(--k-radius-2xl);
  background: var(--k-bg-card);
  color: var(--k-text-secondary);
  text-align: center;
  transition: border-color var(--k-duration-fast), background var(--k-duration-fast), box-shadow var(--k-duration-fast);
}

.kp-file-zone:focus-within {
  border-color: var(--k-border-accent);
  box-shadow: var(--k-ring-focus);
  outline: none;
}

@media (min-width: 1024px) {
  .kp-page-layout--with-sidebar {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    align-items: start;
  }
}

@media (max-width: 640px) {
  .kp-file-zone {
    border-radius: 20px;
    padding: 18px;
  }
}


/* Commerce shell canonical layer */
.market-shell__panel,.market-shell__filtercard,.shop-shell__card{background:var(--k-bg-card);border:1px solid var(--k-border-subtle)}
.kp-work.work-page,.market-shell,.shop-shell{max-width:min(1240px,100%);margin:0 auto}
.work-main,.market-shell__layout,.shop-shell__layout{align-items:start}
.market-shell__sidebar,.shop-shell__sidebar{display:flex;flex-direction:column;gap:16px}
.market-shell__panel,.shop-shell__card,.work-lb,.work-jobs-panel,.work-history-panel{border-radius:24px;box-shadow:var(--k-shadow-sm);overflow:hidden}
.market-shell__hero,.shop-shell__hero,.work-hero{position:relative;overflow:hidden;border:1px solid var(--k-border-subtle);border-radius:28px;background:linear-gradient(180deg,color-mix(in srgb,var(--k-surface-2) 92%, transparent),color-mix(in srgb,var(--k-surface-1) 94%, transparent));box-shadow:var(--k-shadow-md)}
.market-shell__stats,.shop-shell__stats,.work-hero__chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.market-shell__stats>div,.shop-shell__stats>div,.work-hero__chips>.work-chip{min-width:0}
.mkt__filters,.shp__filters,.work-lb__periods{overflow:auto hidden;scrollbar-width:thin}
.mkt__filters>*,.shp__filters>*,.work-lb__periods>*{flex:0 0 auto}
.mkt__grid,.shp__grid,.work-jobs{align-items:stretch}
.mkt__card,.shp__card,.work-job,.work-status__card,.work-status__empty,.work-lb__card{height:100%}
.mkt__myrow-info,.work-lb__login,.work-lb__val,.shp__card-name,.mkt__card-name,.work-job__title{min-width:0;overflow-wrap:anywhere}
.work-lb__grid,.work-status__actions,.mkt__nav,.shop-shell__departments{gap:12px}
@media (max-width: 1024px){.market-shell__layout,.shop-shell__layout,.work-main{grid-template-columns:1fr}.market-shell__sidebar,.shop-shell__sidebar{order:2}}
@media (max-width: 768px){.market-shell__hero,.shop-shell__hero,.work-hero{padding:20px}.market-shell__stats,.shop-shell__stats,.work-hero__chips{grid-template-columns:repeat(2,minmax(0,1fr))}.work-status__actions form,.market-shell__side .kp-btn,.shop-shell__side .kp-btn{width:100%}}
@media (max-width: 640px){.market-shell__stats,.shop-shell__stats,.work-hero__chips{grid-template-columns:1fr}.mkt__grid,.shp__grid{grid-template-columns:1fr}.mkt__myrow,.work-job{align-items:flex-start;flex-wrap:wrap}.mkt__card-acts,.work-status__actions{flex-direction:column}.mkt__btn,.shp__btn-buy,.work-job__btn{width:100%}}

/* Wave 3 module dedupe helpers — ownership lives here, not in page/module copies */
.kp-ads-preview_avatar img,
.kp-ads-public-card__avatar img,
.ads_public_avatar img,
.arena-avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kp-ads-sidecard__chips,
.kp-ads-studio__badges,
.kp-ads-google-card__chips,
.kp-ads-campaign_row_top,
.ads_badge_group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.kp-msg.is-mine {
  justify-content: flex-end;
}

.kp-msg.is-theirs {
  justify-content: flex-start;
}

