/*
 * A rung declares the padding OUTRIGHT, because a custom property the same rule
 * read would INHERIT into every nested `Box` that passed nothing.
 * `paddingX`/`paddingY` are axis LONGHANDS declared after the shorthand, so one
 * axis overrides `padding` by declaration order rather than specificity.
 *
 * A COLUMN with stretched children, which is what every container part of the
 * kit owes its own. `Text` is `display: inline`, so
 * only a flex or grid parent blockifies it: under `display: block` two sibling
 * `Text`s share a line and a child's `align` and `width` do nothing at all —
 * silently, since the markup is valid either way. `css_contract.test.ts` reads
 * the rule of every part the contract registry names a container.
 */
@layer theme, base, lotics, components, utilities;
@layer lotics.tokens, lotics.reset, lotics.components;

@layer lotics.components {
  .lotics-box {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
  }

  .lotics-box[data-padding="none"] {
    padding: 0;
  }
  .lotics-box[data-padding="2"] {
    padding: var(--lotics-space-2);
  }
  .lotics-box[data-padding="4"] {
    padding: var(--lotics-space-4);
  }
  .lotics-box[data-padding="6"] {
    padding: var(--lotics-space-6);
  }
  .lotics-box[data-padding="8"] {
    padding: var(--lotics-space-8);
  }
  .lotics-box[data-padding="10"] {
    padding: var(--lotics-space-10);
  }
  .lotics-box[data-padding="12"] {
    padding: var(--lotics-space-12);
  }
  .lotics-box[data-padding="16"] {
    padding: var(--lotics-space-16);
  }
  .lotics-box[data-padding="24"] {
    padding: var(--lotics-space-24);
  }
  .lotics-box[data-padding="32"] {
    padding: var(--lotics-space-32);
  }
  .lotics-box[data-padding="48"] {
    padding: var(--lotics-space-48);
  }

  .lotics-box[data-paddingx="none"] {
    padding-inline: 0;
  }
  .lotics-box[data-paddingx="2"] {
    padding-inline: var(--lotics-space-2);
  }
  .lotics-box[data-paddingx="4"] {
    padding-inline: var(--lotics-space-4);
  }
  .lotics-box[data-paddingx="6"] {
    padding-inline: var(--lotics-space-6);
  }
  .lotics-box[data-paddingx="8"] {
    padding-inline: var(--lotics-space-8);
  }
  .lotics-box[data-paddingx="10"] {
    padding-inline: var(--lotics-space-10);
  }
  .lotics-box[data-paddingx="12"] {
    padding-inline: var(--lotics-space-12);
  }
  .lotics-box[data-paddingx="16"] {
    padding-inline: var(--lotics-space-16);
  }
  .lotics-box[data-paddingx="24"] {
    padding-inline: var(--lotics-space-24);
  }
  .lotics-box[data-paddingx="32"] {
    padding-inline: var(--lotics-space-32);
  }
  .lotics-box[data-paddingx="48"] {
    padding-inline: var(--lotics-space-48);
  }

  .lotics-box[data-paddingy="none"] {
    padding-block: 0;
  }
  .lotics-box[data-paddingy="2"] {
    padding-block: var(--lotics-space-2);
  }
  .lotics-box[data-paddingy="4"] {
    padding-block: var(--lotics-space-4);
  }
  .lotics-box[data-paddingy="6"] {
    padding-block: var(--lotics-space-6);
  }
  .lotics-box[data-paddingy="8"] {
    padding-block: var(--lotics-space-8);
  }
  .lotics-box[data-paddingy="10"] {
    padding-block: var(--lotics-space-10);
  }
  .lotics-box[data-paddingy="12"] {
    padding-block: var(--lotics-space-12);
  }
  .lotics-box[data-paddingy="16"] {
    padding-block: var(--lotics-space-16);
  }
  .lotics-box[data-paddingy="24"] {
    padding-block: var(--lotics-space-24);
  }
  .lotics-box[data-paddingy="32"] {
    padding-block: var(--lotics-space-32);
  }
  .lotics-box[data-paddingy="48"] {
    padding-block: var(--lotics-space-48);
  }
}
