/* ==========================================================================
   BIVA STAFF INTERNET SALES
   ========================================================================== */


.biva-staff-dashboard {
  min-height: 100vh;
  background: #f4f7fb;
  color: #0f172a;
}


.biva-staff-container {
  width: min(1440px, calc(100% - 40px));
  margin: 0 auto;
  padding: 24px 0 50px;
}


/* ==========================================================================
   TOP BAR
   ========================================================================== */


.staff-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;

  margin-bottom: 18px;
}


.staff-topbar__brand {
  display: flex;
  align-items: center;
  gap: 11px;
}


.staff-topbar__logo {
  display: grid;
  place-items: center;

  width: 42px;
  height: 42px;

  border-radius: 13px;

  background: #fbbf24;
  color: #081426;

  font-size: 18px;
  font-weight: 950;
}


.staff-topbar__brand strong {
  display: block;

  color: #0f172a;

  font-size: 14px;
  font-weight: 900;
}


.staff-topbar__brand span {
  display: block;

  margin-top: 2px;

  color: #64748b;

  font-size: 11px;
}


.staff-topbar__actions {
  display: flex;
  align-items: center;
  gap: 9px;
}


/* ==========================================================================
   BUTTONS
   ========================================================================== */


.staff-primary-btn,
.staff-secondary-btn,
.staff-icon-btn {
  border-radius: 11px;

  font: inherit;

  font-size: 13px;
  font-weight: 850;

  cursor: pointer;
}


.staff-primary-btn {
  min-height: 46px;

  padding: 0 20px;

  border: 0;

  background:
    linear-gradient(
      135deg,
      #0c1b30,
      #154d8d
    );

  color: #ffffff;

  box-shadow:
    0 10px 22px
    rgba(15, 47, 86, 0.15);
}


.staff-primary-btn:hover {
  transform: translateY(-1px);
}


.staff-primary-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
}


.staff-secondary-btn {
  min-height: 42px;

  padding: 0 16px;

  border: 1px solid #d7e0ea;

  background: #ffffff;

  color: #16243a;
}


.staff-icon-btn {
  width: 42px;
  height: 42px;

  border: 1px solid #d7e0ea;

  background: #ffffff;

  color: #16243a;

  font-size: 20px;
}


/* ==========================================================================
   HERO
   ========================================================================== */


.staff-hero {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;

  overflow: hidden;

  padding: 38px 42px;

  border-radius: 24px;

  background:
    linear-gradient(
      120deg,
      #091522 0%,
      #112b50 58%,
      #215d9c 100%
    );

  color: #ffffff;

  box-shadow:
    0 20px 50px
    rgba(15, 23, 42, 0.12);
}


.staff-hero::after {
  content: "";

  position: absolute;

  right: -100px;
  top: -105px;

  width: 360px;
  height: 360px;

  border-radius: 50%;

  border:
    45px solid
    rgba(255, 255, 255, .035);
}


.staff-hero__content {
  position: relative;
  z-index: 2;

  max-width: 720px;
}


.staff-hero__eyebrow {
  display: block;

  margin-bottom: 12px;

  color: #fbbf24;

  font-size: 11px;
  font-weight: 950;

  letter-spacing: .09em;
}


.staff-hero h1 {
  margin: 0;

  font-size: clamp(34px, 5vw, 58px);

  line-height: .98;

  font-weight: 950;

  letter-spacing: -.035em;
}


.staff-hero p {
  max-width: 650px;

  margin: 14px 0 0;

  color: #d6e1ef;

  font-size: 14px;

  line-height: 1.65;
}


.staff-hero__account {
  position: relative;
  z-index: 2;

  flex: 0 0 auto;

  min-width: 215px;

  padding: 21px 24px;

  border:
    1px solid
    rgba(255, 255, 255, .15);

  border-radius: 17px;

  background:
    rgba(255, 255, 255, .08);

  backdrop-filter: blur(6px);
}


.staff-hero__account span,
.staff-hero__account small {
  display: block;

  color: #dbe7f4;

  font-size: 11px;
}


.staff-hero__account strong {
  display: block;

  margin: 7px 0 5px;

  color: #ffffff;

  font-size: 31px;
  font-weight: 950;
}


/* ==========================================================================
   FEEDBACK
   ========================================================================== */


.staff-feedback {
  margin-top: 14px;

  padding: 11px 14px;

  border-radius: 10px;

  font-size: 12px;
  font-weight: 750;
}


.staff-feedback[data-type="error"] {
  background: #fff1f1;
  color: #b42318;
}


.staff-feedback[data-type="success"] {
  background: #ecfdf3;
  color: #027a48;
}


/* ==========================================================================
   SECTIONS
   ========================================================================== */


.staff-section {
  margin-top: 22px;
}


.staff-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;

  margin-bottom: 12px;
}


.staff-section-heading span {
  display: block;

  margin-bottom: 3px;

  color: #336292;

  font-size: 10px;
  font-weight: 950;

  letter-spacing: .075em;
}


.staff-section-heading h2 {
  margin: 0;

  color: #0d1929;

  font-size: 21px;

  font-weight: 950;
}


.staff-section-heading p {
  margin: 4px 0 0;

  color: #64748b;

  font-size: 12px;

  line-height: 1.5;
}


/* ==========================================================================
   CREDIT OVERVIEW
   ========================================================================== */


.staff-credit-overview {
  display: grid;

  grid-template-columns:
    repeat(4, minmax(0, 1fr));

  gap: 13px;
}


.staff-stat-card {
  padding: 19px;

  border: 1px solid #dfe7f0;

  border-radius: 16px;

  background: #ffffff;

  box-shadow:
    0 8px 25px
    rgba(15, 23, 42, .035);
}


.staff-stat-card span {
  display: block;

  color: #607089;

  font-size: 10px;
  font-weight: 900;

  text-transform: uppercase;

  letter-spacing: .045em;
}


.staff-stat-card strong {
  display: block;

  margin-top: 9px;

  color: #0d1929;

  font-size: 25px;
  font-weight: 950;
}


.staff-stat-card strong.is-outstanding {
  color: #b42318;
}


.staff-stat-card small {
  display: block;

  margin-top: 5px;

  color: #8290a3;

  font-size: 10px;
}


.staff-credit-progress-card {
  margin-top: 13px;

  padding: 15px 18px;

  border: 1px solid #dfe7f0;

  border-radius: 14px;

  background: #ffffff;
}


.staff-credit-progress-card__header {
  display: flex;

  justify-content: space-between;

  gap: 15px;

  margin-bottom: 11px;
}


.staff-credit-progress-card__header strong {
  display: block;

  color: #0f172a;

  font-size: 12px;
}


.staff-credit-progress-card__header span {
  display: block;

  margin-top: 2px;

  color: #748398;

  font-size: 10px;
}


.staff-credit-progress {
  overflow: hidden;

  height: 8px;

  border-radius: 999px;

  background: #e9eef4;
}


.staff-credit-progress__bar {
  width: 0;

  height: 100%;

  border-radius: inherit;

  background:
    linear-gradient(
      90deg,
      #205c97,
      #f4b629
    );

  transition: width .3s ease;
}


/* ==========================================================================
   SALE
   ========================================================================== */


.staff-sale-layout {
  display: grid;

  grid-template-columns:
    minmax(0, 1.45fr)
    minmax(300px, .55fr);

  gap: 17px;

  align-items: start;
}


.staff-sale-form {
  overflow: hidden;

  border: 1px solid #dfe7f0;

  border-radius: 18px;

  background: #ffffff;

  box-shadow:
    0 8px 26px
    rgba(15, 23, 42, .035);
}


.staff-form-section {
  padding: 20px 21px;

  border-bottom: 1px solid #edf1f5;
}


.staff-form-section__heading {
  display: flex;

  align-items: center;

  gap: 11px;

  margin-bottom: 16px;
}


.staff-form-step {
  display: grid;
  place-items: center;

  flex: 0 0 auto;

  width: 30px;
  height: 30px;

  border-radius: 9px;

  background: #102b4c;

  color: #ffffff;

  font-size: 11px;
  font-weight: 900;
}


.staff-form-section__heading strong {
  display: block;

  color: #0f172a;

  font-size: 13px;
}


.staff-form-section__heading small {
  display: block;

  margin-top: 2px;

  color: #748398;

  font-size: 10px;
}


.staff-form-grid {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 13px;
}


.staff-form-grid label.is-full {
  grid-column: 1 / -1;
}


.staff-form-grid label > span {
  display: block;

  margin-bottom: 6px;

  color: #435269;

  font-size: 10px;
  font-weight: 850;
}


.staff-form-grid input,
.staff-form-grid select {
  width: 100%;
  min-height: 44px;

  box-sizing: border-box;

  padding: 9px 11px;

  border: 1px solid #d6dfe9;

  border-radius: 10px;

  outline: none;

  background: #ffffff;

  color: #172234;

  font: inherit;

  font-size: 12px;
}


.staff-form-grid input:focus,
.staff-form-grid select:focus {
  border-color: #346a9f;

  box-shadow:
    0 0 0 3px
    rgba(52, 106, 159, .08);
}


.staff-sale-submit {
  width: calc(100% - 42px);

  margin: 18px 21px 20px;
}


/* ==========================================================================
   SALE SUMMARY
   ========================================================================== */


.staff-sale-summary {
  position: sticky;

  top: 15px;

  padding: 21px;

  border: 1px solid #dfe7f0;

  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #f8fafc,
      #ffffff
    );

  box-shadow:
    0 8px 26px
    rgba(15, 23, 42, .035);
}


.staff-sale-summary__heading > span {
  display: block;

  color: #336292;

  font-size: 10px;
  font-weight: 950;

  letter-spacing: .06em;
}


.staff-sale-summary__heading h3 {
  margin: 5px 0 4px;

  color: #0f172a;

  font-size: 19px;
}


.staff-sale-summary__heading p {
  margin: 0;

  color: #748398;

  font-size: 10px;

  line-height: 1.5;
}


.staff-sale-summary__rows {
  margin-top: 18px;
}


.staff-sale-summary__rows > div {
  display: flex;

  justify-content: space-between;

  gap: 16px;

  padding: 12px 0;

  border-bottom: 1px solid #e8edf2;
}


.staff-sale-summary__rows span {
  color: #6d7b8f;

  font-size: 10px;
}


.staff-sale-summary__rows strong {
  text-align: right;

  color: #0d1929;

  font-size: 12px;
}


.staff-sale-summary__rows .is-highlight {
  margin-top: 6px;

  padding: 13px;

  border: 0;

  border-radius: 10px;

  background: #ecfdf3;
}


.staff-sale-summary__rows .is-highlight strong {
  color: #027a48;

  font-size: 16px;
}


.staff-credit-warning {
  margin-top: 14px;

  padding: 11px;

  border-radius: 9px;

  background: #fff1f1;

  color: #b42318;

  font-size: 10px;
  font-weight: 800;
}


/* ==========================================================================
   LIST CARDS
   ========================================================================== */


.staff-list-card {
  overflow: hidden;

  border: 1px solid #dfe7f0;

  border-radius: 17px;

  background: #ffffff;

  box-shadow:
    0 8px 26px
    rgba(15, 23, 42, .035);
}


.staff-loading {
  padding: 35px 20px;

  text-align: center;

  color: #748398;

  font-size: 11px;
}


/* ==========================================================================
   SALE ROW
   ========================================================================== */


.staff-sale-row {
  display: grid;

  grid-template-columns:
    minmax(220px, 1.6fr)
    minmax(150px, 1fr)
    minmax(100px, .65fr)
    minmax(150px, .9fr)
    100px
    65px;

  align-items: center;

  gap: 14px;

  padding: 14px 18px;

  border-bottom: 1px solid #edf1f5;
}


.staff-sale-row:last-child {
  border-bottom: 0;
}


.staff-sale-row:hover {
  background: #fafcff;
}


.staff-sale-row__customer {
  display: flex;

  align-items: center;

  gap: 10px;
}


.staff-sale-row__avatar {
  display: grid;
  place-items: center;

  flex: 0 0 auto;

  width: 36px;
  height: 36px;

  border-radius: 11px;

  background: #e9f0f8;

  color: #245788;

  font-size: 13px;
  font-weight: 950;
}


.staff-sale-row__customer strong,
.staff-sale-row__plan strong,
.staff-sale-row__amount strong,
.staff-sale-row__date strong {
  display: block;

  color: #142033;

  font-size: 11px;
  font-weight: 850;
}


.staff-sale-row__customer span,
.staff-sale-row__plan span,
.staff-sale-row__amount span,
.staff-sale-row__date span {
  display: block;

  margin-top: 2px;

  color: #7a889b;

  font-size: 9px;
}


.staff-sale-row__view {
  min-height: 32px;

  padding: 0 10px;

  border: 1px solid #d7e0ea;

  border-radius: 8px;

  background: #ffffff;

  color: #17324e;

  font: inherit;

  font-size: 10px;
  font-weight: 850;

  cursor: pointer;
}


/* ==========================================================================
   STATUS
   ========================================================================== */


.staff-status-badge {
  display: inline-flex;

  justify-content: center;

  padding: 5px 8px;

  border-radius: 999px;

  font-size: 9px;
  font-weight: 900;

  text-transform: capitalize;
}


.staff-status-badge.is-success {
  background: #ecfdf3;
  color: #027a48;
}


.staff-status-badge.is-danger {
  background: #fff1f1;
  color: #b42318;
}


.staff-status-badge.is-pending {
  background: #fff7ed;
  color: #b54708;
}


/* ==========================================================================
   CREDIT ACTIVITY
   ========================================================================== */


.staff-credit-activity-row {
  display: grid;

  grid-template-columns:
    38px
    minmax(0, 1fr)
    auto;

  align-items: center;

  gap: 11px;

  padding: 14px 18px;

  border-bottom: 1px solid #edf1f5;
}


.staff-credit-activity-row:last-child {
  border-bottom: 0;
}


.staff-credit-activity-row__icon {
  display: grid;
  place-items: center;

  width: 34px;
  height: 34px;

  border-radius: 10px;

  font-size: 16px;
  font-weight: 900;
}


.staff-credit-activity-row__icon.is-debit {
  background: #fff1f1;
  color: #b42318;
}


.staff-credit-activity-row__icon.is-credit {
  background: #ecfdf3;
  color: #027a48;
}


.staff-credit-activity-row__content strong,
.staff-credit-activity-row__meta strong {
  display: block;

  color: #172234;

  font-size: 11px;
}


.staff-credit-activity-row__content span,
.staff-credit-activity-row__meta span {
  display: block;

  margin-top: 3px;

  color: #7a889b;

  font-size: 9px;
}


.staff-credit-activity-row__meta {
  text-align: right;
}


/* ==========================================================================
   EMPTY STATE
   ========================================================================== */


.staff-empty-state {
  padding: 34px 20px;

  text-align: center;
}


.staff-empty-state__icon {
  display: grid;
  place-items: center;

  width: 40px;
  height: 40px;

  margin: 0 auto 10px;

  border-radius: 12px;

  background: #edf3f9;

  color: #285d91;

  font-size: 17px;
  font-weight: 900;
}


.staff-empty-state strong {
  display: block;

  color: #172234;

  font-size: 12px;
}


.staff-empty-state p {
  max-width: 340px;

  margin: 5px auto 0;

  color: #7b899c;

  font-size: 10px;

  line-height: 1.5;
}


/* ==========================================================================
   MODALS
   ========================================================================== */


.staff-modal {
  position: fixed;

  inset: 0;

  z-index: 4000;

  display: grid;

  place-items: center;

  padding: 20px;
}


.staff-modal[hidden] {
  display: none;
}


.staff-modal__backdrop {
  position: absolute;

  inset: 0;

  background:
    rgba(6, 16, 29, .58);

  backdrop-filter: blur(2px);
}


.staff-modal__dialog {
  position: relative;

  z-index: 1;

  width: min(650px, 100%);

  max-height: 90vh;

  overflow: auto;

  border-radius: 19px;

  background: #ffffff;

  box-shadow:
    0 30px 80px
    rgba(0, 0, 0, .25);
}


.staff-modal__dialog--success {
  width: min(500px, 100%);
}


.staff-modal__header {
  display: flex;

  justify-content: space-between;

  align-items: center;

  gap: 15px;

  padding: 18px 20px;

  border-bottom: 1px solid #e7edf3;
}


.staff-modal__header span {
  color: #336292;

  font-size: 9px;
  font-weight: 900;
}


.staff-modal__header h2 {
  margin: 3px 0 0;

  font-size: 19px;
}


.staff-modal__close {
  width: 36px;
  height: 36px;

  border: 0;

  border-radius: 10px;

  background: #f0f4f8;

  color: #172234;

  font-size: 21px;

  cursor: pointer;
}


.staff-modal__body {
  padding: 20px;
}


/* ==========================================================================
   SALE DETAILS
   ========================================================================== */


.staff-sale-details__voucher {
  margin-bottom: 17px;

  padding: 17px;

  border-radius: 12px;

  background: #edf7ff;
}


.staff-sale-details__voucher span {
  display: block;

  color: #52718f;

  font-size: 9px;
}


.staff-sale-details__voucher strong {
  display: block;

  margin-top: 5px;

  color: #123b62;

  font-size: 25px;

  letter-spacing: .07em;
}


.staff-sale-details__grid {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 10px;

  margin-bottom: 17px;
}


.staff-sale-details__grid > div {
  padding: 12px;

  border: 1px solid #e4eaf0;

  border-radius: 10px;
}


.staff-sale-details__grid span {
  display: block;

  color: #7a889b;

  font-size: 9px;
}


.staff-sale-details__grid strong {
  display: block;

  margin-top: 4px;

  color: #172234;

  font-size: 11px;
}


/* ==========================================================================
   SUCCESS
   ========================================================================== */


.staff-success-body {
  text-align: center;
}


.staff-success-mark {
  display: grid;
  place-items: center;

  width: 56px;
  height: 56px;

  margin: 3px auto 14px;

  border-radius: 50%;

  background: #dcfae6;

  color: #027a48;

  font-size: 28px;
  font-weight: 900;
}


.staff-success-eyebrow {
  display: block;

  color: #027a48;

  font-size: 10px;
  font-weight: 900;

  text-transform: uppercase;

  letter-spacing: .06em;
}


.staff-success-body h2 {
  margin: 6px 0;

  color: #102033;

  font-size: 23px;
}


.staff-success-body > p {
  margin: 0;

  color: #748398;

  font-size: 11px;
}


.staff-success-voucher {
  margin: 20px 0 13px;

  padding: 18px;

  border: 1px dashed #75c79d;

  border-radius: 13px;

  background: #f0fdf4;
}


.staff-success-voucher span {
  display: block;

  color: #47735b;

  font-size: 9px;
}


.staff-success-voucher strong {
  display: block;

  margin-top: 5px;

  color: #065f46;

  font-size: 28px;

  letter-spacing: .09em;
}


.staff-success-summary {
  display: grid;

  grid-template-columns:
    repeat(3, minmax(0, 1fr));

  gap: 8px;
}


.staff-success-summary > div {
  padding: 11px;

  border-radius: 10px;

  background: #f7f9fb;
}


.staff-success-summary span {
  display: block;

  color: #78869a;

  font-size: 8px;
}


.staff-success-summary strong {
  display: block;

  margin-top: 4px;

  color: #152236;

  font-size: 12px;
}


.staff-success-actions {
  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 9px;

  margin-top: 18px;
}


/* ==========================================================================
   RESPONSIVE
   ========================================================================== */


@media (
  max-width: 1050px
) {

  .staff-credit-overview {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }


  .staff-sale-layout {
    grid-template-columns: 1fr;
  }


  .staff-sale-summary {
    position: static;
  }


  .staff-sale-row {
    grid-template-columns:
      minmax(200px, 1.4fr)
      minmax(130px, 1fr)
      100px
      80px;
  }


  .staff-sale-row__date,
  .staff-sale-row__plan span,
  .staff-sale-row__amount span {
    display: none;
  }

}


@media (
  max-width: 720px
) {

  .biva-staff-container {
    width:
      min(
        100% - 24px,
        1440px
      );

    padding-top: 14px;
  }


  .staff-topbar {
    align-items: flex-start;
  }


  .staff-topbar__actions
  .staff-secondary-btn {
    display: none;
  }


  .staff-hero {
    display: block;

    padding: 27px 22px;
  }


  .staff-hero__account {
    width: auto;
    min-width: 0;

    margin-top: 22px;
  }


  .staff-credit-overview {
    grid-template-columns: 1fr 1fr;
  }


  .staff-form-grid {
    grid-template-columns: 1fr;
  }


  .staff-form-grid label.is-full {
    grid-column: auto;
  }


  .staff-sale-row {
    position: relative;

    display: block;

    padding: 15px;
  }


  .staff-sale-row__customer {
    padding-right: 75px;
  }


  .staff-sale-row__plan,
  .staff-sale-row__amount,
  .staff-sale-row__date {
    display: inline-block;

    margin:
      10px 18px
      0 0;
  }


  .staff-sale-row__date {
    display: none;
  }


  .staff-status-badge {
    margin-top: 11px;
  }


  .staff-sale-row__view {
    position: absolute;

    right: 15px;
    top: 16px;
  }


  .staff-sale-details__grid {
    grid-template-columns: 1fr;
  }

}


@media (
  max-width: 480px
) {

  .staff-credit-overview {
    grid-template-columns: 1fr;
  }


  .staff-hero h1 {
    font-size: 37px;
  }


  .staff-success-summary {
    grid-template-columns: 1fr;
  }


  .staff-success-actions {
    grid-template-columns: 1fr;
  }

}