﻿
@layer layout {

  .ts-panel {
    --panel-icon: var(--svg-triangle-right);
    --panel-speed: 0.3s;
    color: var(--panel-text-color);
    background: var(--panel-bg-color);
    border: 1px solid var(--panel-header-bg-color);
    border-radius: var(--panel-border-radius);
    position: relative;

    > .ts-panel-header {
      color: var(--panel-header-text-color);
      background: var(--panel-header-bg-color);
      cursor: pointer;
      position: relative;
      outline-offset: -1px;
      font-size: 1.3rem;
      text-align: left;
      padding: 3px 15px;
      margin: 0;
      line-height: 26px;

      &:hover,
      &:focus {
        color: var(--panel-header-text-color);
        background: var(--panel-header-bg-hover);
      }

      &::after {
        content: "";
        display: block;
        width: 13px;
        height: 13px;
        background: currentColor;
        vertical-align: text-top;
        mask-image: var(--panel-icon);
        mask-repeat: no-repeat;
        mask-size: contain;
        -webkit-mask-image: var(--panel-icon);
        -webkit-mask-repeat: no-repeat;
        position: absolute;
        top: 10px;
        right: 10px;
      }
    }

    > .ts-panel-content {
      padding: 15px;

      &.-compact {
        padding: 8px;
      }

      > nobr {
        min-width: 0;
        min-height: 0;
      }
    }

    &:not(.open, [open]) {
      overflow: hidden;
      > .ts-panel-content {
        display: grid;
        grid-template-rows: 0fr;
        padding-top: 0px !important;
        padding-bottom: 0px !important;
        margin-top: 0px !important;
        margin-bottom: 0px !important;
        visibility: hidden;
        opacity: 0;

        > * {
          overflow: hidden;
        }
      }
    }

    &.open,
    &[open] {
      > .ts-panel-header::after {
        transform: rotate(90deg);
      }

      > .ts-panel-content {
        display: grid;
        grid-template-rows: 1fr;
        opacity: 1;
      }
    }

    &:not(.no-animation) {
      > .ts-panel-header::after {
        transition: transform var(--panel-speed) linear;
      }

      &:is(.open,[open]) > .ts-panel-content {
        transition: grid-template-rows var(--panel-speed) linear, padding var(--panel-speed) linear, margin var(--panel-speed) linear, opacity .2s linear .2s, display 0s linear, visibility 0s linear;
      }

      &:not(.open,[open]) > .ts-panel-content {
        transition: grid-template-rows var(--panel-speed) linear .1s, padding var(--panel-speed) linear .1s, margin var(--panel-speed) linear .1s, opacity .2s linear, display 0s linear .3s, visibility 0s linear .3s;
      }
    }
  }

  .panel:not(details),
  .panel-panel,
  .panel-group .panel:not(details) {
    position: relative;
    border: var(--panel-border-width) solid var(--panel-border-color);
    border-radius: var(--panel-border-radius);
    background-color: var(--panel-bg-color);
    /*overflow: hidden;*/
  }

  .panel-panel {
    padding: 10px 0px;
    /*background: var(--teleosoft-colors-gray);*/
    background: none;
    border: none;
  }

  .panel-panel + .panel-panel {
    margin-top: 15px;
  }

  .panel-panel-title {
    font-size: var(--ts-fs-xl);
    font-weight: bold;
    font-family: var(--ts-ff-labels);
    text-align: left;
    margin-bottom: 10px;
  }

  .panel:not(details) {
    margin-bottom: 15px;
  }

  .details:is(:last-child) {
    margin-bottom: 0px;
  }

  details.panel > summary {
    outline-offset: -2px !important;
    cursor: pointer;
  }

  details.panel {
    position: relative;
    color: var(--panel-text-color);
    background-color: var(--panel-bg-color);
    border: 1px solid var(--panel-header-bg-color);
    border-radius: var(--panel-border-radius);
    /*overflow: hidden;*/
  }

  details.panel > summary,
  .panel:not(details) > header,
  .panel:not(details) .panel-header,
  .panel:not(details) .panel-heading {
    font-size: var(--ts-fs-md);
    font-family: var(--ts-ff-labels);
    position: relative;
    padding: 2px;
    margin-bottom: 0px;
    text-align: center;
    color: var(--panel-header-text-color);
    background-color: var(--panel-header-bg-color);
  }

  details.panel > summary::before {
    content: "\f0da";
    font-family: 'FontAwesome';
    position: absolute;
    right: 8px;
    z-index: 2;
    top: 50%;
    transform: translate(-50%, -50%);
  }

  details[open].panel > summary::before {
    content: "\f0d7";
  }

  @media screen and (min-width: 700px) {
    details.panel.has-bar summary {
      padding: 10px;
      min-height: 22px;
    }
  }

  .details-container:has(details.panel) {
    position: relative;
  }

  .details-container.card:has(details.panel) {
    /*box-shadow: 4px 4px 12px -6px black;*/
  }

  .details-container.card details[open].panel {
    margin-bottom: 20px;
  }

  .details-container.card + .details-container.card details[open].panel {
    margin-top: 20px;
  }

  .details-container.card.accordian details[open].panel {
    margin-bottom: 0px;
  }

  .details-container.card details.panel {
    margin-bottom: -1px;
    border: 1px solid var(--table-grid-color);
    border-radius: 0;
    box-shadow: 2px 2px 6px -4px rgba(0, 0, 0, .35);
  }

  .details-container.card details[open].panel > summary {
    box-shadow: 10px 0 0 var(--table-header-bg) inset;
  }

  .details-container.card details.panel > summary::before {
    left: 22px;
    right: auto;
  }

  .details-container.card details.panel > summary,
  .details-container.card details.panel > summary .card-header {
    position: relative;
    background: white;
    color: black;
    font-size: var(--ts-fs-lg);
    text-align: left;
    padding: 2px 4px 2px 20px;
    cursor: pointer;
    line-height: 1.4rem;
    transition: box-shadow .3s;
  }

  .details-container.card details.panel summary .card-header {
    overflow: hidden;
  }

  .details-container.card details.panel summary .card-tag,
  .details-container.card details.panel summary .card-title,
  .details-container.card details.panel summary .card-cost {
    display: inline-block;
    float: left;
    margin: 0px;
    color: black;
    font-size: var(--ts-fs-df);
  }

  .details-container.card details.panel summary .card-tag {
    color: var(--table-total-bg);
    margin-right: 6px;
    padding: 0px;
    margin-top: 2px;
    margin-bottom: 2px;
    background: transparent;
    border: none;
    border-radius: 4px;
    text-align: left;
    min-width: 160px;
    /*max-width: 180px;*/
  }

  .details-container.card details.panel summary .card-cost {
    color: var(--table-total-bg);
    background-color: var(--table-total-text);
    /*border: 2px solid var(--table-total-bg);*/
    /*border-radius: 20px;*/
    border: none;
    font-family: var(--ts-ff-labels);
    font-weight: bold;
    font-size: var(--ts-fs-lg);
    text-align: right;
    padding: 3px 6px 1px 6px;
    display: inline-block;
    width: 100px;
    max-width: 100px;
  }

  .details-container.card details.panel summary .order-status .pill {
    display: inline-block;
    border-radius: 30px;
    color: var(--primary-text-color);
    background-color: var(--primary-color);
    padding: 1px 20px;
    text-align: center;
    font-size: var(--ts-fs-df);
    cursor: pointer;
  }

  .details-container.card details.panel summary .card-title {
    min-width: 350px;
    font-size: var(--ts-fs-md);
    margin: 5px 1px;
  }

  .details-container.card details.panel summary .card-buttons {
    /*float: right;*/
    text-align: right;
    margin: 1px;
  }

  .details-container.card details.panel .card-btn,
  .details-container.card details.panel summary .card-buttons .card-btn {
    border-radius: 4px;
  }

  .details-container.card details.panel .card-toolbar {
    padding: 10px;
    border-top: 1px solid var(--table-header-bg);
    overflow: hidden;
  }

  .details-container.card details.panel .details-footer {
    padding: 1px 6px;
    border-top: 1px solid var(--table-header-bg);
    overflow: hidden;
    font-size: var(--ts-fs-sm);
  }

  .details-bar:has(> *) {
    background: var(--panel-bg-color);
    border-radius: 30px;
    padding: 3px;
  }

  .details-container details.panel + .details-bar {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 1;
  }

  @media screen and (max-width: 700px) {
    .details-container .details-bar {
      position: static;
      float: right;
      margin-top: 6px;
      margin-bottom: 12px;
    }

    .details-container.card details.panel summary .card-tag {
      margin-right: 6px;
    }
  }

  details.panel .details-content {
    padding: 10px;
  }

  .panel:not(details) .panel-body {
    margin: 5px !important;
    padding: 8px !important;
  }

  details.panel .group-title,
  .panel:not(details) .group-title {
    font-family: var(--ts-ff-labels);
    font-size: 17px;
    text-align: center;
  }

  .flex-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
  }

  summary .flex-header {
    margin: 0px 30px;
  }

  .flex-header .header-left {
    text-align: left;
    margin-right: auto;
  }

  .flex-header .header-center {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    position: absolute;
    left: 0px;
    right: 0px;
  }

  .flex-header .header-right {
    text-align: right;
    margin-left: auto;
  }

  @media screen and (max-width:700px) {
    .flex-header .header-center,
    .flex-header .header-left,
    .flex-header .header-right {
      position: static;
      text-align: left;
    }
  }
}
