/* /styleguide gallery and the sample pages rendered inside each shell (development/test only). */
@layer pages {
  .sg {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 1240px;
    margin: 0 auto;
    padding: 40px 32px 80px;
  }

  .sg-intro { display: flex; flex-direction: column; gap: 10px; }
  .sg-intro__links { display: flex; flex-wrap: wrap; gap: 8px; }

  .sg-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-top: 28px;
    border-top: 1px solid var(--color-hairline);
  }
  .sg-section__title { font-size: 22px; }
  .sg-label { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-neutral-700); }

  .sg-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
  .sg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
  .sg-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }

  .sg-swatches { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 6px; }
  .sg-swatch { height: 44px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--color-hairline); }
  .sg-swatch--bg { background: var(--color-bg); }
  .sg-swatch--surface { background: var(--color-surface); }
  .sg-swatch--text { background: var(--color-text); }
  .sg-swatch--primary { background: var(--color-primary); }
  .sg-swatch--blue { background: var(--color-blue); }
  .sg-swatch--err { background: var(--color-err); }
  .sg-swatch--warn { background: var(--color-warn); }
  .sg-swatch--n100 { background: var(--color-neutral-100); } .sg-swatch--n200 { background: var(--color-neutral-200); }
  .sg-swatch--n300 { background: var(--color-neutral-300); } .sg-swatch--n400 { background: var(--color-neutral-400); }
  .sg-swatch--n500 { background: var(--color-neutral-500); } .sg-swatch--n600 { background: var(--color-neutral-600); }
  .sg-swatch--n700 { background: var(--color-neutral-700); } .sg-swatch--n800 { background: var(--color-neutral-800); }
  .sg-swatch--n900 { background: var(--color-neutral-900); }
  .sg-swatch--a100 { background: var(--color-accent-100); } .sg-swatch--a200 { background: var(--color-accent-200); }
  .sg-swatch--a300 { background: var(--color-accent-300); } .sg-swatch--a400 { background: var(--color-accent-400); }
  .sg-swatch--a500 { background: var(--color-accent-500); } .sg-swatch--a600 { background: var(--color-accent-600); }
  .sg-swatch--a700 { background: var(--color-accent-700); } .sg-swatch--a800 { background: var(--color-accent-800); }
  .sg-swatch--a900 { background: var(--color-accent-900); }
  .sg-swatch--s100 { background: var(--color-accent-2-100); } .sg-swatch--s200 { background: var(--color-accent-2-200); }
  .sg-swatch--s300 { background: var(--color-accent-2-300); } .sg-swatch--s400 { background: var(--color-accent-2-400); }
  .sg-swatch--s500 { background: var(--color-accent-2-500); } .sg-swatch--s600 { background: var(--color-accent-2-600); }
  .sg-swatch--s700 { background: var(--color-accent-2-700); } .sg-swatch--s800 { background: var(--color-accent-2-800); }
  .sg-swatch--s900 { background: var(--color-accent-2-900); }

  .sg-type { display: flex; flex-direction: column; gap: 6px; }
  .sg-type__display { font-size: 54px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.05; }
  .sg-type__h1 { font-size: 40px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.05; }
  .sg-type__h2 { font-size: 26px; font-weight: 700; letter-spacing: -0.01em; }
  .sg-type__card { font-size: 18px; font-weight: 700; }
  .sg-type__body { font-size: 15px; }
  .sg-type__table { font-size: 13.5px; }
  .sg-type__meta { font-size: 12.5px; color: var(--color-neutral-700); }

  .sg-icons { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 8px; }
  .sg-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 14px 6px;
    border-radius: var(--radius-tile);
    background: var(--color-surface);
    font-size: 22px;
  }
  .sg-icon code { font-size: 11px; color: var(--color-neutral-700); }

  .sg-rail-preview { padding: 16px; border-radius: var(--radius-card); background: var(--color-accent-2-800); color: var(--color-accent-2-200); }
  .sg-banner-preview { overflow: hidden; border-radius: var(--radius-row); }
  .sg-banner-preview .imp-banner { position: static; }
  .sg-tabbar-preview .tabbar { position: static; max-width: 390px; padding-bottom: 8px; border-radius: var(--radius-card); }
  .sg-sheet-preview .sheet { position: static; max-width: 390px; padding-bottom: 18px; border-radius: var(--radius-card); }

  .sg-menu-demo { display: flex; justify-content: flex-end; max-width: 420px; min-height: 230px; }
  .sg-menu-demo .menu__panel { position: static; margin-top: 8px; }

  .sg-form { display: flex; flex-direction: column; gap: 16px; max-width: 620px; }
  .sg-card-narrow { max-width: 460px; }
  .sg-signature { max-width: 620px; }

  .sortable-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 54px;
    padding: 8px 16px;
    border-radius: var(--radius-row);
    background: var(--color-surface);
  }
  .sortable-item.is-dragging { opacity: 0.5; }
  .sortable-item__handle { cursor: grab; }
  .sortable-item__pos { width: 20px; font-weight: 700; color: var(--color-neutral-700); }

  /* Sample list templates (what feature modules put in their own page CSS) */
  .sg-list--policies { --list-cols: minmax(0, 2.6fr) 84px 120px 120px minmax(0, 1.7fr) 210px; --list-cols-mobile: minmax(0, 1fr) auto; }
  .sg-list--documents { --list-cols: minmax(0, 1fr) 170px 64px 108px 140px 100px 100px 104px 36px; }
  .sg-list--users { --list-cols: 36px minmax(0, 1.3fr) minmax(0, 1.6fr) 110px 170px 120px 120px 130px; }

  .sg-cards-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  .sg-action-card { min-height: 252px; padding: 20px; gap: 14px; }
  .sg-action-card--overdue { background: var(--color-err-soft); }
  .sg-action-card__top { display: flex; align-items: center; justify-content: space-between; }
  .sg-action-card__top > .icon,
  .sg-action-card__top > span:not(.chip) > .icon { font-size: 20px; }
  .sg-action-card__title { font-size: 19px; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; }
  .sg-action-card__meta { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--color-neutral-800); }
  .sg-action-card__cta { margin-top: auto; display: flex; }
  .sg-action-card__cta .btn { flex: 1; }

  .sg-home-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: end; padding-top: 20px; }
  .sg-home-hero__left { display: flex; flex-direction: column; gap: 12px; }
  .sg-home-hero__date { font-size: 13.5px; font-weight: 600; color: var(--color-neutral-700); }

  .sg-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .sg-tile { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: var(--radius-card); background: var(--color-surface); }
  .sg-tile--err { background: var(--color-err-soft); }
  .sg-tile--warn { background: var(--color-warn-soft); }
  .sg-tile__label { font-size: 13.5px; font-weight: 700; }
  .sg-tile--err .sg-tile__label, .sg-tile--err .sg-tile__value { color: var(--color-err-text); }
  .sg-tile--warn .sg-tile__label, .sg-tile--warn .sg-tile__value { color: var(--color-warn-text); }
  .sg-tile__value { font-size: 46px; font-weight: 700; letter-spacing: -0.03em; line-height: 1; }
  .sg-tile__text { font-size: 13.5px; color: var(--color-neutral-800); }

  .sg-detail { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; align-items: start; }

  @media (max-width: 1023px) {
    /* Tablet: drop the two date columns rather than squeezing the chip column. */
    .sg-list--policies { --list-cols: minmax(0, 2fr) 60px minmax(0, 1.6fr) 190px; }
    .sg-list--policies > .list-header > :is(:nth-child(3), :nth-child(4)),
    .sg-list--policies > .list-row > :is(:nth-child(3), :nth-child(4)) { display: none; }
    .sg-cards-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sg-detail { grid-template-columns: minmax(0, 1fr); }
  }

  @media (max-width: 767px) {
    .sg { padding: 24px 16px 60px; gap: 28px; }
    .sg-grid--2, .sg-tiles, .sg-home-hero { grid-template-columns: minmax(0, 1fr); }
    .sg-cards-4 { grid-template-columns: minmax(0, 1fr); }
    .sg-action-card { min-height: 0; }
    .sg-swatches { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .sg-home-hero { gap: 16px; padding-top: 0; }
    .sg-type__display { font-size: 30px; line-height: 1.08; }
  }
}
