/* ShiftNevis Calendar & Needs mobile shell v3. */
@media (max-width: 760px) {
  body:has(.calendar-needs-mobile-app) {
    background: #f7f5fb;
  }

  body:has(.calendar-needs-mobile-app) .content {
    padding: 8px 8px calc(82px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body:has(.calendar-needs-mobile-app) .dashboard-footer,
  body:has(.calendar-needs-mobile-app) .footer,
  body:has(.calendar-needs-mobile-app) .back-to-top {
    display: none !important;
  }

  .calendar-needs-mobile-app {
    display: grid;
    gap: 10px;
    width: 100%;
    min-width: 0;
  }

  .calendar-needs-mobile-overview,
  .calendar-needs-mobile-launcher,
  .calendar-needs-mobile-detail__head,
  .calendar-needs-mobile-detail__section {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    border: 1px solid #e5ddef;
    border-radius: 19px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(31, 23, 56, .04);
  }

  .calendar-needs-mobile-overview {
    padding: 12px;
    border-color: #ddcff7;
    background: linear-gradient(145deg, #fff, #f8f4ff);
  }

  .calendar-needs-mobile-overview__top {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
  }

  .calendar-needs-mobile-overview__icon,
  .calendar-needs-mobile-detail__icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #6d28d9;
    background: #efe7ff;
    font-size: 16px;
  }

  .calendar-needs-mobile-overview__top > div {
    min-width: 0;
  }

  .calendar-needs-mobile-overview__top small,
  .calendar-needs-mobile-overview__top b,
  .calendar-needs-mobile-overview__top span {
    display: block;
  }

  .calendar-needs-mobile-overview__top small {
    color: #7c3aed;
    font-size: 8px;
    font-weight: 900;
  }

  .calendar-needs-mobile-overview__top b {
    margin-top: 2px;
    color: #241d2e;
    font-size: 13px;
    font-weight: 950;
  }

  .calendar-needs-mobile-overview__top > div > span {
    margin-top: 3px;
    overflow: hidden;
    color: #847b8e;
    font-size: 8px;
    line-height: 1.55;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .calendar-needs-mobile-autosave {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    padding: 5px 7px;
    border-radius: 999px;
    color: #08734c;
    background: #eaf9f2;
    font-size: 7.5px;
    font-weight: 900;
    white-space: nowrap;
  }

  .calendar-needs-mobile-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin-top: 10px;
  }

  .calendar-needs-mobile-stats > span {
    min-width: 0;
    padding: 8px 6px;
    border: 1px solid #ebe4f3;
    border-radius: 12px;
    background: rgba(255,255,255,.78);
    text-align: center;
  }

  .calendar-needs-mobile-stats small,
  .calendar-needs-mobile-stats b {
    display: block;
  }

  .calendar-needs-mobile-stats small {
    color: #8b8295;
    font-size: 7.5px;
    font-weight: 800;
  }

  .calendar-needs-mobile-stats b {
    margin-top: 3px;
    color: #332a3d;
    font-size: 10px;
    font-weight: 950;
  }

  .calendar-needs-mobile-launcher {
    padding: 12px;
  }

  .calendar-needs-mobile-launcher__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
  }

  .calendar-needs-mobile-launcher__head span,
  .calendar-needs-mobile-launcher__head h2,
  .calendar-needs-mobile-launcher__head small {
    display: block;
  }

  .calendar-needs-mobile-launcher__head span {
    color: #7c3aed;
    font-size: 8px;
    font-weight: 900;
  }

  .calendar-needs-mobile-launcher__head h2 {
    margin: 2px 0 0;
    color: #261e30;
    font-size: 13px;
    font-weight: 950;
  }

  .calendar-needs-mobile-launcher__head > small {
    padding: 5px 7px;
    border-radius: 999px;
    color: #766b82;
    background: #f4f1f7;
    font-size: 7.5px;
    font-weight: 850;
    white-space: nowrap;
  }

  .calendar-needs-mobile-launcher__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }

  .calendar-needs-mobile-card {
    position: relative;
    min-width: 0;
    min-height: 132px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    align-items: center;
    column-gap: 9px;
    row-gap: 11px;
    padding: 13px;
    overflow: hidden;
    border: 1.5px solid #ddd2eb;
    border-radius: 18px;
    color: #2e2637;
    background: linear-gradient(145deg, #fff, #fdfbff);
    box-shadow: 0 6px 18px rgba(48, 35, 72, .045);
    text-align: right;
    font: inherit;
  }

  .calendar-needs-mobile-card::after {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 15px;
    bottom: 15px;
    width: 3px;
    border-radius: 999px;
    background: #7c3aed;
    opacity: .72;
  }

  .calendar-needs-mobile-card.is-wide {
    grid-column: 1 / -1;
    min-height: 108px;
  }

  .calendar-needs-mobile-card:active {
    transform: scale(.985);
    background: #f9f5ff;
  }

  .calendar-needs-mobile-card__icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #6d28d9;
    background: #efe7ff;
    font-size: 15px;
  }

  .calendar-needs-mobile-card__copy {
    min-width: 0;
  }

  .calendar-needs-mobile-card__copy b,
  .calendar-needs-mobile-card__copy small {
    display: block;
  }

  .calendar-needs-mobile-card__copy b {
    font-size: 11.5px;
    line-height: 1.45;
    font-weight: 950;
  }

  .calendar-needs-mobile-card__copy small {
    margin-top: 4px;
    overflow: hidden;
    color: #8b8295;
    font-size: 8px;
    line-height: 1.5;
    font-weight: 750;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .calendar-needs-mobile-card__meta,
  .calendar-needs-mobile-card__cta {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 7.5px;
    line-height: 1;
    font-weight: 900;
    white-space: nowrap;
  }

  .calendar-needs-mobile-card__meta {
    justify-self: start;
    color: #6f6578;
    background: #f3f0f6;
  }

  .calendar-needs-mobile-card__meta.is-ok {
    color: #08734c;
    background: #eaf9f2;
  }

  .calendar-needs-mobile-card__meta.is-warn {
    color: #985a08;
    background: #fff4df;
  }

  .calendar-needs-mobile-card__cta {
    justify-self: end;
    gap: 5px;
    border: 1px solid #d9c8fa;
    border-radius: 10px;
    color: #6d28d9;
    background: #f7f2ff;
  }

  .calendar-needs-mobile-next {
    min-height: 80px;
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) 30px;
    align-items: center;
    gap: 9px;
    padding: 12px;
    border: 0;
    border-radius: 19px;
    color: #fff;
    background: linear-gradient(135deg,#8b5cf6 0%,#6d28d9 72%,#5b21b6 100%);
    box-shadow: 0 12px 28px rgba(109,40,217,.22);
    text-align: right;
    font: inherit;
  }

  .calendar-needs-mobile-next__icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(255,255,255,.16);
    font-size: 15px;
  }

  .calendar-needs-mobile-next > span:nth-child(2) {
    min-width: 0;
  }

  .calendar-needs-mobile-next small,
  .calendar-needs-mobile-next b,
  .calendar-needs-mobile-next em {
    display: block;
  }

  .calendar-needs-mobile-next small {
    opacity: .82;
    font-size: 7.5px;
    font-weight: 850;
  }

  .calendar-needs-mobile-next b {
    margin-top: 2px;
    font-size: 12.5px;
    font-weight: 950;
  }

  .calendar-needs-mobile-next em {
    margin-top: 2px;
    overflow: hidden;
    opacity: .72;
    font-size: 7px;
    font-style: normal;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .calendar-needs-mobile-detail__head {
    display: grid;
    grid-template-columns: 34px 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 10px;
    border-color: #ddd1f4;
    background: linear-gradient(145deg,#fff,#faf7ff);
  }

  .calendar-needs-mobile-back {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid #e1d7ee;
    border-radius: 11px;
    color: #6d28d9;
    background: #fff;
    font-size: 11px;
  }

  .calendar-needs-mobile-detail__icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: 14px;
  }

  .calendar-needs-mobile-detail__head > div {
    min-width: 0;
  }

  .calendar-needs-mobile-detail__head h2,
  .calendar-needs-mobile-detail__head p {
    margin: 0;
  }

  .calendar-needs-mobile-detail__head h2 {
    color: #261f30;
    font-size: 12px;
    font-weight: 950;
  }

  .calendar-needs-mobile-detail__head p {
    margin-top: 2px;
    overflow: hidden;
    color: #867d90;
    font-size: 7.5px;
    line-height: 1.4;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .calendar-needs-mobile-detail__action {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 8px;
    border: 1px solid #dacaf8;
    border-radius: 10px;
    color: #6d28d9;
    background: #f7f2ff;
    font: inherit;
    font-size: 8px;
    font-weight: 900;
    white-space: nowrap;
  }

  .calendar-needs-mobile-detail__section {
    margin: 0 !important;
    padding: 11px !important;
    overflow: visible !important;
  }

  .calendar-needs-mobile-detail__section > .form-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }

  .calendar-needs-mobile-detail .jalali-selector-group {
    margin: 0 !important;
    padding: 10px !important;
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 8px !important;
    border: 1px solid #e8e1f0 !important;
    border-radius: 15px !important;
    background: #fff !important;
  }

  .calendar-needs-mobile-detail .jalali-selector {
    min-width: 0 !important;
  }

  .calendar-needs-mobile-detail .jalali-selector .field__label {
    display: block !important;
    margin-bottom: 5px !important;
    color: #62596e !important;
    font-size: 8px !important;
    font-weight: 900 !important;
  }

  .calendar-needs-mobile-detail .jalali-select {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 11px 0 36px !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    border: 1px solid #e1d6ef !important;
    border-radius: 12px !important;
    background-color: #fff !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20'%3E%3Cpath d='M5 7.5l5 5 5-5' fill='none' stroke='%236d5a84' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: left 11px center !important;
    background-size: 15px 15px !important;
    color: #2d2537 !important;
    font-family: var(--font) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    direction: rtl !important;
  }

  .calendar-needs-mobile-detail .jalali-info-card {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 5px !important;
    padding: 7px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #f8f5fc !important;
  }

  .calendar-needs-mobile-detail .jalali-info-item {
    min-width: 0 !important;
    padding: 4px 2px !important;
    text-align: center !important;
  }

  .calendar-needs-mobile-detail .jalali-info-label,
  .calendar-needs-mobile-detail .jalali-info-value {
    display: block !important;
  }

  .calendar-needs-mobile-detail .jalali-info-label {
    color: #887e92 !important;
    font-size: 7px !important;
    white-space: nowrap !important;
  }

  .calendar-needs-mobile-detail .jalali-info-value {
    margin-top: 2px !important;
    font-size: 9px !important;
    font-weight: 950 !important;
  }

  .calendar-needs-mobile-detail .jalali-calendar-wrapper {
    box-sizing: border-box !important;
    width: 100% !important;
    padding: 9px !important;
    border: 1px solid #e7dff0 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  .calendar-needs-mobile-detail .jalali-calendar-header {
    margin: 0 0 8px !important;
    padding: 9px 10px !important;
    border-radius: 12px !important;
    box-shadow: none !important;
  }

  .calendar-needs-mobile-detail .jalali-calendar-header h4 {
    margin: 0 !important;
    font-size: 11px !important;
  }

  .calendar-needs-mobile-detail .jalali-calendar {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(7,minmax(0,1fr)) !important;
    gap: 4px !important;
  }

  .calendar-needs-mobile-detail .jalali-dow {
    padding: 3px 0 !important;
    font-size: 6.8px !important;
    text-align: center !important;
  }

  .calendar-needs-mobile-detail .jalali-day {
    aspect-ratio: 1 / 1 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 9px !important;
    box-shadow: none !important;
  }

  .calendar-needs-mobile-detail .jalali-day__num {
    font-size: 9px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
  }

  .calendar-needs-mobile-detail .jalali-day__name {
    display: none !important;
  }

  .calendar-needs-mobile-detail .jalali-day.is-friday {
    color: #c5224a !important;
    background: #fff0f3 !important;
    border-color: #ffd9e2 !important;
  }

  .calendar-needs-mobile-detail .jalali-day.is-holiday:not(.is-friday) {
    color: #a7341c !important;
    background: #fff4e8 !important;
    border-color: #ffd9bd !important;
  }

  .calendar-needs-mobile-detail .jalali-holiday-summary {
    margin-top: 8px !important;
    padding: 8px !important;
    border: 1px solid #eee8f4 !important;
    border-radius: 12px !important;
    background: #faf8fd !important;
  }

  .calendar-needs-mobile-detail--needs .requirement-cards {
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 6px !important;
    margin: 0 0 10px !important;
  }

  .calendar-needs-mobile-detail--needs .requirement-card {
    min-width: 0 !important;
    padding: 8px 6px !important;
    border-radius: 14px !important;
    box-shadow: none !important;
  }

  .calendar-needs-mobile-detail--needs .requirement-card h4 {
    margin: 0 0 7px !important;
    font-size: 9px !important;
    text-align: center !important;
  }

  .calendar-needs-mobile-detail--needs .requirement-card .form-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 5px !important;
  }

  .calendar-needs-mobile-detail--needs .requirement-card .field {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  .calendar-needs-mobile-detail--needs .requirement-card .field__label {
    margin-bottom: 3px !important;
    font-size: 7px !important;
    text-align: center !important;
  }

  .calendar-needs-mobile-detail--needs .requirement-card .input {
    width: 100% !important;
    min-height: 38px !important;
    padding: 5px !important;
    border-radius: 10px !important;
    text-align: center !important;
    font-size: 16px !important;
  }

  .calendar-needs-mobile-detail--needs .table-wrap {
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
  }

  .calendar-needs-mobile-detail--needs .table-wrap table,
  .calendar-needs-mobile-detail--needs .table-wrap tbody {
    display: block !important;
    width: 100% !important;
  }

  .calendar-needs-mobile-detail--needs .table-wrap thead {
    display: none !important;
  }

  .calendar-needs-mobile-detail--needs .table-wrap tr {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 8px !important;
    margin: 0 0 8px !important;
    padding: 10px !important;
    border: 1px solid #e8e1f0 !important;
    border-radius: 15px !important;
    background: #fff !important;
  }

  .calendar-needs-mobile-detail--needs .table-wrap td {
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .calendar-needs-mobile-detail--needs .table-wrap td:nth-child(3),
  .calendar-needs-mobile-detail--needs .table-wrap td:nth-child(8) {
    grid-column: 1 / -1 !important;
  }

  .calendar-needs-mobile-detail--needs .mini-input,
  .calendar-needs-mobile-detail--needs input[type="time"],
  .calendar-needs-mobile-detail--needs input[type="number"] {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    font-size: 16px !important;
  }

  .calendar-needs-mobile-detail--rules .policy-rules-panel,
  .calendar-needs-mobile-rules {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .calendar-needs-mobile-detail--rules .policy-rule {
    border-radius: 14px !important;
  }

  @media (max-width: 390px) {
    .calendar-needs-mobile-launcher__grid {
      grid-template-columns: 1fr !important;
    }

    .calendar-needs-mobile-card,
    .calendar-needs-mobile-card.is-wide {
      grid-column: 1 !important;
      min-height: 108px !important;
    }

    .calendar-needs-mobile-detail__head {
      grid-template-columns: 32px 36px minmax(0,1fr) !important;
    }

    .calendar-needs-mobile-detail__action {
      grid-column: 1 / -1 !important;
      width: 100% !important;
      justify-content: center !important;
    }
  }
}