/* Halo payment schedule composer layout. */
.paylink-form {
    display: flex;
    flex-direction: column;
    gap: var(--halo-6);
    padding-top: 4px;
    animation: paylink-form-in 240ms var(--halo-ease) both;
}

@keyframes paylink-form-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

.paylink-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--halo-4);
}

.paylink-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--halo-2);
    padding-top: 2px;
}


.paylink-plan {
    display: grid;
    gap: var(--halo-4);
    padding: var(--halo-6);
    border-radius: var(--halo-radius-lg);
    background: var(--halo-surface-sunken);
    border: 1px solid var(--halo-hairline);
}

.paylink-plan-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--halo-4);
}

.paylink-plan-label {
    display: block;
    color: var(--halo-text-secondary);
    font-size: 0.72rem;
    font-weight: 700;
}

.paylink-plan-head strong {
    display: block;
    margin-top: 3px;
    color: var(--halo-text);
    font-size: 1rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}


.paylink-presets {
    display: flex;
    flex-wrap: wrap;
    gap: var(--halo-2);
}

.paylink-preset {
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid var(--halo-hairline);
    border-radius: var(--halo-radius-pill);
    background: var(--halo-surface);
    color: var(--halo-text);
    font-family: var(--halo-font);
    font-size: 0.8125rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: var(--halo-shadow-1);
    transition: transform var(--halo-transition-fast), box-shadow var(--halo-transition-fast), border-color var(--halo-transition-fast), background var(--halo-transition-fast), color var(--halo-transition-fast);
}

.paylink-preset:hover {
    transform: translateY(-1px);
    border-color: var(--halo-hairline-strong);
    box-shadow: var(--halo-shadow-2);
}

.paylink-preset:focus-visible {
    outline: none;
    border-color: var(--halo-action-brand);
    box-shadow: var(--halo-focus-ring);
}

.paylink-preset.is-selected {
    background: var(--halo-action-brand);
    border-color: var(--halo-action-brand);
    color: var(--halo-on-action);
    box-shadow: var(--halo-shadow-2);
}

.paylink-preset.is-selected:hover {
    background: var(--halo-ink-brand);
    border-color: var(--halo-ink-brand);
}


.paylink-schedule {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: var(--halo-3);
}

.paylink-day {
    display: flex;
    flex-direction: column;
    gap: var(--halo-2);
    padding: var(--halo-3);
    background: var(--halo-surface);
    border: 1px solid var(--halo-hairline);
    border-radius: var(--halo-radius-md);
    box-shadow: var(--halo-shadow-1);
    transition: transform var(--halo-transition-fast), box-shadow var(--halo-transition-fast), border-color var(--halo-transition-fast);
}

.paylink-day:hover {
    transform: translateY(-2px);
    border-color: var(--halo-hairline-strong);
    box-shadow: var(--halo-shadow-2);
}

.paylink-day-head {
    display: flex;
    align-items: center;
    gap: var(--halo-2);
}

.paylink-day-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: var(--halo-radius-pill);
    background: var(--halo-tint-brand);
    color: var(--halo-ink-brand);
    font-size: 0.72rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.paylink-day-label {
    color: var(--halo-text-secondary);
    font-size: 0.75rem;
    font-weight: 700;
}


.paylink-day .mud-input-control {
    margin: 0;
}


.paylink-summary {
    display: flex;
    flex-wrap: wrap;
    gap: var(--halo-3) var(--halo-8);
    padding: var(--halo-3) var(--halo-4);
    background: var(--halo-surface);
    border-radius: var(--halo-radius-md);
    box-shadow: var(--halo-shadow-1);
}

.paylink-summary-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.paylink-summary-item span {
    color: var(--halo-text-secondary);
    font-size: 0.72rem;
    font-weight: 700;
}

.paylink-summary-item strong {
    color: var(--halo-text);
    font-size: 1.0625rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 767px) {
    .paylink-schedule {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }
}
