/* =========================================
   MY INVOICES PAGE
========================================= */

.invoice-list-page {
  max-width: 1000px;

  margin: 10px auto 50px;
  padding: 0 16px;
}


/* =========================================
   PAGE HEADER
========================================= */

.invoice-list-header {
  margin-bottom: 28px;

  padding: 24px;

  background:
    linear-gradient(
      135deg,
      #ffffff,
      #fffaf3
    );

  border: 1px solid var(--border);
  border-radius: var(--radius-large);

  box-shadow: var(--shadow-small);
}

.invoice-list-eyebrow {
  margin-bottom: 4px;

  color: var(--light-muted);

  font-size: 0.72rem;
  font-weight: 800;

  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.invoice-list-subtitle {
  margin-top: 6px;

  color: var(--light-muted);
}


/* =========================================
   SECTIONS
========================================= */

.invoice-list-section {
  margin-bottom: 34px;
}

.invoice-list-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;

  margin-bottom: 14px;
}

.invoice-list-section-header .title {
  margin-bottom: 3px;
}

.invoice-list-section-header p {
  color: var(--light-muted);

  font-size: 0.88rem;
}


/* =========================================
   INVOICE LIST
========================================= */

.invoice-list {
  display: flex;
  flex-direction: column;

  gap: 12px;
}

.invoice-list-card {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;

  padding: 18px 20px;

  color: inherit;
  background-color: #ffffff;

  border: 1px solid var(--border);
  border-radius: 11px;

  box-shadow: var(--shadow-small);

  text-decoration: none;

  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.invoice-list-card:hover {
  color: inherit;

  border-color: #d1d9e0;

  box-shadow: var(--shadow-medium);

  transform: translateY(-1px);
}

.invoice-list-main {
  flex: 1;

  min-width: 0;
}

.invoice-list-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 16px;

  margin-bottom: 14px;
}

.invoice-list-number {
  color: var(--navy);

  font-size: 1rem;
  font-weight: 850;
}

.invoice-list-date {
  margin-top: 2px;

  color: var(--light-muted);

  font-size: 0.78rem;
}


/* =========================================
   INVOICE DETAILS
========================================= */

.invoice-list-details {
  display: grid;

  grid-template-columns:
    minmax(0, 1.5fr)
    minmax(0, 1fr)
    130px;

  gap: 18px;
}

.invoice-list-detail {
  min-width: 0;
}

.invoice-list-detail span {
  display: block;

  margin-bottom: 3px;

  color: var(--light-muted);

  font-size: 0.68rem;
  font-weight: 800;

  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.invoice-list-detail strong {
  display: block;

  color: var(--text);

  font-size: 0.9rem;
  font-weight: 750;

  overflow: hidden;

  text-overflow: ellipsis;
  white-space: nowrap;
}

.invoice-list-total {
  text-align: right;
}

.invoice-list-total strong {
  color: var(--orange-dark);

  font-size: 1rem;
  font-weight: 850;
}


/* =========================================
   ARROW
========================================= */

.invoice-list-arrow {
  color: var(--light-muted);

  font-size: 1.8rem;
  line-height: 1;
}

.invoice-list-card:hover .invoice-list-arrow {
  color: var(--orange-dark);
}


/* =========================================
   EMPTY STATE
========================================= */

.invoice-list-empty {
  padding: 34px 20px;

  color: var(--light-muted);
  background-color: #ffffff;

  border: 1px dashed #cbd5e1;
  border-radius: 11px;

  text-align: center;
}

.invoice-list-empty-title {
  margin-bottom: 4px;

  color: var(--navy);

  font-weight: 800;
}


/* =========================================
   MOBILE
========================================= */

@media screen and (max-width: 700px) {

  .invoice-list-page {
    padding: 0 12px;
  }

  .invoice-list-header {
    padding: 18px;
  }

  .invoice-list-card {
    align-items: flex-start;

    padding: 16px;
  }

  .invoice-list-details {
    grid-template-columns: 1fr;

    gap: 10px;
  }

  .invoice-list-total {
    text-align: left;
  }

  .invoice-list-top {
    flex-direction: column;
  }

  .invoice-list-arrow {
    display: none;
  }
}

/* =========================================
   STATUS OVERVIEW
========================================= */

.invoice-status-overview {
  display:
    grid;

  grid-template-columns:
    repeat(
      4,
      minmax(0, 1fr)
    );

  gap:
    10px;

  margin:
    -12px 0 22px;
}

.invoice-status-overview-card {
  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  gap:
    12px;

  padding:
    13px 15px;

  background:
    #ffffff;

  border:
    1px solid
    var(--border);

  border-radius:
    10px;

  box-shadow:
    var(--shadow-small);
}

.invoice-status-overview-card span {
  color:
    var(--light-muted);

  font-size:
    0.7rem;

  font-weight:
    800;

  text-transform:
    uppercase;

  letter-spacing:
    0.04em;
}

.invoice-status-overview-card strong {
  color:
    var(--navy);

  font-size:
    1.2rem;

  font-weight:
    900;
}

.invoice-status-overview-card.unpaid {
  border-left:
    4px solid
    #f59e0b;
}

.invoice-status-overview-card.paid {
  border-left:
    4px solid
    #22c55e;
}


/* =========================================
   STATUS CARD STATES
========================================= */

.invoice-list-card.invoice-status-sent {
  border-left:
    5px solid
    #f59e0b;

  background:
    #fffdf7;
}

.invoice-list-card.invoice-status-paid {
  border-left:
    5px solid
    #22c55e;

  background:
    #f8fdf9;
}

.invoice-list-card.invoice-status-cancelled {
  border-left:
    5px solid
    #ef4444;

  background:
    #fffafa;

  opacity:
    0.82;
}

.invoice-list-card.invoice-status-draft {
  border-left:
    5px solid
    #64748b;
}

.invoice-status-pill {
  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  min-width:
    74px;

  min-height:
    28px;

  padding:
    5px 10px;

  border-radius:
    999px;

  font-size:
    0.7rem;

  font-weight:
    850;

  letter-spacing:
    0.02em;

  text-transform:
    uppercase;
}

.invoice-status-pill.unpaid {
  color:
    #92400e;

  background:
    #fef3c7;

  border:
    1px solid
    #fcd34d;
}

.invoice-status-pill.paid {
  color:
    #166534;

  background:
    #dcfce7;

  border:
    1px solid
    #86efac;
}

.invoice-status-pill.cancelled {
  color:
    #991b1b;

  background:
    #fee2e2;

  border:
    1px solid
    #fecaca;
}

.invoice-status-pill.draft {
  color:
    #475569;

  background:
    #f1f5f9;

  border:
    1px solid
    #cbd5e1;
}

@media screen and (max-width: 850px) {
  .invoice-status-overview {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }
}

@media screen and (max-width: 520px) {
  .invoice-status-overview {
    grid-template-columns:
      1fr;
  }

  .invoice-list-top {
    align-items:
      flex-start;
  }

  .invoice-status-pill {
    min-width:
      68px;
  }
}


/* =========================================
   OVERDUE + FILTERS
========================================= */

.invoice-status-overview-card.overdue {
  border-left:
    4px solid
    #ef4444;
}

.invoice-status-overview-card.overdue strong {
  color:
    #b91c1c;
}

.invoice-list-card.invoice-status-overdue {
  border-left:
    5px solid
    #ef4444;

  background:
    #fff8f8;
}

.invoice-status-pill.overdue {
  color:
    #991b1b;

  background:
    #fee2e2;

  border:
    1px solid
    #fecaca;
}

.invoice-filter-bar {
  display:
    flex;

  flex-wrap:
    wrap;

  gap:
    8px;

  margin:
    0 0 18px;
}

.invoice-filter-button {
  min-height:
    36px;

  padding:
    7px 13px;

  color:
    var(--navy);

  background:
    #ffffff;

  border:
    1px solid
    var(--border);

  border-radius:
    999px;

  font-size:
    0.74rem;

  font-weight:
    800;

  cursor:
    pointer;
}

.invoice-filter-button:hover {
  border-color:
    var(--border-dark);

  background:
    #f8fafc;
}

.invoice-filter-button.is-active {
  color:
    #ffffff;

  background:
    var(--navy);

  border-color:
    var(--navy);
}

@media screen and (max-width: 520px) {

  .invoice-filter-bar {
    display:
      grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }

  .invoice-filter-button {
    width:
      100%;
  }
}


/* =========================================
   MY INVOICES VISUAL REFINEMENT
========================================= */

.invoice-list-page {
  max-width:
    1080px;

  margin:
    24px auto 56px;
}


.invoice-list-header {
  margin-bottom:
    18px;

  padding:
    22px 24px;

  border-radius:
    14px;
}


.invoice-list-header .title {
  margin-bottom:
    4px;
}


.invoice-list-subtitle {
  max-width:
    620px;

  font-size:
    0.9rem;

  line-height:
    1.5;
}


/* summary becomes more compact and dashboard-like */

.invoice-status-overview {
  gap:
    12px;

  margin:
    0 0 18px;
}


.invoice-status-overview-card {
  min-height:
    70px;

  padding:
    12px 14px;

  border-radius:
    11px;

  box-shadow:
    0 3px 12px
    rgba(
      15,
      23,
      42,
      0.05
    );
}


.invoice-status-overview-card span {
  max-width:
    115px;

  font-size:
    0.66rem;

  line-height:
    1.3;
}


.invoice-status-overview-card strong {
  font-size:
    1.3rem;
}


/* filters */

.invoice-filter-bar {
  gap:
    7px;

  margin-bottom:
    14px;
}


.invoice-filter-button {
  min-height:
    34px;

  padding:
    6px 13px;

  font-size:
    0.72rem;

  transition:
    background-color 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease,
    transform 0.15s ease;
}


.invoice-filter-button:hover {
  transform:
    translateY(-1px);
}


/* sent / received tabs */

.invoice-tabs {
  gap:
    10px;

  margin:
    0 0 16px;
}


.invoice-tab {
  min-height:
    46px;

  border-radius:
    10px;
}


/* invoice rows */

.invoice-list {
  gap:
    10px;
}


.invoice-list-card {
  gap:
    14px;

  padding:
    16px 18px;

  border-radius:
    12px;

  box-shadow:
    0 3px 12px
    rgba(
      15,
      23,
      42,
      0.045
    );
}


.invoice-list-top {
  align-items:
    center;

  margin-bottom:
    11px;
}


.invoice-list-number {
  font-size:
    0.96rem;
}


.invoice-list-date {
  font-size:
    0.72rem;
}


.invoice-list-details {
  grid-template-columns:
    minmax(0, 1.45fr)
    minmax(0, 1fr)
    minmax(120px, 0.7fr);

  gap:
    14px;

  align-items:
    end;
}


.invoice-list-detail span {
  margin-bottom:
    4px;

  font-size:
    0.64rem;
}


.invoice-list-detail strong {
  font-size:
    0.84rem;
}


.invoice-list-total strong {
  font-size:
    1.05rem;
}


.invoice-list-arrow {
  margin-left:
    4px;

  font-size:
    1.55rem;
}


/* =========================================
   MOBILE INVOICE REFINEMENT
========================================= */

@media screen and (max-width: 700px) {

  .invoice-list-page {
    margin:
      14px auto 38px;

    padding:
      0 10px;
  }


  .invoice-list-header {
    margin-bottom:
      14px;

    padding:
      17px 16px;

    border-radius:
      12px;
  }


  .invoice-list-eyebrow {
    font-size:
      0.64rem;
  }


  .invoice-list-header .title {
    font-size:
      1.55rem;
  }


  .invoice-list-subtitle {
    margin-top:
      4px;

    font-size:
      0.8rem;

    line-height:
      1.45;
  }


  /* 2 x 2 summary grid instead of four tall rows */

  .invoice-status-overview {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    gap:
      8px;

    margin-bottom:
      12px;
  }


  .invoice-status-overview-card {
    min-height:
      64px;

    padding:
      10px 11px;

    gap:
      8px;
  }


  .invoice-status-overview-card span {
    max-width:
      92px;

    font-size:
      0.6rem;
  }


  .invoice-status-overview-card strong {
    font-size:
      1.08rem;
  }


  /* compact filter pills */

  .invoice-filter-bar {
    display:
      flex;

    flex-wrap:
      nowrap;

    gap:
      6px;

    width:
      100%;

    margin-bottom:
      12px;

    padding-bottom:
      2px;

    overflow-x:
      auto;

    scrollbar-width:
      none;
  }


  .invoice-filter-bar::-webkit-scrollbar {
    display:
      none;
  }


  .invoice-filter-button {
    flex:
      0 0 auto;

    width:
      auto;

    min-height:
      32px;

    padding:
      6px 12px;

    font-size:
      0.68rem;
  }


  .invoice-tabs {
    gap:
      8px;

    margin:
      0 0 12px;
  }


  .invoice-tab {
    min-height:
      40px;

    padding:
      8px;

    font-size:
      0.72rem;
  }


  .invoice-tab-count {
    min-width:
      20px;

    height:
      20px;

    padding:
      0 6px;

    font-size:
      0.62rem;
  }


  /* invoice card */

  .invoice-list-card {
    position:
      relative;

    display:
      block;

    padding:
      14px;

    border-radius:
      11px;
  }


  .invoice-list-top {
    display:
      grid;

    grid-template-columns:
      minmax(0, 1fr)
      auto;

    align-items:
      start;

    gap:
      10px;

    margin-bottom:
      12px;
  }


  .invoice-list-number {
    font-size:
      0.88rem;

    overflow-wrap:
      anywhere;
  }


  .invoice-list-date {
    font-size:
      0.68rem;
  }


  .invoice-status-pill {
    min-width:
      0;

    min-height:
      25px;

    padding:
      4px 8px;

    font-size:
      0.62rem;
  }


  .invoice-list-details {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr);

    gap:
      10px 12px;
  }


  .invoice-list-detail {
    min-width:
      0;
  }


  .invoice-list-detail span {
    font-size:
      0.59rem;
  }


  .invoice-list-detail strong {
    font-size:
      0.78rem;
  }


  .invoice-list-total {
    grid-column:
      1 / -1;

    display:
      flex;

    align-items:
      center;

    justify-content:
      space-between;

    gap:
      12px;

    padding-top:
      9px;

    border-top:
      1px solid
      #e6ebf0;

    text-align:
      left;
  }


  .invoice-list-total span {
    margin:
      0;
  }


  .invoice-list-total strong {
    font-size:
      0.95rem;
  }

}


@media screen and (max-width: 420px) {

  .invoice-status-overview {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }


  .invoice-status-overview-card {
    min-height:
      60px;
  }


  .invoice-status-overview-card span {
    max-width:
      78px;

    font-size:
      0.57rem;
  }


  .invoice-filter-button {
    padding-left:
      10px;

    padding-right:
      10px;
  }

}


/* =========================================
   SENT / RECEIVED SUMMARY GROUPS
========================================= */

.invoice-status-overview {
  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap:
    14px;
}


.invoice-status-group {
  padding:
    14px;

  background:
    #ffffff;

  border:
    1px solid
    var(--border);

  border-radius:
    12px;

  box-shadow:
    0 3px 12px
    rgba(
      15,
      23,
      42,
      0.05
    );
}


.invoice-status-group-heading {
  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  gap:
    12px;

  margin-bottom:
    12px;
}


.invoice-status-group-eyebrow {
  margin:
    0 0 2px;

  color:
    var(--light-muted);

  font-size:
    0.62rem;

  font-weight:
    850;

  text-transform:
    uppercase;

  letter-spacing:
    0.06em;
}


.invoice-status-group-heading h2 {
  margin:
    0;

  color:
    var(--navy);

  font-size:
    0.92rem;

  font-weight:
    850;
}


.invoice-status-group-total {
  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  min-width:
    30px;

  height:
    30px;

  padding:
    0 8px;

  color:
    #ffffff;

  background:
    var(--navy);

  border-radius:
    999px;

  font-size:
    0.74rem;

  font-weight:
    900;
}


.invoice-status-group-stats {
  display:
    grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap:
    8px;
}


.invoice-status-group
.invoice-status-overview-card {
  min-height:
    58px;

  padding:
    10px 11px;

  box-shadow:
    none;
}


.invoice-status-group
.invoice-status-overview-card span {
  max-width:
    none;

  font-size:
    0.6rem;
}


.invoice-status-group
.invoice-status-overview-card strong {
  font-size:
    1.02rem;
}


@media screen and (max-width: 850px) {

  .invoice-status-overview {
    grid-template-columns:
      1fr;
  }

}


@media screen and (max-width: 700px) {

  .invoice-status-overview {
    grid-template-columns:
      1fr;

    gap:
      10px;
  }


  .invoice-status-group {
    padding:
      11px;
  }


  .invoice-status-group-heading {
    margin-bottom:
      9px;
  }


  .invoice-status-group-heading h2 {
    font-size:
      0.82rem;
  }


  .invoice-status-group-total {
    min-width:
      27px;

    height:
      27px;

    font-size:
      0.68rem;
  }


  .invoice-status-group-stats {
    gap:
      6px;
  }


  .invoice-status-group
  .invoice-status-overview-card {
    min-height:
      54px;

    padding:
      9px;
  }


  .invoice-status-group
  .invoice-status-overview-card span {
    font-size:
      0.56rem;
  }


  .invoice-status-group
  .invoice-status-overview-card strong {
    font-size:
      0.95rem;
  }

}


@media screen and (max-width: 420px) {

  .invoice-status-group-stats {
    grid-template-columns:
      repeat(
        3,
        minmax(0, 1fr)
      );
  }

}


/* =========================================
   TOGGLED INVOICE SUMMARY
========================================= */

.invoice-summary-switcher {
  margin:
    0 0 12px;
}


.invoice-summary-switcher
.invoice-status-group {
  display:
    none;

  padding:
    12px 14px;
}


.invoice-summary-switcher
.invoice-status-group.is-active {
  display:
    block;
}


.invoice-summary-switcher
.invoice-status-group-heading {
  margin-bottom:
    9px;
}


.invoice-summary-switcher
.invoice-status-group-heading h2 {
  font-size:
    0.84rem;
}


.invoice-summary-switcher
.invoice-status-group-stats {
  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );
}


.invoice-summary-switcher
.invoice-status-overview-card {
  min-height:
    50px;
}


@media screen and (max-width: 700px) {

  .invoice-summary-switcher
  .invoice-status-group {
    padding:
      10px;
  }


  .invoice-summary-switcher
  .invoice-status-group-heading {
    display:
      none;
  }


  .invoice-summary-switcher
  .invoice-status-overview-card {
    min-height:
      48px;

    padding:
      8px;
  }

}


/* guarantees inactive invoice summary is not rendered */
.invoice-summary-switcher [hidden] {
  display:
    none !important;
}
