@layer component  {
    theme-modal:not([data-popup-container]) > details,   [data-mount-modal],   [data-theme-modal]:not([data-popup-container]) > details  {
        --z-index: var(--z-index-modal);

  }
  theme-modal:not([data-popup-container]) > details[open]::before,   [data-mount-modal][open]::before,   [data-theme-modal]:not([data-popup-container]) > details[open]::before  {
        position: fixed;
        inset: 0;
        z-index: var(--z-index);
        display: block;
        width: 100vw;
        height: 100vh;
        content: "";
        background-color: rgb(var(--color-mask), 0.4);

  }
  theme-modal:not([data-popup-container])     > details:not([open])     > summary     + :not(details, summary),   [data-mount-modal]:not([open]) > summary + :not(details, summary),   [data-theme-modal]:not([data-popup-container])     > details:not([open])     > summary     + :not(details, summary)  {
        display: none !important;

  }
  theme-modal:not([data-popup-container])     > details     > summary     + :not(details, summary),   [data-mount-modal] > summary + :not(details, summary),   [data-theme-modal]:not([data-popup-container])     > details     > summary     + :not(details, summary)  {
        position: fixed;
        inset: 0;
        z-index: calc(var(--z-index) + 1);
        width: fit-content;
        height: fit-content;
        margin: auto;
        background-color: rgba(       var(--color-background, var(--color-page-background, 255, 255, 255))     );
        animation-duration: 0.2s;
        animation-timing-function: ease;

  }
  @media (max-width: 959px)  {
        theme-modal:not([data-popup-container])       > details       > summary       + :not(details, summary),     [data-mount-modal] > summary + :not(details, summary),     [data-theme-modal]:not([data-popup-container])       > details       > summary       + :not(details, summary)  {
            --modal-animation-name: animation-slide-in-bottom;
            inset-block: auto 0;
            width: 100vw;

    }
  }
  :not([data-popup-container])[data-placement="left"]     > summary     + :not(details, summary),   :not([data-popup-container])[data-placement="left"]     > details     > summary     + :not(details, summary)  {
        --modal-animation-name: animation-slide-in-left;
        inset-inline: 0 auto;
        width: auto;
        height: 100%;

  }
  :not([data-popup-container])[data-placement="right"],   :not([data-popup-container])[data-placement="right"] > details  {
        color: red;

  }
  :not([data-popup-container])[data-placement="right"]     > summary     + :not(details, summary),   :not([data-popup-container])[data-placement="right"]     > details     > summary     + :not(details, summary)  {
        --modal-animation-name: animation-slide-in-right;
        inset-inline: auto 0;
        width: auto;
        height: 100%;

  }
  :not([data-popup-container])[data-placement="top"]     > summary     + :not(details, summary),   :not([data-popup-container])[data-placement="top"]     > details     > summary     + :not(details, summary)  {
        --modal-animation-name: animation-slide-in-top;
        inset-block: 0 auto;
        width: 100vw;

  }
  :not([data-popup-container])[data-placement="bottom"]     > summary     + :not(details, summary),   :not([data-popup-container])[data-placement="bottom"]     > details     > summary     + :not(details, summary)  {
        --modal-animation-name: animation-slide-in-bottom;
        inset-block: auto 0;
        width: 100vw;

  }
  .modal__content  {
        background-color: rgba(var(--color-background, --color-page-background));
        border-color: rgba(var(--color-text), var(--modal-border-opacity));
        border-style: solid;
        border-width: var(--modal-border-thickness);
        border-radius: var(--modal-border-radius);
        box-shadow: var(--modal-shadow-offset-x) var(--modal-shadow-offset-y)       var(--modal-shadow-blur)       rgba(var(--color-shadow), var(--modal-shadow-opacity));

  }
  .modal__close-control  {
        position: absolute;
        inset-block-start: 10px;
        inset-inline-end: 10px;
        z-index: 10;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        padding: 0;
        color: rgb(var(--color-light-text));
        cursor: pointer;
        background-color: transparent;
        border: 1px solid currentcolor;
        border-radius: 50%;
        transition: opacity 0.2s;

  }
  .modal__close-control:hover  {
        opacity: 0.6;

  }
  @media (min-width: 960px)  {
        .modal__close-control  {
            inset-block-start: 20px;
            inset-inline-end: 20px;
            width: 38px;
            height: 38px;

    }
  }
}
