/* Ajustes exclusivos del calendario de escritorio. La experiencia móvil usa
   .mv7-calendar-mobile-reference y permanece aislada bajo 768px. */
.mv7-calendar-desktop-legend,
.mv7-calendar-desktop-day-panel {
  display: none;
}

@media (min-width: 769px) {
  #calendar-view.mv7-calendar-view {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 18px;
  }

  #calendar-view .mv7-calendar-horizon {
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .mv7-calendar-heading {
    align-items: center;
  }

  .mv7-calendar-heading-actions {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .mv7-calendar-heading > .mv7-primary-button {
    position: static;
  }

  .mv7-calendar-heading-actions .mv7-calendar-controls {
    position: static;
    display: flex;
    width: auto;
    min-height: 0;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .mv7-calendar-heading-actions .mv7-calendar-controls .mv7-icon-button {
    width: 38px;
    height: 38px;
    min-height: 38px;
    flex: 0 0 38px;
    border-radius: 12px;
  }

  .mv7-calendar-heading-actions #calendar-today {
    min-height: 38px;
    padding-inline: 16px;
    border-radius: 19px;
  }

  .mv7-calendar-heading-actions #calendar-new-event {
    min-height: 40px;
    padding-inline: 16px;
    border-radius: 20px;
    white-space: nowrap;
  }

  .mv7-calendar-heading-actions #calendar-month-label,
  .mv7-calendar-heading-actions .mv7-calendar-bills-summary {
    display: none;
  }

  .mv7-calendar-day {
    height: 112px;
    padding: 10px 8px;
    color: color-mix(in srgb, var(--v2-text) 78%, transparent);
    background: rgba(255, 255, 255, 0.01);
    transition:
      background 160ms ease,
      box-shadow 160ms ease;
  }

  .mv7-calendar-day.is-outside {
    color: color-mix(in srgb, var(--v2-muted) 48%, transparent);
    background: rgba(0, 0, 0, 0.055);
  }

  #calendar-view .mv7-calendar-day.is-today {
    outline: 0;
    background: rgba(255, 255, 255, 0.01);
    box-shadow: none;
  }

  #calendar-view .mv7-calendar-day.is-selected-day:not(.is-today) {
    z-index: 1;
    background: rgba(255, 255, 255, 0.045);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.085);
  }

  #calendar-view .mv7-calendar-day:focus-visible {
    z-index: 2;
    outline: 2px solid rgba(121, 182, 255, 0.78);
    outline-offset: -3px;
  }

  .mv7-calendar-day > strong {
    line-height: 14px;
  }

  .mv7-calendar-day.is-today > strong {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #4d93ed;
    color: #fff;
    font-size: 13px;
    line-height: 1;
    box-shadow:
      0 0 0 4px rgba(77, 147, 237, 0.1),
      0 4px 12px rgba(77, 147, 237, 0.24);
  }

  .mv7-calendar-day.is-today > strong::after {
    display: none;
  }

  .mv7-calendar-day-activity {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: min(100%, 108px);
    margin: 7px auto 0;
    pointer-events: none;
  }

  .mv7-calendar-day-activity-mosaic {
    display: flex;
    flex-direction: column;
    gap: 3px;
    width: 100%;
    min-height: 31px;
    padding: 6px 7px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.045);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.055);
  }

  .mv7-calendar-day-activity-mosaic i {
    display: block;
    width: var(--activity-width);
    height: 5px;
    flex: 0 0 5px;
    border-radius: 999px;
    background: var(--activity-color);
    box-shadow: 0 0 8px color-mix(in srgb, var(--activity-color) 24%, transparent);
  }

  .mv7-calendar-day-activity-mosaic .is-income {
    --activity-color: #43d39c;
  }

  .mv7-calendar-day-activity-mosaic .is-expense {
    --activity-color: #f0805f;
  }

  .mv7-calendar-day-activity-mosaic .is-transfer {
    --activity-color: #6194ed;
  }

  .mv7-calendar-day-activity-mosaic .is-reminder {
    --activity-color: #eeb13d;
  }

  .mv7-calendar-day-activity small {
    color: color-mix(in srgb, var(--v2-muted) 88%, transparent);
    font-size: 9px;
    line-height: 11px;
    white-space: nowrap;
  }

  .mv7-calendar-day .mv7-calendar-event {
    min-height: 23px;
    margin-top: 5px;
    padding: 3px 6px;
    border: 1px solid color-mix(in srgb, var(--event-color) 24%, transparent);
    background: color-mix(in srgb, var(--event-color) 18%, transparent);
  }

  .mv7-calendar-day .mv7-calendar-event.is-reminder {
    --event-color: #f2ad31;
  }

  .mv7-calendar-day .mv7-calendar-event.is-transfer {
    --event-color: #5585e8;
  }

  .mv7-calendar-day .mv7-calendar-event:hover,
  .mv7-calendar-day .mv7-calendar-event.is-selected {
    outline: 0;
    border-color: color-mix(in srgb, var(--event-color) 62%, transparent);
    background: color-mix(in srgb, var(--event-color) 23%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--event-color) 16%, transparent);
  }

  .mv7-calendar-day .mv7-calendar-event > div {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 5px;
  }

  .mv7-calendar-day .mv7-calendar-event > div strong {
    min-width: 0;
    font-weight: 650;
  }

  .mv7-calendar-day .mv7-calendar-event > div span {
    max-width: 46px;
    color: color-mix(in srgb, var(--event-color) 82%, var(--v2-text));
    font-variant-numeric: tabular-nums;
    font-weight: 650;
  }

  .mv7-calendar-day
    .mv7-calendar-event:is(.is-source-transaction, .is-source-subscription).is-selected {
    padding-right: 25px;
  }

  .mv7-calendar-more {
    margin: 3px 4px 0;
  }

  .mv7-calendar-desktop-legend {
    order: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    min-height: 44px;
    margin-top: 10px;
    padding: 9px 16px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.022);
    color: var(--v2-muted);
    font-size: 11px;
  }

  .mv7-calendar-desktop-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
  }

  .mv7-calendar-desktop-legend i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 11%, transparent);
  }

  .mv7-calendar-desktop-legend .is-income {
    color: #43d39c;
  }

  .mv7-calendar-desktop-legend .is-expense {
    color: #f0804f;
  }

  .mv7-calendar-desktop-legend .is-transfer {
    color: #6d99f2;
  }

  .mv7-calendar-desktop-legend .is-reminder {
    color: #f2ad31;
  }

  .mv7-calendar-desktop-day-panel {
    order: 4;
    display: block;
    margin-top: 10px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.027);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.055);
  }

  .mv7-calendar-desktop-day-panel > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 16px 13px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.075);
  }

  .mv7-calendar-desktop-day-panel > header > div > span {
    display: block;
    margin-bottom: 4px;
    color: var(--v2-muted);
    font-size: 9px;
    font-weight: 750;
    letter-spacing: 0.11em;
  }

  .mv7-calendar-desktop-day-panel h3 {
    margin: 0;
    font-size: 16px;
    letter-spacing: -0.025em;
  }

  .mv7-calendar-desktop-day-panel .mv7-secondary-button {
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 17px;
    font-size: 11px;
  }

  .mv7-calendar-desktop-day-panel .mv7-secondary-button svg {
    width: 14px;
    height: 14px;
  }

  .mv7-calendar-desktop-day-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.075);
  }

  .mv7-calendar-desktop-day-stats > div {
    position: relative;
    padding: 12px 16px 12px 29px;
    border-right: 1px solid rgba(255, 255, 255, 0.075);
  }

  .mv7-calendar-desktop-day-stats > div:last-child {
    border-right: 0;
  }

  .mv7-calendar-desktop-day-stats > div::before {
    content: '';
    position: absolute;
    top: 17px;
    left: 16px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--day-color);
  }

  .mv7-calendar-desktop-day-stats .is-income {
    --day-color: #43d39c;
  }

  .mv7-calendar-desktop-day-stats .is-expense {
    --day-color: #f0804f;
  }

  .mv7-calendar-desktop-day-stats .is-balance {
    --day-color: #6d99f2;
  }

  .mv7-calendar-desktop-day-stats dt {
    color: var(--v2-muted);
    font-size: 10px;
  }

  .mv7-calendar-desktop-day-stats dd {
    margin: 4px 0 0;
    color: var(--day-color);
    font-size: 15px;
    font-weight: 750;
  }

  .mv7-calendar-desktop-day-stats dd.is-negative {
    color: #f0804f;
  }

  .mv7-calendar-desktop-day-events {
    display: grid;
    gap: 0;
    padding: 0 12px;
  }

  .mv7-calendar-desktop-day-row {
    --row-color: #f0804f;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto 16px;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 55px;
    padding: 8px 4px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.065);
    background: transparent;
    color: var(--v2-text);
    text-align: left;
    cursor: pointer;
  }

  .mv7-calendar-desktop-day-row:last-child {
    border-bottom: 0;
  }

  .mv7-calendar-desktop-day-row:hover,
  .mv7-calendar-desktop-day-row:focus-visible {
    background: color-mix(in srgb, var(--row-color) 5%, transparent);
    outline: 0;
  }

  .mv7-calendar-desktop-day-row.is-income {
    --row-color: #43d39c;
  }

  .mv7-calendar-desktop-day-row.is-transfer {
    --row-color: #6d99f2;
  }

  .mv7-calendar-desktop-day-row.is-reminder {
    --row-color: #f2ad31;
  }

  .mv7-calendar-desktop-day-row > span:first-child {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: color-mix(in srgb, var(--row-color) 13%, transparent);
    color: var(--row-color);
  }

  .mv7-calendar-desktop-day-row > span:first-child svg,
  .mv7-calendar-desktop-day-row > svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
  }

  .mv7-calendar-desktop-day-row > span:nth-child(2) {
    min-width: 0;
  }

  .mv7-calendar-desktop-day-row > span:nth-child(2) strong,
  .mv7-calendar-desktop-day-row > span:nth-child(2) small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mv7-calendar-desktop-day-row > span:nth-child(2) strong {
    font-size: 12px;
  }

  .mv7-calendar-desktop-day-row > span:nth-child(2) small {
    margin-top: 2px;
    color: var(--v2-muted);
    font-size: 10px;
  }

  .mv7-calendar-desktop-day-row > b {
    color: var(--row-color);
    font-size: 11px;
    white-space: nowrap;
  }

  .mv7-calendar-desktop-day-row > svg {
    color: var(--v2-muted);
  }

  .mv7-calendar-desktop-day-more {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 45px;
    padding: 8px 10px;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.065);
    background: transparent;
    color: var(--v2-text);
    cursor: pointer;
  }

  .mv7-calendar-desktop-day-more:hover,
  .mv7-calendar-desktop-day-more:focus-visible {
    background: rgba(109, 153, 242, 0.055);
    outline: 0;
  }

  .mv7-calendar-desktop-day-more span {
    font-size: 11px;
    font-weight: 700;
  }

  .mv7-calendar-desktop-day-more b {
    color: var(--v2-muted);
    font-size: 10px;
    font-weight: 550;
  }

  .mv7-calendar-desktop-day-more svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
  }

  @keyframes mv7-calendar-day-refresh {
    from {
      opacity: 0;
      transform: translateY(5px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .mv7-calendar-desktop-day-panel.is-refreshing h3,
  .mv7-calendar-desktop-day-panel.is-refreshing .mv7-calendar-desktop-day-stats dd,
  .mv7-calendar-desktop-day-panel.is-refreshing .mv7-calendar-desktop-day-events > * {
    animation: mv7-calendar-day-refresh 190ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }

  .mv7-calendar-desktop-day-panel.is-refreshing
    .mv7-calendar-desktop-day-stats
    > div:nth-child(2)
    dd,
  .mv7-calendar-desktop-day-panel.is-refreshing .mv7-calendar-desktop-day-events > :nth-child(2) {
    animation-delay: 24ms;
  }

  .mv7-calendar-desktop-day-panel.is-refreshing
    .mv7-calendar-desktop-day-stats
    > div:nth-child(3)
    dd,
  .mv7-calendar-desktop-day-panel.is-refreshing .mv7-calendar-desktop-day-events > :nth-child(3) {
    animation-delay: 48ms;
  }

  .mv7-calendar-desktop-day-panel.is-refreshing
    .mv7-calendar-desktop-day-events
    > :nth-child(n + 4) {
    animation-delay: 72ms;
  }

  .mv7-calendar-desktop-day-empty {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 70px;
    padding: 12px 4px;
  }

  .mv7-calendar-desktop-day-empty > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: rgba(109, 153, 242, 0.1);
    color: #82aaf8;
  }

  .mv7-calendar-desktop-day-empty svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
  }

  .mv7-calendar-desktop-day-empty strong,
  .mv7-calendar-desktop-day-empty small {
    display: block;
  }

  .mv7-calendar-desktop-day-empty strong {
    font-size: 12px;
  }

  .mv7-calendar-desktop-day-empty small {
    margin-top: 3px;
    color: var(--v2-muted);
    font-size: 10px;
  }

  .mv7-calendar-runway {
    border-color: rgba(255, 255, 255, 0.105);
    border-radius: 16px;
    background: rgba(12, 16, 19, 0.48);
    box-shadow: none;
  }

  .mv7-calendar-runway::before {
    height: 38px;
    border-color: rgba(255, 255, 255, 0.075);
    color: color-mix(in srgb, var(--v2-muted) 86%, transparent);
    letter-spacing: 0.035em;
  }

  .mv7-calendar-summary {
    gap: 9px;
    margin-bottom: 12px;
  }

  .mv7-calendar-summary dl > div {
    min-height: 66px;
    padding: 11px 12px 9px 49px;
    border-radius: 13px;
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.027);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.055);
  }

  .mv7-calendar-summary dl > div::before {
    left: 13px;
    top: 12px;
    width: 27px;
    height: 27px;
    font-size: 14px;
  }

  .mv7-calendar-summary dt {
    font-size: 10px;
    letter-spacing: 0.045em;
  }

  .mv7-calendar-summary dd {
    margin-top: 3px;
    font-size: 16px;
  }

  .mv7-calendar-sidebar {
    align-self: stretch;
    gap: 11px;
  }

  .mv7-calendar-side-card {
    padding: 14px;
    border-radius: 14px;
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.027);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.055);
  }

  .mv7-calendar-side-card::before {
    opacity: 0.42;
  }

  .mv7-calendar-side-card:first-child {
    min-height: 130px;
  }

  .mv7-calendar-side-card h3 {
    margin-bottom: 10px;
    font-size: 12px;
    letter-spacing: -0.01em;
  }

  .mv7-calendar-upcoming-row {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    margin-top: 5px;
    padding: 7px 6px;
    border-color: rgba(255, 255, 255, 0.075);
    background: rgba(255, 255, 255, 0.018);
  }

  .mv7-calendar-upcoming-row:hover,
  .mv7-calendar-upcoming-row:focus-visible {
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.04);
  }

  .mv7-calendar-flow-line {
    display: block;
    width: 100%;
    height: 62px;
    margin-top: 7px;
    overflow: visible;
    opacity: 0.9;
    background: none;
  }

  .mv7-calendar-flow-area {
    fill: rgba(45, 222, 152, 0.1);
  }

  .mv7-calendar-flow-path {
    fill: none;
    stroke: var(--v2-green);
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
  }

  .mv7-calendar-reminder {
    border-color: rgba(255, 255, 255, 0.075);
    background: rgba(255, 255, 255, 0.018);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-runway {
    border-color: var(--v2-line);
    background: rgba(255, 255, 255, 0.68);
    box-shadow: none;
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-runway::before,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-day {
    border-color: color-mix(in srgb, var(--v2-line) 88%, transparent);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-day {
    color: color-mix(in srgb, var(--v2-text) 76%, transparent);
    background: rgba(255, 255, 255, 0.34);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-day.is-outside {
    color: var(--v2-dim);
    background: rgba(230, 235, 242, 0.52);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-day.is-today {
    background: rgba(255, 255, 255, 0.34);
    box-shadow: none;
  }

  :root[data-resolved-theme='light']
    #calendar-view
    .mv7-calendar-day.is-selected-day:not(.is-today) {
    background: rgba(36, 52, 72, 0.055);
    box-shadow: inset 0 0 0 1px rgba(36, 52, 72, 0.09);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-day.is-today > strong {
    background: #347fdc;
    color: #fff;
    box-shadow:
      0 0 0 4px rgba(52, 127, 220, 0.09),
      0 4px 11px rgba(52, 127, 220, 0.2);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-day-activity-mosaic {
    border-color: rgba(36, 52, 72, 0.11);
    background: rgba(36, 52, 72, 0.045);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-summary dl > div,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-side-card,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-desktop-day-panel {
    border-color: var(--v2-line);
    background: rgba(255, 255, 255, 0.7);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-desktop-legend {
    border-color: var(--v2-line);
    background: rgba(255, 255, 255, 0.64);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-desktop-day-panel > header,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-desktop-day-stats,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-desktop-day-stats > div,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-desktop-day-row,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-desktop-day-more {
    border-color: color-mix(in srgb, var(--v2-line) 86%, transparent);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-upcoming-row,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-reminder {
    border-color: color-mix(in srgb, var(--v2-line) 86%, transparent);
    background: rgba(244, 247, 251, 0.76);
  }

  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-upcoming-row:hover,
  :root[data-resolved-theme='light'] #calendar-view .mv7-calendar-upcoming-row:focus-visible {
    border-color: color-mix(in srgb, var(--v2-green) 30%, var(--v2-line));
    background: rgba(238, 244, 249, 0.94);
  }
}

@media (min-width: 769px) and (prefers-reduced-motion: reduce) {
  .mv7-calendar-desktop-day-panel.is-refreshing h3,
  .mv7-calendar-desktop-day-panel.is-refreshing .mv7-calendar-desktop-day-stats dd,
  .mv7-calendar-desktop-day-panel.is-refreshing .mv7-calendar-desktop-day-events > * {
    animation: none;
  }
}

@media (min-width: 769px) and (max-width: 1120px) {
  .mv7-calendar-heading {
    align-items: flex-start;
  }

  .mv7-calendar-heading-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .mv7-calendar-day {
    height: 104px;
  }
}
