
@keyframes siteatt {
0% {
      transform: translateX(-100%);
}
100% {
      transform: translateX(300%);
}
}

  /* UI-1171: the card grid and the card's own inner grid answer the width of this box, not the
     window: the same picker sits in a 1104px sheet, the Deploy wizard and the Plan tab. The
     container is NAMED, so the Plan tab's own @container body is never the one that answers,
     and the layout is grid areas, which is why it lives here and not in utility classes.

     Default (below 36rem): a row per plan, "radio name price" on the first line, the tagline
     and the storage under the name, and only the chosen row opens its list. */
.swp[data-v-01eba0c4] {
    container: swp / inline-size;
}
.swp[data-v-01eba0c4] .swp-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.25rem;
}
.swp[data-v-01eba0c4] .swp-field {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
      'radio name price'
      '. tag tag'
      '. spec spec'
      '. diffs diffs';
    column-gap: 0.625rem;
    row-gap: 0;
    align-items: start;
    align-content: start;
}
  /* UI-1171: the drawn padding, not FramePanel's default 16px: 14px on a row. */
.swp[data-v-01eba0c4] .swp-card {
    padding: 0.875rem;
}
.swp[data-v-01eba0c4] .swp-radio {
    grid-area: radio;
    margin-top: 4px;
}
.swp[data-v-01eba0c4] .swp-name {
    grid-area: name;
    min-width: 0;
    min-height: 1.5rem;
}
.swp[data-v-01eba0c4] .swp-badges {
    margin-inline-start: 0;
}
.swp[data-v-01eba0c4] .swp-price {
    grid-area: price;
    align-self: center;
}
.swp[data-v-01eba0c4] .swp-amount {
    font-size: 1.125rem;
    line-height: 1.5rem;
    letter-spacing: -0.01em;
}
.swp[data-v-01eba0c4] .swp-tag {
    grid-area: tag;
    margin-top: 0.125rem;
}
.swp[data-v-01eba0c4] .swp-spec {
    grid-area: spec;
    margin: 0;
}
.swp[data-v-01eba0c4] .swp-diffs {
    grid-area: diffs;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}
.swp[data-v-01eba0c4] .swp-card:not([data-checked]) .swp-diffs {
    display: none;
}

  /* Cards: the price under the name at its full size, the storage ruled off, every list open. */
@container swp (min-width: 36rem) {
.swp[data-v-01eba0c4] .swp-cards {
      grid-template-columns: repeat(2, minmax(0, 1fr));
}
.swp[data-v-01eba0c4] .swp-card {
      padding-block: 1rem 1.125rem;
      padding-inline: 1.125rem;
}
.swp[data-v-01eba0c4] .swp-field {
      grid-template-columns: auto minmax(0, 1fr);
      grid-template-areas:
        'radio name'
        'price price'
        'tag tag'
        'spec spec'
        'diffs diffs';
}
.swp[data-v-01eba0c4] .swp-badges {
      margin-inline-start: auto;
}
.swp[data-v-01eba0c4] .swp-price {
      align-self: start;
      margin-top: 0.875rem;
}
.swp[data-v-01eba0c4] .swp-amount {
      font-size: 1.875rem;
      line-height: 1;
      letter-spacing: -0.025em;
}
.swp[data-v-01eba0c4] .swp-tag {
      margin-top: 0.375rem;
}
.swp[data-v-01eba0c4] .swp-spec {
      margin-top: 0.875rem;
      padding-top: 0.875rem;
      border-top: 1px solid var(--color-border);
}
.swp[data-v-01eba0c4] .swp-diffs {
      padding-top: 0;
      border-top: 0;
}
.swp[data-v-01eba0c4] .swp-card:not([data-checked]) .swp-diffs {
      display: flex;
}
}

  /* Four side by side, so the four prices are read against each other. */
@container swp (min-width: 52rem) {
.swp[data-v-01eba0c4] .swp-cards {
      grid-template-columns: repeat(4, minmax(0, 1fr));
}
}

  /* a chip inside the prompt: the setting's name, then its answer quieter, then its chevron */
.wcs-chip[data-v-80294465] {
    display: inline-flex;
    align-items: center;
    gap: 0.3125rem;
    height: 1.75rem;
    padding-inline: 0.625rem 0.5rem;
    border-radius: 9999px;
    background: var(--background);
    box-shadow: inset 0 0 0 1px var(--border);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--foreground);
    white-space: nowrap;
    outline: none;
}
.wcs-chip[data-v-80294465]:hover,
  .wcs-chip[data-state='open'][data-v-80294465] {
    background: var(--accent);
}
.wcs-chip[data-v-80294465]:focus-visible {
    box-shadow:
      inset 0 0 0 1px var(--ring),
      0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
}
.wcs-chip__v[data-v-80294465] {
    font-weight: 400;
    color: var(--muted-foreground);
}

  /* a road or a draft: its tile, two lines, then a chevron or the pick's check; the whole row is the button */
.wcs-row[data-v-80294465],
  .wcs-draft[data-v-80294465] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    width: 100%;
    min-height: 3.125rem;
    padding-inline: 0.25rem 0.375rem;
    border-radius: 0.625rem;
    text-align: start;
    outline: none;
}
.wcs-row[data-v-80294465]:hover,
  .wcs-row[data-state='open'][data-v-80294465] {
    background: color-mix(in oklab, var(--accent) 70%, transparent);
}
.wcs-row--drop[data-v-80294465] {
    background: color-mix(in oklab, var(--primary) 8%, var(--background));
    box-shadow: inset 0 0 0 1px var(--primary);
}
.wcs-draft[data-v-80294465] {
    min-height: 3.25rem;
    padding-inline: 0.5rem 0.625rem;
}
.wcs-draft[data-v-80294465]:hover {
    background: color-mix(in oklab, var(--accent) 70%, transparent);
}
.wcs-draft--on[data-v-80294465],
  .wcs-draft--on[data-v-80294465]:hover {
    background: var(--muted);
}
.wcs-row[data-v-80294465]:focus-visible,
  .wcs-draft[data-v-80294465]:focus-visible {
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
}
.wcs-tile[data-v-80294465] {
    flex: none;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5625rem;
    background: var(--muted);
    color: var(--foreground);
}
.wcs-draft--on .wcs-tile[data-v-80294465] {
    background: var(--background);
}
.wcs-row__text[data-v-80294465] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}
.wcs-row__text > b[data-v-80294465] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9375rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--foreground);
    white-space: nowrap;
}
.wcs-row__text > span[data-v-80294465] {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--muted-foreground);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

  /* the preview: a fixed share of the screen in the window, the whole screen when the person asks for it */
.wcs-pv__frame[data-v-80294465] {
    height: min(24rem, 52vh);
}
.wcs-pv[data-v-80294465]:fullscreen {
    border: 0;
    border-radius: 0;
}
.wcs-pv:fullscreen .wcs-pv__frame[data-v-80294465] {
    height: auto;
    flex: 1 1 auto;
}

  /* the canvas over the preview: the part under the pointer (Select, Edit) with its name, and the part being edited */
.wcs-box[data-v-80294465] {
    position: absolute;
    border-radius: 0.25rem;
    transition:
      inset 75ms ease-out,
      width 75ms ease-out,
      height 75ms ease-out;
}
.wcs-box--hover[data-v-80294465] {
    box-shadow: inset 0 0 0 2px var(--primary);
    background: color-mix(in oklab, var(--primary) 10%, transparent);
}
.wcs-box--sel[data-v-80294465] {
    box-shadow: inset 0 0 0 2px var(--success);
}
.wcs-box__tag[data-v-80294465] {
    position: absolute;
    inset-block-end: 100%;
    inset-inline-start: 0;
    margin-block-end: 0.25rem;
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border-radius: 0.375rem;
    padding-inline: 0.375rem;
    background: var(--primary);
    color: var(--primary-foreground);
    font-size: 0.875rem;
    line-height: 1.375rem;
    font-weight: 500;
}
  /* a part at the top of the page: its name inside the box, not cut off above the frame */
.wcs-box__tag--in[data-v-80294465] {
    inset-block-end: auto;
    inset-block-start: 0.25rem;
    inset-inline-start: 0.25rem;
    margin: 0;
}
@media (prefers-reduced-motion: reduce) {
.wcs-box[data-v-80294465] {
      transition: none;
}
}
  /* a colour in the edit bar: the swatch is the button, the browser's own picker behind it */
.wcs-swatch[data-v-80294465] {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    cursor: pointer;
}
.wcs-swatch[data-v-80294465]:hover {
    background: var(--accent);
}
.wcs-swatch[data-v-80294465]:focus-within {
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
}
.wcs-swatch__fill[data-v-80294465] {
    width: 1rem;
    height: 1rem;
    border-radius: 0.25rem;
    box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--foreground) 20%, transparent);
}
  /* no background of its own: an empty swatch, its edge dashed */
.wcs-swatch__fill--none[data-v-80294465] {
    box-shadow: none;
    border: 1px dashed var(--muted-foreground);
    background: var(--background);
}

  /* F's folded row: a label column, one line, a chevron at the end; the whole row is the button */
.wc-row[data-v-3fc1518d] {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) 1rem;
    column-gap: 0.875rem;
    align-items: center;
    min-height: 2.5rem;
    min-width: 0;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    text-align: start;
    outline: none;
}
@container wc (min-width: 36rem) {
.wc-row[data-v-3fc1518d] {
      grid-template-columns: 5.5rem minmax(0, 1fr) 1rem;
}
}
.wc-row:hover .wc-row__value[data-v-3fc1518d] {
    text-decoration-line: underline;
    text-decoration-color: var(--border);
    text-underline-offset: 3px;
}
.wc-row[data-v-3fc1518d]:focus-visible {
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent);
}
.wc-row__label[data-v-3fc1518d] {
    font-weight: 500;
    color: var(--muted-foreground);
    white-space: nowrap;
}
.wc-row__value[data-v-3fc1518d] {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.5rem;
    color: var(--foreground);
    white-space: nowrap;
    overflow: hidden;
}
